diff --git a/NEW/src/JdeScoping.DataSync/Configuration/PipelineConfig.cs b/NEW/src/JdeScoping.DataSync/Configuration/PipelineConfig.cs new file mode 100644 index 0000000..fa76e58 --- /dev/null +++ b/NEW/src/JdeScoping.DataSync/Configuration/PipelineConfig.cs @@ -0,0 +1,42 @@ +namespace JdeScoping.DataSync.Configuration; + +public record PipelineConfig( + SourceConfig Source, + Dictionary SyncModes, + List? Transformers, + DestinationConfig Destination, + List? PreScripts, + List? PostScripts); + +public record SourceConfig( + string Connection, + string Query, + Dictionary? Parameters); + +public record ParameterConfig( + string Name, + string? Format, + string Source = "offset", + string? Value = null); + +public record SyncModeConfig( + string? MinDtOffset, + bool PrePurge = false, + bool ReIndex = false, + string? UpdateWhen = null, + DestinationOverride? Destination = null); + +public record DestinationOverride( + string? Type, + List? MatchColumns, + List? ExcludeFromUpdate); + +public record TransformerConfig( + string Type, + List? Columns, + Dictionary? Mappings); + +public record DestinationConfig( + string Table, + List? MatchColumns, + List? ExcludeFromUpdate); diff --git a/NEW/src/JdeScoping.DataSync/Configuration/PipelinesRoot.cs b/NEW/src/JdeScoping.DataSync/Configuration/PipelinesRoot.cs new file mode 100644 index 0000000..c94724f --- /dev/null +++ b/NEW/src/JdeScoping.DataSync/Configuration/PipelinesRoot.cs @@ -0,0 +1,11 @@ +namespace JdeScoping.DataSync.Configuration; + +public record PipelinesRoot( + PipelineSettings? Settings, // Optional - defaults applied if missing + Dictionary Pipelines) +{ + public PipelineSettings EffectiveSettings => Settings ?? new PipelineSettings(); +} + +public record PipelineSettings( + string Timezone = "UTC"); diff --git a/NEW/src/JdeScoping.DataSync/Options/PipelineOptions.cs b/NEW/src/JdeScoping.DataSync/Options/PipelineOptions.cs new file mode 100644 index 0000000..7f7f2ee --- /dev/null +++ b/NEW/src/JdeScoping.DataSync/Options/PipelineOptions.cs @@ -0,0 +1,7 @@ +namespace JdeScoping.DataSync.Options; + +public class PipelineOptions +{ + public const string SectionName = "Pipelines"; + public string ConfigPath { get; set; } = "Pipelines/pipelines.json"; +}