using System.Text.Json.Serialization; using TakeoutSaaS.Domain.Tenants.Enums; using TakeoutSaaS.Shared.Abstractions.Serialization; namespace TakeoutSaaS.Application.App.Billings.Dto; /// /// 支付记录 DTO。 /// public sealed record PaymentDto { /// /// 支付记录 ID(雪花算法,序列化为字符串)。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long Id { get; init; } /// /// 账单 ID(雪花算法,序列化为字符串)。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long BillingStatementId { get; init; } /// /// 支付金额。 /// public decimal Amount { get; init; } /// /// 支付方式。 /// public TenantPaymentMethod Method { get; init; } /// /// 支付状态。 /// public TenantPaymentStatus Status { get; init; } /// /// 交易号。 /// public string? TransactionNo { get; init; } /// /// 支付凭证 URL。 /// public string? ProofUrl { get; init; } /// /// 支付时间。 /// public DateTime? PaidAt { get; init; } /// /// 备注信息。 /// public string? Notes { get; init; } /// /// 创建时间(UTC)。 /// public DateTime CreatedAt { get; init; } }