package com.cpop.jambox.business.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * @author DB
 * @version 1.0.0
 * @since 2024-01-22 10:40
 */
@Data
@Accessors(chain = true)
@ApiModel("课卡模板信息")
public class CardTemplateInfoVo {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 旧课卡模板id
     */
    @ApiModelProperty(value = "旧课卡模板id")
    private String oldTemplateId;

    /**
     * 云品牌id
     */
    @ApiModelProperty(value = "云品牌id")
    private String brandCloudId;

    /**
     * 云校区id
     */
    @ApiModelProperty(value = "云校区id")
    private String storeCloudId;

    /**
     * 模板名
     */
    @NotBlank(message = "模板名不能为空")
    @ApiModelProperty(value = "模板名",required = true)
    private String name;

    /**
     * 有效日期数
     */
    @ApiModelProperty(value = "有效日期数")
    private Integer validDay;

    /**
     * 结束日期
     */
    @ApiModelProperty(value = "结束日期")
    private LocalDate endDate;

    /**
     * 价格
     */
    @NotNull(message = "价格不能为空")
    @ApiModelProperty(value = "价格")
    private BigDecimal price;

    /**
     * 课时
     */
    @ApiModelProperty("课时")
    private Integer classNumber;

    /**
     * 周预约数
     */
    @ApiModelProperty(value = "周预约数")
    private Integer weekAppointment;

    /**
     * 日预约数
     */
    @ApiModelProperty(value = "日预约数")
    private Integer dayAppointment;

    /**
     * 缓冲天数
     */
    @ApiModelProperty(value = "缓冲天数")
    private Integer bufferDay;

    /**
     * 模板类型(0:课时卡,1:时限卡,2:储值卡)
     */
    @ApiModelProperty(value = "模板类型(0:课时卡,1:时限卡,2:储值卡)")
    private Integer templateType;

    /**
     * 使用范围
     */
    @ApiModelProperty(value = "使用范围(旧Type字段)")
    private String scopeUse;

    /**
     * 支付类型(0:微信支付;1:先学后付次付;2:旧放心学合约支付;3:数字人民币支付;4:线下支付;5:先学后付月付;)
     */
    @NotEmpty(message = "支付类型不能为空")
    @ApiModelProperty(value = "支付类型(0:微信支付;1:先学后付次付;2:旧放心学合约支付;3:数字人民币支付;4:线下支付;5:先学后付月付;)")
    private List<Integer> payType;

    /**
     * 是否是会员(0否1是)
     */
    @ApiModelProperty(value = "是否是会员(0否1是)")
    private Boolean isMember;

    /**
     * 是否是引流卡
     */
    @ApiModelProperty(value = "是否是引流卡(0否1是)")
    private Boolean isDrainage;

    /**
     * 二维码
     */
    @ApiModelProperty(value = "二维码")
    private String qrCode;
}
