using System.Text.Json.Serialization; using TakeoutSaaS.Domain.Payments.Enums; using TakeoutSaaS.Shared.Abstractions.Serialization; namespace TakeoutSaaS.Application.App.Payments.Dto; /// /// 支付记录 DTO。 /// public sealed class PaymentDto { /// /// 支付记录 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long Id { get; init; } /// /// 租户 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long TenantId { get; init; } /// /// 订单 ID。 /// [JsonConverter(typeof(SnowflakeIdJsonConverter))] public long OrderId { get; init; } /// /// 支付方式。 /// public PaymentMethod Method { get; init; } /// /// 支付状态。 /// public PaymentStatus Status { get; init; } /// /// 金额。 /// public decimal Amount { get; init; } /// /// 平台交易号。 /// public string? TradeNo { get; init; } /// /// 渠道单号。 /// public string? ChannelTransactionId { get; init; } /// /// 支付时间。 /// public DateTime? PaidAt { get; init; } /// /// 备注。 /// public string? Remark { get; init; } /// /// 原始回调。 /// public string? Payload { get; init; } /// /// 退款记录。 /// public IReadOnlyList Refunds { get; init; } = Array.Empty(); /// /// 创建时间。 /// public DateTime CreatedAt { get; init; } }