namespace IceImportDAL.DTO.RemoteFileSources; // Runtime-resolved remote file source configuration — mirrors MICEMAPFTPSOURCE (Phase 0 schema) // but with HostVaultRef/UsernameVaultRef/CredentialVaultRef already resolved to plaintext // Host/Username/Credential via IIceImportSecretResolver. // // NEVER log this DTO (or any of its properties) — Host/Username/Credential are live plaintext // connection secrets. Only the *unresolved* MicemapFtpSourceDTO's *VaultRef fields are safe to // log. This DTO's lifetime is scoped to a single RunScheduledImportAsync call; it is never // serialized back to a client-facing response. public class RemoteFileSourceConfigDTO { public int IceMapId { get; set; } // ConnectionType: 0=FTP, 1=SFTP — matches MICEMAPFTPSOURCE.CONNECTIONTYPE. public byte ConnectionType { get; set; } public string Host { get; set; } = string.Empty; public string Username { get; set; } = string.Empty; public string Credential { get; set; } = string.Empty; public string RemoteFolderPath { get; set; } = string.Empty; // Glob-style pattern (e.g. "*.csv") — matched against each remote file's name via // WildcardPatternMatcher, not a regex (no new dependency for this). public string FileNamePattern { get; set; } = string.Empty; // PostProcessAction: 0=None, 1=Delete, 2=Archive — matches MICEMAPFTPSOURCE.POSTPROCESSACTION. public byte PostProcessAction { get; set; } public string? ArchiveFolderPath { get; set; } }