using PnvPanel.Domain.Configs; using PnvPanel.Domain.Inbounds; namespace PnvPanel.Application.Configs; /// /// Пользователю показываем только DisplayName + протокол инбаунда — адрес/хост ноды и прочие /// детали 3x-ui в этот DTO не попадают (см. domain-model.md). /// public sealed record VpnConfigDto( Guid Id, string? Label, VpnProtocol Protocol, string Location, long UsedUpBytes, long UsedDownBytes, DateTimeOffset? ExpiresAt, ConfigStatus Status, DateTimeOffset CreatedAt) { public static VpnConfigDto FromDomain(VpnConfig config, Inbound inbound) => new( config.Id, config.Label, config.Protocol, inbound.DisplayName ?? inbound.Remark, config.UsedUpBytes, config.UsedDownBytes, config.ExpiresAt, config.Status, config.CreatedAt); }