using TakeoutSaaS.Domain.Finance.Enums; using TakeoutSaaS.Domain.Orders.Enums; using TakeoutSaaS.Domain.Payments.Enums; namespace TakeoutSaaS.Domain.Finance.Models; /// /// 交易流水统一记录。 /// public sealed record FinanceTransactionRecord { /// /// 来源类型。 /// public required FinanceTransactionSourceType SourceType { get; init; } /// /// 来源标识。 /// public required long SourceId { get; init; } /// /// 所属门店。 /// public required long StoreId { get; init; } /// /// 交易单号。 /// public string? TransactionNo { get; init; } /// /// 交易类型。 /// public required FinanceTransactionType TransactionType { get; init; } /// /// 关联订单标识。 /// public long? OrderId { get; init; } /// /// 关联订单号。 /// public string? OrderNo { get; init; } /// /// 渠道。 /// public DeliveryType? DeliveryType { get; init; } /// /// 支付方式。 /// public PaymentMethod? PaymentMethod { get; init; } /// /// 交易金额(收入为正,退款为负)。 /// public required decimal AmountSigned { get; init; } /// /// 交易时间。 /// public required DateTime OccurredAt { get; init; } /// /// 备注。 /// public string? Remark { get; init; } /// /// 顾客姓名。 /// public string? CustomerName { get; init; } /// /// 顾客手机号。 /// public string? CustomerPhone { get; init; } /// /// 退款单号。 /// public string? RefundNo { get; init; } /// /// 退款原因。 /// public string? RefundReason { get; init; } /// /// 会员名称。 /// public string? MemberName { get; init; } /// /// 会员手机号脱敏值。 /// public string? MemberMobileMasked { get; init; } /// /// 充值金额。 /// public decimal? RechargeAmount { get; init; } /// /// 赠送金额。 /// public decimal? GiftAmount { get; init; } /// /// 到账金额。 /// public decimal? ArrivedAmount { get; init; } /// /// 积分变动值。 /// public int? PointChangeAmount { get; init; } /// /// 积分变动后余额。 /// public int? PointBalanceAfterChange { get; init; } } /// /// 交易流水分页快照。 /// public sealed record FinanceTransactionPageSnapshot { /// /// 分页记录。 /// public required IReadOnlyList Items { get; init; } /// /// 总记录数。 /// public required int TotalCount { get; init; } /// /// 本页收入合计。 /// public required decimal PageIncomeAmount { get; init; } /// /// 本页退款合计。 /// public required decimal PageRefundAmount { get; init; } } /// /// 交易流水统计快照。 /// public sealed record FinanceTransactionStatsSnapshot { /// /// 总收入。 /// public required decimal TotalIncome { get; init; } /// /// 总退款。 /// public required decimal TotalRefund { get; init; } /// /// 总交易笔数。 /// public required int TotalCount { get; init; } }