package com.yuchen.saas.parking.api.vo.coupon;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @Author 蔡文强
 * @Date 2023/5/25 15:56
 * @Description 优惠券记录信息
 */
@Data
public class PmgBatCouponRecordVO  {

    @ApiModelProperty(name = "couponType", value = "优惠券类型(1:优惠卡 2:优惠活动)")
    private Integer couponType;

    @ApiModelProperty(name = "couponId", value = "优惠卡ID或者优惠活动ID")
    private Long couponId;

    @ApiModelProperty(name = "couponNo", value = "优惠券编号")
    private String couponNo;

    @ApiModelProperty(name = "discountType", value = "优惠类型(1:智慧停车 2:智慧充电 3:平台通用)")
    private Integer discountType;

    @ApiModelProperty(name = "discountItems", value = "优惠适用费项(1:临停费用 2:月卡充值 3:错时充值 4:管理费 5:充电收费 6:停车占位收费),多选,逗号隔开")
    private String discountItems;

    @ApiModelProperty(name = "grantId", value = "发放对象ID")
    private Long grantId;
    @ApiModelProperty(name = "grantName", value = "发放对象名称")
    private String grantName;

    @ApiModelProperty(name = "belongName", value = "归属对象")
    private String belongName;

    @ApiModelProperty(name = "fundType", value = "优惠资金类型(1:虚拟额度 2:充值资金)")
    private Integer fundType;

    @ApiModelProperty(name = "suitCondition", value = "适用条件(1:满xx元可使用 2:无门槛使用(若优惠金额大于产品金额，则该产品价格为免费))")
    private Integer suitCondition;

    @ApiModelProperty(name = "conditionAmount", value = "满xx元可使用(单位分)")
    private Integer conditionAmount;


    @ApiModelProperty(name = "startDate", value = "优惠券有效期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    @ApiModelProperty(name = "endDate", value = "优惠券有效期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    @ApiModelProperty(name = "discountMode", value = "优惠方式(1:限免优惠 2:全免优惠)")
    private Integer discountMode;

    @ApiModelProperty(name = "couponAmount", value = "优惠额度(单位分)")
    private Integer couponAmount;

    @ApiModelProperty(name = "realCouponAmount", value = "实际优惠金额")
    private Integer realCouponAmount;

    @ApiModelProperty(name = "parkingIds", value = "适用范围(停车场ID,多个逗号隔开)")
    @NotBlank(message = "适用范围不能为空")
    private String parkingIds;

    @ApiModelProperty(name = "parkingNames", value = "适用范围(停车场名称,多个逗号隔开)")
    @NotBlank(message = "适用范围不能为空")
    private String parkingNames;

    @ApiModelProperty(name = "receiver", value = "领取对象(手机号或者车牌号)")
    private String receiver;

    @ApiModelProperty(name = "receiveTime", value = "领取时间")
    private Date receiveTime;

    @ApiModelProperty(name = "usePeople", value = "使用对象(手机号或者车牌号)")
    private String usePeople;

    @ApiModelProperty(name = "useTime", value = "使用时间")
    private Date useTime;

    @ApiModelProperty(name = "grantPeopleId", value = "优惠券发放人员(平台级用户ID)")
    private Long grantPeopleId;

    @ApiModelProperty(name = "billId", value = "使用订单")
    private Long billId;

    @ApiModelProperty(name = "useStatus", value = "使用状态(1:未使用 2:已使用 3:已过期)")
    private Integer useStatus;


    @ApiModelProperty(name = "cardAmount", value = "卡总额度(单位分)")
    private Integer cardAmount;

}
