import service from '/@/utils/request'; import type { Paged } from './mdpMonitor'; export interface MdpSyncTaskRow { id: number; tenantId?: number; taskCode: string; taskName: string; taskType: string; businessDomainCode?: string | null; businessDomainName?: string | null; consumerModules?: string | null; sourceSystemCode?: string | null; serviceKey?: string | null; jobCode?: string | null; scheduleJobId?: string | null; scheduleMode?: string | null; status: number; configVersion: number; description?: string | null; autoEnabled?: boolean; manualEnabled?: boolean; lastRunStatus?: string | null; lastRunTime?: string | null; } export interface MdpSyncTaskListQuery { keyword?: string; businessDomainCode?: string; status?: number; page?: number; pageSize?: number; } export interface MdpSyncTaskUpsertInput { taskCode: string; taskName: string; taskType?: string; businessDomainCode?: string | null; businessDomainName?: string | null; consumerModules?: string | null; sourceSystemCode?: string | null; serviceKey?: string | null; jobCode?: string | null; scheduleJobId?: string | null; status?: number; ownerRole?: string | null; description?: string | null; } export interface MdpSyncTaskStepRow { id?: number | null; stepCode: string; stepName: string; stageType: string; serviceMethodKey?: string | null; enabled: boolean; sortOrder: number; description?: string | null; } export interface MdpSyncTaskScheduleRow { taskCode: string; scheduleJobId?: string | null; scheduleMode?: string; cronExpr?: string | null; cronDesc?: string | null; timezone?: string; autoEnabled?: boolean; manualEnabled?: boolean; retryEnabled?: boolean; maxRetryCount?: number; retryIntervalSeconds?: number; timeoutSeconds?: number; misfirePolicy?: string | null; syncWindowType?: string; syncWindowValue?: string | null; lastScheduleTime?: string | null; nextScheduleTime?: string | null; adminJobConfigJson?: string | null; description?: string | null; } export function fetchSyncTaskList(params: MdpSyncTaskListQuery) { return service.get>('/api/DataPlatform/sync-tasks', { params }).then((r) => r.data); } export function fetchSyncTaskDetail(id: number) { return service.get(`/api/DataPlatform/sync-tasks/${id}`).then((r) => r.data); } export function createSyncTask(payload: MdpSyncTaskUpsertInput) { return service.post<{ id: number }>('/api/DataPlatform/sync-tasks', payload).then((r) => r.data); } export function updateSyncTask(id: number, payload: MdpSyncTaskUpsertInput) { return service.put<{ id: number }>(`/api/DataPlatform/sync-tasks/${id}`, payload).then((r) => r.data); } export function deleteSyncTask(id: number) { return service.delete<{ id: number }>(`/api/DataPlatform/sync-tasks/${id}`).then((r) => r.data); } export function fetchSyncTaskSteps(taskCode: string) { return service.get(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/steps`).then((r) => r.data); } export function saveSyncTaskSteps(taskCode: string, steps: MdpSyncTaskStepRow[]) { return service.put<{ count: number }>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/steps`, steps).then((r) => r.data); } export function fetchSyncTaskSchedule(taskCode: string) { return service.get(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule`).then((r) => r.data); } export function saveSyncTaskSchedule(taskCode: string, payload: MdpSyncTaskScheduleRow) { return service.put(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule`, payload).then((r) => r.data); } export function syncAdminJobSnapshot(taskCode: string) { return service .post<{ taskCode: string; scheduleJobId?: string | null; adminJobConfigJson?: string | null }>( `/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/schedule/sync-admin-job` ) .then((r) => r.data); } export interface MdpEntityRow { id: number; tenantId?: number; sourceId: number; sourceCode?: string | null; sourceName?: string | null; sourceType?: string | null; entityCode: string; entityName: string; entityType: string; sourceTableName?: string | null; sourceApiPath?: string | null; targetTableName?: string | null; syncMode: string; incrColumn?: string | null; batchSize?: number; jobId?: string | null; status: number; remark?: string | null; fieldMappingCount?: number; } export interface MdpEntityUpsertInput { entityCode: string; entityName: string; entityType?: string; sourceId?: number; sourceCode?: string | null; sourceTableName?: string | null; sourceApiPath?: string | null; targetTableName?: string | null; syncMode?: string; incrColumn?: string | null; batchSize?: number; jobId?: string | null; status?: number; remark?: string | null; } export interface MdpFieldMappingRow { id: number; entityId: number; sourceField: string; targetField: string; fieldType: string; transformScript?: string | null; constValue?: string | null; lookupTable?: string | null; isRequired: boolean; defaultValue?: string | null; sortOrder: number; } export interface MdpFieldMappingUpsertInput { sourceField: string; targetField: string; fieldType?: string; transformScript?: string | null; constValue?: string | null; lookupTable?: string | null; isRequired?: boolean; defaultValue?: string | null; sortOrder?: number; } export function fetchSyncTaskEntities(taskCode: string) { return service.get(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/entities`).then((r) => r.data); } export function createSyncTaskEntity(taskCode: string, payload: MdpEntityUpsertInput) { return service.post<{ id: number }>(`/api/DataPlatform/sync-tasks/${encodeURIComponent(taskCode)}/entities`, payload).then((r) => r.data); } export function updateSyncEntity(id: number, payload: MdpEntityUpsertInput) { return service.put<{ id: number }>(`/api/DataPlatform/entities/${id}`, payload).then((r) => r.data); } export function deleteSyncEntity(id: number) { return service.delete<{ id: number }>(`/api/DataPlatform/entities/${id}`).then((r) => r.data); } export function fetchEntityFieldMappings(entityId: number) { return service.get(`/api/DataPlatform/entities/${entityId}/field-mappings`).then((r) => r.data); } export function createEntityFieldMapping(entityId: number, payload: MdpFieldMappingUpsertInput) { return service.post<{ id: number }>(`/api/DataPlatform/entities/${entityId}/field-mappings`, payload).then((r) => r.data); } export function updateFieldMapping(id: number, payload: MdpFieldMappingUpsertInput) { return service.put<{ id: number }>(`/api/DataPlatform/field-mappings/${id}`, payload).then((r) => r.data); } export function deleteFieldMapping(id: number) { return service.delete<{ id: number }>(`/api/DataPlatform/field-mappings/${id}`).then((r) => r.data); }