package com.seer.teach.pay.admin.withdrawal.controller.response;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * PayMerchantRevenueDetail响应类
 */
@Data
@Schema(description = "商户收益明细响应参数")
public class AdminPayMerchantRevenueDetailResp {
    @Schema(description = "ID")
    private Long id;
    
    @Schema(description = "商户用户ID")
    private Long merchantUserId;
    
    @Schema(description = "订单ID")
    private String orderId;
    
    @Schema(description = "子订单ID")
    private String childOrderId;

    @Schema(description = "子订单SN")
    private String childOrderSn;

    /**
     * 支付订单号
     */
    @Schema(description = "支付订单号")
    private String payOrderSn;

    @Schema(description = "商品SKU ID")
    private String skuId;
    
    @Schema(description = "用户ID")
    private String userId;
    
    @Schema(description = "交易时间")
    private LocalDateTime transactionTime;
    
    @Schema(description = "数量")
    private Integer quantity;
    
    @Schema(description = "单价")
    private BigDecimal unitPrice;
    
    @Schema(description = "折扣金额")
    private BigDecimal discountAmount;
    
    @Schema(description = "实际收益")
    private BigDecimal actualRevenue;
    
    @Schema(description = "交易状态")
    private String transactionStatus;
    
    @Schema(description = "平台费率")
    private BigDecimal platformFeeRate;
    
    @Schema(description = "平台费用")
    private BigDecimal platformFee;
    
    @Schema(description = "退款金额")
    private BigDecimal refundAmount;
    
    @Schema(description = "退款时间")
    private LocalDateTime refundTime;
    
    @Schema(description = "提现状态：0-未提现，1-部分提现，2-已提现")
    private Integer withdrawStatus;
    
    @Schema(description = "删除标识")
    private Integer deleted;
    
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    
    @Schema(description = "创建人")
    private String createBy;
    
    @Schema(description = "更新人")
    private String updateBy;
    
    @Schema(description = "租户ID")
    private String tenantId;
}