refactor: relocate options classes to dedicated Options folders
Move configuration options from Core/DataAccess/DataSync/ExcelIO to dedicated Options folders within each project for better organization. Update all references and tests accordingly.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
namespace JdeScoping.DataSync.Options;
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for a single data source table sync.
|
||||
/// </summary>
|
||||
public class DataSourceConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Target table name in SQL Server cache.
|
||||
/// </summary>
|
||||
public required string TableName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Source system: "JDE" or "CMS".
|
||||
/// </summary>
|
||||
public required string SourceSystem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Source data identifier (e.g., "WORKORDER", "LOTUSAGE").
|
||||
/// </summary>
|
||||
public string SourceData { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Name of IDataFetcher implementation type (without generic suffix).
|
||||
/// </summary>
|
||||
public required string FetcherTypeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional IPostProcessor implementation type name.
|
||||
/// </summary>
|
||||
public string? PostProcessorTypeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether this data source is enabled for sync.
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Mass sync schedule configuration.
|
||||
/// </summary>
|
||||
public ScheduleConfig MassConfig { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Daily incremental sync configuration.
|
||||
/// </summary>
|
||||
public ScheduleConfig DailyConfig { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Hourly incremental sync configuration.
|
||||
/// </summary>
|
||||
public ScheduleConfig HourlyConfig { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Schedule configuration for a sync type (Mass/Daily/Hourly).
|
||||
/// </summary>
|
||||
public class ScheduleConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether this schedule is enabled.
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Interval in minutes between syncs.
|
||||
/// </summary>
|
||||
public int IntervalMinutes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether to truncate the table before syncing (mass updates only).
|
||||
/// </summary>
|
||||
public bool PrepurgeData { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Whether to rebuild indexes after syncing (mass updates only).
|
||||
/// </summary>
|
||||
public bool ReIndexData { get; set; } = false;
|
||||
}
|
||||
Reference in New Issue
Block a user