package com.ssm.manage.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.ssm.manage.entity.PromotionProject;
import com.ssm.manage.entity.PromotionStore;
import com.ssm.manage.entity.RechargeTypeStore;
import com.ssm.manage.page.BasePage;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class RechargeTypeRequest extends BasePage {
    private Long Id;

    /**
     * 编码
     */
    private String rechargeTypeNum;

    /**
     * 名称
     */
    private String rechargeTypeName;

    /**
     * 门店编码
     */
    private Long storeId;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 享受优惠
     */
    private BigDecimal discount;

    /**
     * 状态 1:使用/0：停用
     */
    private Integer state;

    /**
     * 提成  小于1表示比率，大于等于1表示固定金额
     */
    private BigDecimal typeRatio;

    /**
     * 类别 1:折扣卡类型/0:赠送卡类型
     */
    private Integer type;

    /**
     * 类别充值金额
     */
    private BigDecimal rechargeMoney;

    /**
     * 赠送卡赠送金额
     */
    private BigDecimal giftMoney;

    /**
     * 有效期 单位:月
     */
    @Column(name = "valid_time")
    private Integer validTime;

    private String staffPhone;

    /**
     * 赠送金额使用折扣
     */
    @Column(name = "discount_free_amount")
    private BigDecimal discountFreeAmount;

    /**
     * 促销开始日期
     */
    @Column(name = "start_dates")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String startDates;

    /**
     * 促销结束日期
     */
    @Column(name = "stop_dates")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String stopDates;

    /**
     * 首充金额
     */
    private BigDecimal firstAmount;

    /**
     * 0=正常卡，1=升级级关系卡
     */
    @Column(name = "card_type")
    private Integer cardType;

    /**
     * 升降级卡对应ID
     */
    @Column(name = "lift_card_id")
    private Long liftCardId;


    /**
     * 升降级卡对应ID
     */
    @Column(name = "raw_card_id")
    private Long rawCardId;


    /**
     * 升降级类型（0=升级，1=降级）
     */
    @Column(name = "lift_type")
    private Integer liftType;
    /**
     * 0=固定赠送，1=比例赠送
     */
    @Column(name = "donate_type")
    private Integer donateType;

    /**
     * 赠送卡是否限制门店使用（1限制门店使用，0不限制门店使用）
     */
    @Column(name = "give_type")
    private Integer giveType;


    @Column(name = "unified_due")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String unifiedDue;

    private Long rechargeTypeId;

    /**
     * 是否指定门店使用(0否，1是)
     */
    @Column(name = "store_type")
    private Integer storeType;

    List<PromotionStore> rechargeTypeStoreList;

    List<PromotionProject> promotionProjectList;




}
