From b31fd35575b55ae2bf2e0280fe2f2cfaa0e5e1e7 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Wed, 7 Jan 2026 07:56:18 -0500 Subject: [PATCH] feat(core): add pipeline viewer DTOs --- .../Pipelines/PipelineConfigDto.cs | 47 +++++++++++++++++++ .../Pipelines/PipelineExecutionDto.cs | 16 +++++++ .../Pipelines/PipelineListResponse.cs | 6 +++ .../Pipelines/PipelineStatusDto.cs | 17 +++++++ 4 files changed, 86 insertions(+) create mode 100644 NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineConfigDto.cs create mode 100644 NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineExecutionDto.cs create mode 100644 NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineListResponse.cs create mode 100644 NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineStatusDto.cs diff --git a/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineConfigDto.cs b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineConfigDto.cs new file mode 100644 index 0000000..8fa41b4 --- /dev/null +++ b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineConfigDto.cs @@ -0,0 +1,47 @@ +namespace JdeScoping.Core.ApiContracts.Pipelines; + +/// +/// Pipeline configuration DTO for display. +/// +public record PipelineConfigDto( + string Name, + PipelineSourceDto Source, + PipelineDestinationDto Destination, + PipelineSchedulesDto Schedules, + int PreScriptCount, + int PostScriptCount, + List? PreScripts, + List? PostScripts); + +public record PipelineSourceDto( + string Connection, + string? QueryPreview, + string? MassQueryPreview, + string? Query, + string? MassQuery, + List Parameters); + +public record PipelineParameterDto( + string Name, + string? Format, + string Source); + +public record PipelineDestinationDto( + string Table, + string OperationType, + List? MatchColumns, + List? ExcludeFromUpdate); + +public record PipelineSchedulesDto( + PipelineScheduleDto Mass, + PipelineScheduleDto Daily, + PipelineScheduleDto Hourly); + +public record PipelineScheduleDto( + bool Enabled, + int IntervalMinutes, + bool PrePurge, + bool ReIndex, + bool IntervalIsOverride, + bool PrePurgeIsOverride, + bool ReIndexIsOverride); diff --git a/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineExecutionDto.cs b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineExecutionDto.cs new file mode 100644 index 0000000..02fdd95 --- /dev/null +++ b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineExecutionDto.cs @@ -0,0 +1,16 @@ +namespace JdeScoping.Core.ApiContracts.Pipelines; + +using JdeScoping.Core.Models.Enums; + +/// +/// Pipeline execution history. +/// +public record PipelineExecutionsResponse(List Executions); + +public record PipelineExecutionDto( + UpdateTypes ScheduleType, + DateTime StartTime, + DateTime? EndTime, + TimeSpan? Duration, + long RecordCount, + bool WasSuccessful); diff --git a/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineListResponse.cs b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineListResponse.cs new file mode 100644 index 0000000..1ad66e1 --- /dev/null +++ b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineListResponse.cs @@ -0,0 +1,6 @@ +namespace JdeScoping.Core.ApiContracts.Pipelines; + +/// +/// Response containing list of available pipeline names. +/// +public record PipelineListResponse(List PipelineNames); diff --git a/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineStatusDto.cs b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineStatusDto.cs new file mode 100644 index 0000000..3586b27 --- /dev/null +++ b/NEW/src/JdeScoping.Core/ApiContracts/Pipelines/PipelineStatusDto.cs @@ -0,0 +1,17 @@ +namespace JdeScoping.Core.ApiContracts.Pipelines; + +using JdeScoping.Core.Models.Enums; + +/// +/// Pipeline schedule status for each update type. +/// +public record PipelineStatusResponse(List Statuses); + +public record PipelineScheduleStatusDto( + UpdateTypes ScheduleType, + DateTime? LastRun, + bool LastRunWasSuccessful, + DateTime? LastSuccessfulRun, + DateTime? NextRequiredRun, + bool IsOverdue, + int IntervalMinutes);