using AgriculturalPlatform.Api.Models;
namespace AgriculturalPlatform.Api.Dtos;
public record PaymentDto(
int Id, string PayNo, int? PurchaseOrderId, string? OrderNo,
int FarmerId, string FarmerName, decimal Amount, string Method,
string Status, string TradeNo, string? OperatorName, DateTime? PaidAt,
string Notes, DateTime CreatedAt);
/// 发起支付(按收购单结算,可为空表示对农户批量结算)
public record PaymentCreateRequest(
int? PurchaseOrderId, int FarmerId, decimal Amount, string Method, string Notes = "");
/// 确认支付结果:Status 缺省视为成功,可选 Success/Failed/Abnormal
public record PaymentConfirmRequest(string? TradeNo = null, string? Status = null, string? Message = null);
public static class PaymentMappers
{
public static PaymentDto ToDto(this PaymentRecord p) => new(
p.Id, p.PayNo, p.PurchaseOrderId, p.PurchaseOrder?.OrderNo,
p.FarmerId, p.Farmer?.Name ?? "", p.Amount, p.Method.ToString(),
p.Status.ToString(), p.TradeNo, p.Operator?.RealName ?? "",
p.PaidAt, p.Notes, p.CreatedAt);
public static PaymentDto[] ToDtos(this IEnumerable items) => items.Select(ToDto).ToArray();
}