using TrafagSalesExporter.Models; namespace TrafagSalesExporter.Services; public interface IPurchasingDataSourcePageService { Task LoadAsync(); Task SaveAsync(PurchasingDataSourceState state); Task ResetDefaultsAsync(); Task TestConnectionAsync(PurchasingDataSourceState state); } public sealed class PurchasingDataSourceState { public Site Site { get; set; } = new(); public SourceSystemDefinition? SourceSystem { get; set; } public List Sources { get; set; } = []; public List Joins { get; set; } = []; public List Mappings { get; set; } = []; }