
package com.tmerclub.cloud.order.dto.multishop;

import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @author tmerclub
 */
@Data
@ToString
@Schema(description = "multishop-申请退款参数")
public class OrderRefundDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 退款ID
     */
    @NotNull(message = "退款ID不能为空")
    private Long refundId;

    /**
     * 处理状态（2:同意，3:不同意）
     */
    @NotNull(message = "处理状态不能为空")
    private Integer refundSts;

    /**
     * 退款原因
     */
    private String rejectMessage;

    /**
     * 退款地址标识（ID）
     */
    private Long shopRefundAddrId;

    /**
     * 商家备注
     */
    private String sellerMsg;

    /**
     * 商家/供应商文件凭证(逗号隔开)
     */
    @Schema(description = "商家/供应商文件凭证(逗号隔开)")
    private String imgUrls;
    /**
     * 是否收到货
     */
    @NotNull(message = "是否收到货不能为空")
    private Boolean isReceived;

    /**
     * 供应商处理状态， -1.商家自行处理 0.供应商处理 1.供应商已同意 2.供应商已拒绝
     */
    @NotNull(message = "供应商处理状态， -1.商家自行处理 0.待供应商处理 1.供应商已同意 2.供应商已拒绝")
    @Min(value = -1, message = "最小只能为-1")
    @Max(value = 2, message = "最大只能为2")
    private Integer supplierHandleStatus;

    @Schema(description = "支付完成回跳地址", requiredMode = Schema.RequiredMode.REQUIRED)
    private String returnUrl;

    @Hidden
    @Schema(description = "用户id")
    private Long userId;

    @Hidden
    @Schema(description = "不包含的退款状态集合")
    private List<Integer> notInStatuses;


}
