using MediatR; using TakeoutSaaS.Application.App.Tenants.Dto; using TakeoutSaaS.Domain.Tenants.Enums; namespace TakeoutSaaS.Application.App.Tenants.Commands; /// /// 更新租户套餐命令。 /// public sealed record UpdateTenantPackageCommand : IRequest { /// /// 套餐 ID。 /// public long TenantPackageId { get; init; } /// /// 套餐名称。 /// public string Name { get; init; } = string.Empty; /// /// 套餐描述。 /// public string? Description { get; init; } /// /// 套餐类型。 /// public TenantPackageType PackageType { get; init; } = TenantPackageType.Standard; /// /// 月付价格。 /// public decimal? MonthlyPrice { get; init; } /// /// 年付价格。 /// public decimal? YearlyPrice { get; init; } /// /// 最大门店数。 /// public int? MaxStoreCount { get; init; } /// /// 最大账号数。 /// public int? MaxAccountCount { get; init; } /// /// 存储上限(GB)。 /// public int? MaxStorageGb { get; init; } /// /// 短信额度。 /// public int? MaxSmsCredits { get; init; } /// /// 配送单上限。 /// public int? MaxDeliveryOrders { get; init; } /// /// 权益明细 JSON。 /// public string? FeaturePoliciesJson { get; init; } /// /// 是否仍启用(平台控制)。 /// public bool IsActive { get; init; } = true; /// /// 是否对外可见(展示页/套餐列表可见性)。 /// public bool IsPublicVisible { get; init; } = true; /// /// 是否允许新租户购买/选择(仅影响新购)。 /// public bool IsAllowNewTenantPurchase { get; init; } = true; /// /// 发布状态(草稿/已发布)。 /// public TenantPackagePublishStatus? PublishStatus { get; init; } /// /// 是否推荐展示(运营推荐标识)。 /// public bool IsRecommended { get; init; } /// /// 套餐标签(用于展示与对比页)。 /// public string[] Tags { get; init; } = []; /// /// 展示排序,数值越小越靠前。 /// public int SortOrder { get; init; } = 0; }