using JdeScoping.DataAccess.Interfaces; using JdeScoping.DataSync.Etl.Destinations; using JdeScoping.DataSync.Etl.Pipeline; using JdeScoping.DataSync.Dev.Sources; namespace JdeScoping.DataSync.Dev; /// /// Development ETL pipeline for the FunctionCode table. /// public static class FunctionCodeDevEtl { public static readonly string TableName = "FunctionCode"; public static readonly string CacheFileName = "functioncode.pb.zstd"; public static EtlPipeline Create(IDbConnectionFactory connectionFactory, string cacheFilePath) { ArgumentNullException.ThrowIfNull(connectionFactory); if (string.IsNullOrWhiteSpace(cacheFilePath)) throw new ArgumentException("Cache file path is required.", nameof(cacheFilePath)); return new EtlPipelineBuilder() .WithName($"{TableName}_Dev") .WithSource(new ProtobufZstdFileSource(cacheFilePath)) .WithDestination(new DbBulkImportDestination(connectionFactory, TableName)) .Build(); } }