feat(core): add pipeline viewer DTOs

This commit is contained in:
Joseph Doherty
2026-01-07 07:56:18 -05:00
parent ff487aa99c
commit b31fd35575
4 changed files with 86 additions and 0 deletions
@@ -0,0 +1,47 @@
namespace JdeScoping.Core.ApiContracts.Pipelines;
/// <summary>
/// Pipeline configuration DTO for display.
/// </summary>
public record PipelineConfigDto(
string Name,
PipelineSourceDto Source,
PipelineDestinationDto Destination,
PipelineSchedulesDto Schedules,
int PreScriptCount,
int PostScriptCount,
List<string>? PreScripts,
List<string>? PostScripts);
public record PipelineSourceDto(
string Connection,
string? QueryPreview,
string? MassQueryPreview,
string? Query,
string? MassQuery,
List<PipelineParameterDto> Parameters);
public record PipelineParameterDto(
string Name,
string? Format,
string Source);
public record PipelineDestinationDto(
string Table,
string OperationType,
List<string>? MatchColumns,
List<string>? 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);
@@ -0,0 +1,16 @@
namespace JdeScoping.Core.ApiContracts.Pipelines;
using JdeScoping.Core.Models.Enums;
/// <summary>
/// Pipeline execution history.
/// </summary>
public record PipelineExecutionsResponse(List<PipelineExecutionDto> Executions);
public record PipelineExecutionDto(
UpdateTypes ScheduleType,
DateTime StartTime,
DateTime? EndTime,
TimeSpan? Duration,
long RecordCount,
bool WasSuccessful);
@@ -0,0 +1,6 @@
namespace JdeScoping.Core.ApiContracts.Pipelines;
/// <summary>
/// Response containing list of available pipeline names.
/// </summary>
public record PipelineListResponse(List<string> PipelineNames);
@@ -0,0 +1,17 @@
namespace JdeScoping.Core.ApiContracts.Pipelines;
using JdeScoping.Core.Models.Enums;
/// <summary>
/// Pipeline schedule status for each update type.
/// </summary>
public record PipelineStatusResponse(List<PipelineScheduleStatusDto> Statuses);
public record PipelineScheduleStatusDto(
UpdateTypes ScheduleType,
DateTime? LastRun,
bool LastRunWasSuccessful,
DateTime? LastSuccessfulRun,
DateTime? NextRequiredRun,
bool IsOverdue,
int IntervalMinutes);