package com.jeesharp.business.modules.mall.dto;

import com.jeesharp.framework.pojo.dto.BaseSaveDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 售后单保存DTO
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MallAfterSaleSaveDTO extends BaseSaveDTO {

    /**
     * 售后单号
     */
    private String afterSaleNo;

    /**
     * 订单ID
     */
    @NotBlank(message = "订单ID不能为空")
    private String orderId;

    /**
     * 订单明细ID
     */
    private String orderItemId;

    /**
     * 会员ID
     */
    @NotBlank(message = "会员ID不能为空")
    private String memberId;

    /**
     * SKU ID
     */
    private String skuId;

    /**
     * SPU ID
     */
    private String spuId;

    /**
     * 售后类型：REFUND_ONLY-仅退款 RETURN_REFUND-退货退款 EXCHANGE-换货
     */
    @NotBlank(message = "售后类型不能为空")
    private String afterSaleType;

    /**
     * 申请数量
     */
    @NotNull(message = "申请数量不能为空")
    private Integer applyQuantity;

    /**
     * 退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 退款原因编码
     */
    private String refundReason;

    /**
     * 退款原因描述
     */
    private String refundReasonDesc;

    /**
     * 退款说明
     */
    private String refundDesc;

    /**
     * 退货物流公司
     */
    private String returnLogisticsCompany;

    /**
     * 退货运单号
     */
    private String returnLogisticsNo;

    /**
     * 换货SKU ID
     */
    private String exchangeSkuId;
}
