package com.yiqi.activity.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiqi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author xiaohei
 * @date 2023/9/9
 */
@Data
public class ActivityCouponItemVO {

    @ApiModelProperty("主键ID")
    private Long id;

    /** 活动ID */
    @Excel(name = "活动ID")
    @ApiModelProperty("活动ID")
    private Long activityId;

    /** 优惠券类型ID */
    @Excel(name = "优惠券类型ID")
    @ApiModelProperty("优惠券类型ID")
    private Long couponTypeId;

    /** 优惠券类型名称 */
    @Excel(name = "优惠券类型名称")
    @ApiModelProperty("优惠券类型名称")
    private String couponTypeTitle;

    @ApiModelProperty("优惠券类型状态")
    private String couponTypeStatus;

    /** 优惠券库存 */
    @Excel(name = "优惠券库存")
    @ApiModelProperty("优惠券库存")
    private Integer couponStock;

    /** 优惠券发送数量 */
    @Excel(name = "优惠券发送数量")
    @ApiModelProperty("优惠券发送数量")
    private Integer couponSendNum;

    /** 优惠券核销数量 */
    @Excel(name = "优惠券核销数量")
    @ApiModelProperty("优惠券核销数量")
    private Integer couponUsedNum;


    @ApiModelProperty("优惠方式（0=抵扣,1=满减,2=折扣）")
    private String discountWay;

    /** 是否自定义有效期 */
    @Excel(name = "是否自定义有效期")
    @ApiModelProperty("是否自定义有效期")
    private String isCustomValidityPeriod;

    /** 优惠券有效期开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @Excel(name = "优惠券有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("优惠券有效期开始日期")
    private Date startDate;

    /** 优惠券有效期结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @Excel(name = "优惠券有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("优惠券有效期结束日期")
    private Date endDate;

    /** 删除状态（0=正常,2=删除） */
    @ApiModelProperty("删除状态（0=正常,2=删除）")
    private String delFlag;

    @ApiModelProperty("抵用金额/折扣率")
    private BigDecimal deductAmount;

    @ApiModelProperty("最小金额/最小衣服数量")
    private BigDecimal minAmount;

}
