namespace ZA.CoreService.ESBCertificateManager.Models; public sealed class CompanyOption { public int CompanyId { get; init; } public required string CompanyCode { get; init; } public required string CompanyName { get; init; } public override string ToString() { return $"{CompanyCode} — {CompanyName}"; } } public sealed class ContainerOption { public int SonicContainerId { get; init; } public int SonicConnectionId { get; init; } public int CompanyId { get; init; } public required string ContainerName { get; init; } public string? ContainerDisplayName { get; init; } public required string CompanyCode { get; init; } public required string ConnectionName { get; init; } public int RestartTimeoutSeconds { get; init; } public override string ToString() { string display = string.IsNullOrWhiteSpace(ContainerDisplayName) ? ContainerName : ContainerDisplayName; return $"{CompanyCode} / {display} ({ConnectionName})"; } } public sealed class CertificateTargetOption { public int CertificateTargetId { get; init; } public int SonicContainerId { get; init; } public required string TargetDirectory { get; init; } public required string TargetFileName { get; init; } public bool BackupEnabled { get; init; } public required string BackupDirectoryName { get; init; } public required string ContainerName { get; init; } public required string ConnectionName { get; init; } public required string CompanyCode { get; init; } public string FullTargetPath => Path.Combine(TargetDirectory, TargetFileName); public override string ToString() { return $"{CompanyCode} / {ContainerName}: {FullTargetPath}"; } }