package com.yiqi.activity.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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 com.yiqi.common.core.domain.BaseEntity;
import com.yiqi.common.core.domain.vo.SelectItemVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@Data
public class ActivityAppCouponItemInfoVO extends BaseEntity
{
    private static final long serialVersionUID=1L;

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

    /** 标题 */
    @Excel(name = "标题")
    @ApiModelProperty("标题")
    private String title;

    /** 描述 */
    @Excel(name = "描述")
    @ApiModelProperty("描述")
    private String description;

    /** 宣传图片 */
    @Excel(name = "宣传图片")
    @ApiModelProperty("宣传图片")
    private String imgUrl;

    /** 内容 */
    @Excel(name = "内容")
    @ApiModelProperty("内容")
    private String content;

    /** 开始时间 */
    @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=充值多送,1=注册送券,2=全场折扣,3=指定折扣） */
    @Excel(name = "活动类型", readConverterExp = "0==充值多送,1=注册送券,2=全场折扣,3=指定折扣")
    @ApiModelProperty("活动类型（0=充值多送,1=注册送券,2=全场折扣,3=指定折扣）")
    private String activityType;

    /** 状态（0=正常,1=停用） */
    @Excel(name = "状态", readConverterExp = "0==正常,1=停用")
    @ApiModelProperty("状态（0=正常,1=停用）")
    private String status;

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

    /** 是否可多张使用 */
    @Excel(name = "是否可多张使用")
    @ApiModelProperty("是否可多张使用")
    private String canMultiUse;

    /** 单次订单最多使用券数 */
    @Excel(name = "单次订单最多使用券数")
    @ApiModelProperty("单次订单最多使用券数")
    private Integer maxUseCount;

    /** 是否展示在app购买页 */
    @Excel(name = "是否展示在app购买页")
    @ApiModelProperty("是否展示在app购买页")
    private String isShowAppBuyPage;

    /** 是否展示在小程序购买页 */
    @Excel(name = "是否展示在小程序购买页")
    @ApiModelProperty("是否展示在小程序购买页")
    private String isShowWxBuyPage;

    /** 是否展示在小程序购买页（扫码进入） */
    @Excel(name = "是否展示在小程序购买页", readConverterExp = "扫=码进入")
    @ApiModelProperty("是否展示在小程序购买页（扫码进入）")
    private String isShowWxBuyPageFromQrcode;

    /** 优惠券来源（0=普通领取,1=员工手动发放） */
    @Excel(name = "优惠券来源", readConverterExp = "0==普通领取,1=员工手动发放")
    @ApiModelProperty("优惠券来源（0=普通领取,1=员工手动发放）")
    private String couponFrom;

    /** 最大可购买数量 */
    @Excel(name = "最大可购买数量")
    @ApiModelProperty("最大可购买数量")
    private Integer maxBuyNum;

    /** 适用用户范围（0=全部用户，1=会员用户） */
    @Excel(name = "适用用户范围", readConverterExp = "0==全部用户，1=会员用户")
    @ApiModelProperty("适用用户范围（0=全部用户，1=会员用户）")
    private String userScope;

    @ApiModelProperty("优惠券使用范围（0=仅本店可用,1=参与门店可用）")
    private Integer storeScope;

    @ApiModelProperty("活动价格")
    private BigDecimal price;

    @ApiModelProperty("是否仅限新用户参与")
    private String canOnlyNewUser;

    @ApiModelProperty("新用户计算时间")
    private Date newUserRegistTime;

    @ApiModelProperty("可选择的门店")
    private List<SelectItemVO> storeVOS;


    @ApiModelProperty("已选择的门店ID")
    private List<Long> selectStoreIds = new ArrayList<>();
}
