using System.Text.Json.Serialization; using TakeoutSaaS.Domain.Stores.Enums; using TakeoutSaaS.Shared.Abstractions.Serialization; namespace TakeoutSaaS.Application.App.Stores.Dto; /// /// 门店 DTO。 /// public sealed class StoreDto { /// /// 门店 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long Id { get; init; } /// /// 租户 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long TenantId { get; init; } /// /// 商户 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long MerchantId { get; init; } /// /// 门店编码。 /// public string Code { get; init; } = string.Empty; /// /// 门店名称。 /// public string Name { get; init; } = string.Empty; /// /// 电话。 /// public string? Phone { get; init; } /// /// 负责人。 /// public string? ManagerName { get; init; } /// /// 状态。 /// public StoreStatus Status { get; init; } /// /// 门头招牌图。 /// public string? SignboardImageUrl { get; init; } /// /// 主体类型。 /// public StoreOwnershipType OwnershipType { get; init; } /// /// 审核状态。 /// public StoreAuditStatus AuditStatus { get; init; } /// /// 经营状态。 /// public StoreBusinessStatus BusinessStatus { get; init; } /// /// 歇业原因。 /// public StoreClosureReason? ClosureReason { get; init; } /// /// 歇业原因补充说明。 /// public string? ClosureReasonText { get; init; } /// /// 行业类目 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long? CategoryId { get; init; } /// /// 审核驳回原因。 /// public string? RejectionReason { get; init; } /// /// 提交审核时间。 /// public DateTime? SubmittedAt { get; init; } /// /// 审核通过时间。 /// public DateTime? ActivatedAt { get; init; } /// /// 强制关闭时间。 /// public DateTime? ForceClosedAt { get; init; } /// /// 强制关闭原因。 /// public string? ForceCloseReason { get; init; } /// /// 省份。 /// public string? Province { get; init; } /// /// 城市。 /// public string? City { get; init; } /// /// 区县。 /// public string? District { get; init; } /// /// 详细地址。 /// public string? Address { get; init; } /// /// 经度。 /// public double? Longitude { get; init; } /// /// 纬度。 /// public double? Latitude { get; init; } /// /// 公告。 /// public string? Announcement { get; init; } /// /// 标签。 /// public string? Tags { get; init; } /// /// 默认配送半径。 /// public decimal DeliveryRadiusKm { get; init; } /// /// 支持堂食。 /// public bool SupportsDineIn { get; init; } /// /// 支持自提。 /// public bool SupportsPickup { get; init; } /// /// 支持配送。 /// public bool SupportsDelivery { get; init; } /// /// 支持预约。 /// public bool SupportsReservation { get; init; } /// /// 支持排队叫号。 /// public bool SupportsQueueing { get; init; } /// /// 创建时间。 /// public DateTime CreatedAt { get; init; } }