Files
TakeoutSaaS.AdminApi/src/Domain/TakeoutSaaS.Domain/Tenants/Entities/TenantPackage.cs

101 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Tenants.Entities;
/// <summary>
/// 平台提供的租户套餐定义。
/// </summary>
public sealed class TenantPackage : AuditableEntityBase
{
/// <summary>
/// 套餐名称,展示给租户的简称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 套餐描述,包含适用场景、权益等。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 套餐分类(试用、标准、旗舰等)。
/// </summary>
public TenantPackageType PackageType { get; set; } = TenantPackageType.Standard;
/// <summary>
/// 月付价格,单位:人民币元。
/// </summary>
public decimal? MonthlyPrice { get; set; }
/// <summary>
/// 年付价格,单位:人民币元。
/// </summary>
public decimal? YearlyPrice { get; set; }
/// <summary>
/// 允许的最大门店数。
/// </summary>
public int? MaxStoreCount { get; set; }
/// <summary>
/// 允许创建的最大账号数。
/// </summary>
public int? MaxAccountCount { get; set; }
/// <summary>
/// 存储容量上限GB
/// </summary>
public int? MaxStorageGb { get; set; }
/// <summary>
/// 每月短信额度上限。
/// </summary>
public int? MaxSmsCredits { get; set; }
/// <summary>
/// 每月可调用的配送单数量上限。
/// </summary>
public int? MaxDeliveryOrders { get; set; }
/// <summary>
/// 权益明细 JSON记录自定义特性开关。
/// </summary>
public string? FeaturePoliciesJson { get; set; }
/// <summary>
/// 是否仍启用(平台控制)。
/// </summary>
public bool IsActive { get; set; } = true;
/// <summary>
/// 是否对外可见(展示页/套餐列表可见性)。
/// </summary>
public bool IsPublicVisible { get; set; } = true;
/// <summary>
/// 是否允许新租户购买/选择(仅影响新购,不影响已订阅租户)。
/// </summary>
public bool IsAllowNewTenantPurchase { get; set; } = true;
/// <summary>
/// 发布状态(草稿/已发布)。
/// </summary>
public TenantPackagePublishStatus PublishStatus { get; set; } = TenantPackagePublishStatus.Draft;
/// <summary>
/// 是否推荐展示(运营推荐标识)。
/// </summary>
public bool IsRecommended { get; set; }
/// <summary>
/// 套餐标签(用于展示与对比页,如:推荐/性价比/旗舰)。
/// </summary>
public string[] Tags { get; set; } = [];
/// <summary>
/// 展示排序,数值越小越靠前。
/// </summary>
public int SortOrder { get; set; } = 0;
}