feat: 新增配额包/支付相关实体与迁移

App:新增 operation_logs/quota_packages/tenant_payments/tenant_quota_package_purchases 表

Identity:修正 Avatar 字段类型(varchar(256)->text),保持现有数据不变
This commit is contained in:
2025-12-17 17:27:45 +08:00
parent 9c28790f5e
commit ab59e2e3e2
103 changed files with 14450 additions and 4 deletions

View File

@@ -0,0 +1,15 @@
using MediatR;
using TakeoutSaaS.Application.App.Subscriptions.Dto;
namespace TakeoutSaaS.Application.App.Subscriptions.Queries;
/// <summary>
/// 查询订阅详情(含套餐信息、配额使用、变更历史)。
/// </summary>
public sealed record GetSubscriptionDetailQuery : IRequest<SubscriptionDetailDto?>
{
/// <summary>
/// 订阅 ID。
/// </summary>
public long SubscriptionId { get; init; }
}

View File

@@ -0,0 +1,52 @@
using MediatR;
using TakeoutSaaS.Application.App.Subscriptions.Dto;
using TakeoutSaaS.Domain.Tenants.Enums;
using TakeoutSaaS.Shared.Abstractions.Results;
namespace TakeoutSaaS.Application.App.Subscriptions.Queries;
/// <summary>
/// 订阅分页查询。
/// </summary>
public sealed record GetSubscriptionListQuery : IRequest<PagedResult<SubscriptionListDto>>
{
/// <summary>
/// 订阅状态(精确匹配)。
/// </summary>
public SubscriptionStatus? Status { get; init; }
/// <summary>
/// 套餐 ID精确匹配
/// </summary>
public long? TenantPackageId { get; init; }
/// <summary>
/// 租户 ID精确匹配
/// </summary>
public long? TenantId { get; init; }
/// <summary>
/// 租户关键词(名称或编码模糊匹配)。
/// </summary>
public string? TenantKeyword { get; init; }
/// <summary>
/// 到期时间筛选:未来 N 天内到期。
/// </summary>
public int? ExpiringWithinDays { get; init; }
/// <summary>
/// 是否自动续费筛选。
/// </summary>
public bool? AutoRenew { get; init; }
/// <summary>
/// 页码(从 1 开始)。
/// </summary>
public int Page { get; init; } = 1;
/// <summary>
/// 每页大小。
/// </summary>
public int PageSize { get; init; } = 20;
}