
package com.tmerclub.cloud.order.vo.mongo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author lth
 */
@Data
@ToString
@Document("order_refund")
public class MongoOrderRefundStatisticsVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 退款金额
     */
    @Schema(description = "退款金额")
    private Long payActualTotal;

    /**
     * 退款商品数量
     */
    @Schema(description = "退款商品数量")
    private Long refundSpuCount;
    /**
     * 退款成功订单数
     */
    @Schema(description = "退款成功订单数")
    private Integer refundCount;
    /**
     * 退款金额
     */
    private Long refundAmount;
    /**
     * 平台退款金额
     */
    private Long platformRefundAmount;
    /**
     * 总订单数
     */
    @Schema(description = "总订单数")
    private Integer totalOrderCount;
    /**
     * 退款原因
     */
    @Schema(description = "退款原因")
    private String buyerReason;

    /**
     * 商品ID
     */
    @Schema(description = "商品ID")
    private Long spuId;
    /**
     * 退款商品名称
     */
    @Schema(description = "退款商品名称")
    private String refundProdName;
    /**
     * 店铺id
     */
    @Schema(description = "店铺id")
    private Long shopId;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 店铺名称
     */
    @Schema(description = "店铺名称")
    private String shopName;
    /**
     * 退款率
     */
    @Schema(description = "退款率")
    private Double refundRate;
    /**
     * 退款日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "退款日期")
    private Date refundDate;
    /**
     * 退款日期
     */
    @Schema(description = "退款日期")
    private String refundDateToString;
    /**
     * 时间数据
     */
    private String timeData;
    /**
     * 售后金额
     */
    private BigDecimal afterSaleAmount;
    /**
     * 售后次数
     */
    private Integer afterSaleTimes;

    /**
     * 申请退款订单数
     */
    private Integer refundNum;

    /**
     * 申请退款人数
     */
    private Integer refundPerson;
    /**
     * 成功退款订单数
     */
    private Integer refundSuccessNum;
    /**
     * 成功退款人数
     */
    private Integer refundSuccessPerson;
    /**
     * 成功退款金额
     */
    private Double refundSuccessAmount;

}
