using TakeoutSaaS.Domain.Tenants.Enums; using TakeoutSaaS.Shared.Abstractions.Entities; namespace TakeoutSaaS.Domain.Tenants.Entities; /// /// 租户套餐定义,描述不同等级的服务套餐。 /// public sealed class TenantPackage : AuditableEntityBase { /// /// 套餐名称。 /// public string Name { get; set; } = string.Empty; /// /// 套餐描述。 /// public string? Description { get; set; } /// /// 套餐类型。 /// public TenantPackageType PackageType { get; set; } = TenantPackageType.Free; /// /// 月付价格。 /// public decimal? MonthlyPrice { get; set; } /// /// 年付价格。 /// public decimal? YearlyPrice { get; set; } /// /// 最大门店数。 /// public int? MaxStoreCount { get; set; } /// /// 最大账号数。 /// public int? MaxAccountCount { get; set; } /// /// 最大存储空间(GB)。 /// public int? MaxStorageGb { get; set; } /// /// 最大短信额度。 /// public int? MaxSmsCredits { get; set; } /// /// 最大配送订单数。 /// public int? MaxDeliveryOrders { get; set; } /// /// 功能策略 JSON。 /// public string? FeaturePoliciesJson { get; set; } /// /// 是否启用。 /// public bool IsActive { get; set; } = true; /// /// 排序序号。 /// public int SortOrder { get; set; } /// /// 是否允许新租户购买。 /// public bool IsAllowNewTenantPurchase { get; set; } = true; /// /// 是否公开可见。 /// public bool IsPublicVisible { get; set; } = true; /// /// 发布状态。 /// public TenantPackagePublishStatus PublishStatus { get; set; } = TenantPackagePublishStatus.Draft; /// /// 是否推荐。 /// public bool IsRecommended { get; set; } /// /// 标签列表。 /// public string[] Tags { get; set; } = []; }