package com.yuchen.saas.payment.api.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.tool.validator.group.AddGroup;
import org.nest.springwrap.core.tool.validator.group.UpdateGroup;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 多订单支付账单退款表
 * </p>
 *
 * @author linyb
 * @since 2024-09-12
 */
@Data
@ApiModel(value="PmgBatOrderRefundConfigAddDTO", description="PmgBatOrderRefundConfigAddDTO")
public class PmgBatOrderRefundConfigAddDTO  {
    /**
     * id
     */
    @ApiModelProperty(name = "id", value = "id")
    @NotNull(message ="id不能为空" ,groups = { UpdateGroup.class})
    private Long id;

    /**
     * 临停订单用户退款开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "temporaryRefundUserEnable", value = "临停订单用户退款开关（0：关闭，1：开启）")
    @NotNull(message ="临停订单用户退款开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})
    private Integer temporaryRefundUserEnable;

    /**
     * 临停用户发起退款间隔时间（天）
     */
    @ApiModelProperty(name = "temporaryRefundUserDay", value = "临停用户发起退款间隔时间（天）")
    @NotNull(message ="临停用户发起退款间隔时间不能为空" ,groups = {AddGroup.class, UpdateGroup.class})
    private Integer temporaryRefundUserDay;
    /**
     * 月卡订单用户退款开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "monthlyRefundUserEnable", value = "月卡订单用户退款开关（0：关闭，1：开启）")
    @NotNull(message ="月卡订单用户退款开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer monthlyRefundUserEnable;
    /**
     * 月卡用户发起退款间隔时间（天）
     */
    @ApiModelProperty(name = "monthlyRefundUserDay", value = "月卡用户发起退款间隔时间（天）")
    @NotNull(message ="月卡用户发起退款间隔时间不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer monthlyRefundUserDay;
    /**
     * 月卡订单起始类型（1：订单支付，2：月卡开始，3：月卡结束）
     */
    @ApiModelProperty(name = "monthlyRefundStartType", value = "月卡订单起始类型（1：订单支付，2：月卡开始，3：月卡结束）")
    @NotNull(message ="月卡订单起始类型时间不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer monthlyRefundStartType;
    /**
     * 错时订单用户款开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "staggeredRefundUserEnable", value = "错时订单用户退款开关（0：关闭，1：开启）")
    @NotNull(message ="错时订单用户退款开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer staggeredRefundUserEnable;

    /**
     * 错时用户发起退款间隔时间（天）
     */
    @ApiModelProperty(name = "staggeredRefundUserDay", value = "错时用户发起退款间隔时间（天）")
    @NotNull(message ="错时用户发起退款间隔时间不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer staggeredRefundUserDay;
    /**
     * 错时订单起始类型（1：订单支付，2：月卡开始，3：月卡结束）
     */
    @ApiModelProperty(name = "staggeredRefundStartType", value = "错时订单起始类型（1：订单支付，2：月卡开始，3：月卡结束）")
    @NotNull(message ="错时订单起始类型不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer staggeredRefundStartType;
    /**
     * 用户发起退款审批开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "userRefundApprove", value = "用户发起退款审批开关（0：关闭，1：开启）")
    @NotNull(message ="用户发起退款审批开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer userRefundApprove;


    /**
     * 管理员发起退款审批开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "adminRefundApprove", value = "管理员发起退款审批开关（0：关闭，1：开启）")
    @NotNull(message ="管理员发起退款审批开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})
    private Integer adminRefundApprove;

    /**
     * 申诉发起退款审批开关（0：关闭，1：开启）
     */
    @ApiModelProperty(name = "appealApprove", value = "申诉发起退款审批开关（0：关闭，1：开启）")
    @NotNull(message ="申诉发起退款审批开关不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Integer appealApprove;
    /**
     * 停车场id
     */
    @ApiModelProperty(name = "parkingId", value = "停车场id")
    @NotNull(message ="停车场id不能为空" ,groups = {AddGroup.class, UpdateGroup.class})

    private Long parkingId;


    /**
     * 客户id
     */
    @ApiModelProperty(name = "customerId", value = "客户id")
    @NotNull(message ="客户id不能为空" ,groups = {AddGroup.class, UpdateGroup.class})
    private Long customerId;




}
