using System.Text.Json.Serialization; using TakeoutSaaS.Domain.Common.Enums; using TakeoutSaaS.Domain.Merchants.Enums; using TakeoutSaaS.Shared.Abstractions.Serialization; namespace TakeoutSaaS.Application.App.Merchants.Dto; /// /// 商户详情 DTO。 /// public sealed class MerchantDetailDto { /// /// 商户 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long Id { get; init; } /// /// 租户 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long TenantId { get; init; } /// /// 租户名称。 /// public string? TenantName { get; init; } /// /// 商户名称(品牌名)。 /// public string Name { get; init; } = string.Empty; /// /// 品牌简称。 /// public string? BrandAlias { get; init; } /// /// Logo 地址。 /// public string? LogoUrl { get; init; } /// /// 品类。 /// public string? Category { get; init; } /// /// 经营模式。 /// public OperatingMode? OperatingMode { get; init; } /// /// 营业执照号。 /// public string? LicenseNumber { get; init; } /// /// 法人或负责人。 /// public string? LegalRepresentative { get; init; } /// /// 税号。 /// public string? TaxNumber { get; init; } /// /// 省份。 /// public string? Province { get; init; } /// /// 城市。 /// public string? City { get; init; } /// /// 区县。 /// public string? District { get; init; } /// /// 详细地址。 /// public string? Address { get; init; } /// /// 联系电话。 /// public string? ContactPhone { get; init; } /// /// 联系邮箱。 /// public string? ContactEmail { get; init; } /// /// 客服电话。 /// public string? ServicePhone { get; init; } /// /// 客服邮箱。 /// public string? SupportEmail { get; init; } /// /// 审核状态。 /// public MerchantStatus Status { get; init; } /// /// 业务冻结标记。 /// public bool IsFrozen { get; init; } /// /// 冻结原因。 /// public string? FrozenReason { get; init; } /// /// 冻结时间。 /// public DateTime? FrozenAt { get; init; } /// /// 审核通过人。 /// [JsonConverter(typeof(NullableSnowflakeIdJsonConverter))] public long? ApprovedBy { get; init; } /// /// 审核通过时间。 /// public DateTime? ApprovedAt { get; init; } /// /// 门店列表。 /// public IReadOnlyList Stores { get; init; } = []; /// /// 并发控制版本(PostgreSQL xmin)。 /// public uint RowVersion { get; init; } /// /// 创建时间。 /// public DateTime CreatedAt { get; init; } /// /// 创建人。 /// [JsonConverter(typeof(NullableSnowflakeIdJsonConverter))] public long? CreatedBy { get; init; } /// /// 更新时间。 /// public DateTime? UpdatedAt { get; init; } /// /// 更新人。 /// [JsonConverter(typeof(NullableSnowflakeIdJsonConverter))] public long? UpdatedBy { get; init; } }