package com.ssm.manage.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.ssm.manage.entity.UploadFiles;
import com.ssm.manage.entity.UseProject;
import com.ssm.manage.entity.UseStore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.persistence.Id;
import java.util.Date;
import java.util.List;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class PlatformCouponRequest {
    /**
     * id
     */
    @ApiModelProperty(name = "id", value = "id")
    @Id
    private Long id;
    /**
     * 优惠卷编码
     */
    @Column(name = "coupon_num")
    @ApiModelProperty(name = "couponNum", value = "优惠卷编码")
    private String couponNum;
    /**
     * 优惠卷名称
     */
    @Column(name = "coupon_name")
    @ApiModelProperty(name = "couponName", value = "优惠卷名称")
    private String couponName;
    /**
     * 发放数量
     */
    @Column(name = "coupon_number")
    @ApiModelProperty(name = "couponNumber", value = "发放数量")
    private Integer couponNumber;
    /**
     * 0=代金卷，1=折扣卷，3=代扣卷
     */
    @Column(name = "coupon_type")
    @ApiModelProperty(name = "couponType", value = "0=代金卷，1=折扣卷，3=代扣卷")
    private Integer couponType;
    /**
     * 0=满减，1=没有限制
     */
    @Column(name = "service_conditions")
    @ApiModelProperty(name = "serviceConditions", value = "0=满减，1=没有限制")
    private Integer serviceConditions;
    /**
     * 满减金额（满多少可以减）
     */
    @Column(name = "full_reduction_money")
    @ApiModelProperty(name = "fullReductionMoney", value = "满减金额（满多少可以减）")
    private Double fullReductionMoney;
    /**
     * 减多少金额（折扣代扣共用）
     */
    @Column(name = "full_discount_money")
    @ApiModelProperty(name = "fullDiscountMoney", value = "减多少百分比金额（折扣专用）")
    private Double fullDiscountMoney;

    /**
     * 减多少金额（折扣代扣共用）
     */
    @Column(name = "full_kims_money")
    @ApiModelProperty(name = "fullKimsMoney", value = "减多少金额（代扣,代金共用）")
    private Double fullKimsMoney;


    /**
     * 适用门店对象0:所有门店/1:指定门店
     */
    @Column(name = "suitable_store")
    @ApiModelProperty(name = "suitableStore", value = "适用门店对象0:所有门店/1:指定门店")
    private Integer suitableStore;
    /**
     * 适用项目对象0:所有项目/1:指定项目
     */
    @Column(name = "suitable_project")
    @ApiModelProperty(name = "suitableProject", value = "适用项目对象0:所有项目/1:指定项目")
    private Integer suitableProject;
    /**
     * 有效期(0=领取后多少天，1=固定日期)
     */
    @Column(name = "indate_type")
    @ApiModelProperty(name = "indateType", value = "有效期(0=领取后多少天，1=固定日期)")
    private Integer indateType;
    /**
     * 领取后多少天生效
     */
    @Column(name = "start_day")
    @ApiModelProperty(name = "startDay", value = "领取后多少天生效")
    private Integer startDay;
    /**
     * 多少天内有效
     */
    @Column(name = "end_day")
    @ApiModelProperty(name = "endDay", value = "多少天内有效")
    private Integer endDay;
    /**
     * 开始日期
     */
    @Column(name = "start_date")
    @ApiModelProperty(name = "startDate", value = "开始日期")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDate;
    /**
     * 结束日期
     */
    @Column(name = "end_date")
    @ApiModelProperty(name = "endDate", value = "结束日期")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;
    /**
     * 备注
     */
    @Column(name = "remark")
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;
    /**
     * 创建门店id
     */
    @Column(name = "store_id")
    @ApiModelProperty(name = "storeId", value = "创建门店id")
    private Long storeId;
    /**
     * 创建门店编码
     */
    @Column(name = "store_num")
    @ApiModelProperty(name = "storeNum", value = "创建门店编码")
    private String storeNum;
    /**
     * 创建门店名称
     */
    @Column(name = "store_name")
    @ApiModelProperty(name = "storeName", value = "创建门店名称")
    private String storeName;
    /**
     * 创建人Id
     */
    @Column(name = "input_id")
    @ApiModelProperty(name = "inputId", value = "创建人Id")
    private Long inputId;
    /**
     * 创建人编码
     */
    @Column(name = "input_num")
    @ApiModelProperty(name = "inputNum", value = "创建人编码")
    private String inputNum;
    /**
     * 创建人名称
     */
    @Column(name = "input_name")
    @ApiModelProperty(name = "inputName", value = "创建人名称")
    private String inputName;
    /**
     * 创建人时间
     */
    @Column(name = "input_date")
    @ApiModelProperty(name = "inputDate", value = "创建人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date inputDate;
    /**
     * 修改人Id
     */
    @Column(name = "update_id")
    @ApiModelProperty(name = "updateId", value = "修改人Id")
    private Long updateId;
    /**
     * 修改人编码
     */
    @Column(name = "update_num")
    @ApiModelProperty(name = "updateNum", value = "修改人编码")
    private String updateNum;
    /**
     * 修改人名称
     */
    @Column(name = "update_name")
    @ApiModelProperty(name = "updateName", value = "修改人名称")
    private String updateName;
    /**
     * 修改人时间
     */
    @Column(name = "update_date")
    @ApiModelProperty(name = "updateDate", value = "修改人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateDate;
    /**
     * 状态0=新增，1=送审，2=回收，3=门店审核，4=门店反审核,5=打款待审，6=平台审核，7=平台反审核，8=平台发布，9=平台回收，10=关闭
     */
    @Column(name = "state")
    @ApiModelProperty(name = "state", value = "状态0=新增，1=送审，2=回收，3=门店审核，4=门店反审核,5=打款待审，" +
            "6=平台审核，7=平台反审核，8=平台发布，9=平台回收，10=关闭,13=同意，14=拒绝")
    private Integer state;
    /**
     * 保证金额
     */
    @Column(name = "guarantee_money")
    @ApiModelProperty(name = "guaranteeMoney", value = "保证金额")
    private Double guaranteeMoney;
    /**
     * 门店审核人Id
     */
    @Column(name = "store_audit_id")
    @ApiModelProperty(name = "storeAuditId", value = "门店审核人Id")
    private Long storeAuditId;
    /**
     * 门店审核人编码
     */
    @Column(name = "store_audit_num")
    @ApiModelProperty(name = "storeAuditNum", value = "门店审核人编码")
    private String storeAuditNum;
    /**
     * 门店审核人名称
     */
    @Column(name = "store_audit_name")
    @ApiModelProperty(name = "storeAuditName", value = "门店审核人名称")
    private String storeAuditName;
    /**
     * 门店审核人时间
     */
    @Column(name = "store_audit_date")
    @ApiModelProperty(name = "storeAuditDate", value = "门店审核人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date storeAuditDate;
    /**
     * 门反审核人Id
     */
    @Column(name = "store_auditee_id")
    @ApiModelProperty(name = "storeAuditeeId", value = "门反审核人Id")
    private Long storeAuditeeId;
    /**
     * 门店反审核编码
     */
    @Column(name = "store_auditee_num")
    @ApiModelProperty(name = "storeAuditeeNum", value = "门店反审核编码")
    private String storeAuditeeNum;
    /**
     * 门店反审核人名称
     */
    @Column(name = "store_auditee_name")
    @ApiModelProperty(name = "storeAuditeeName", value = "门店反审核人名称")
    private String storeAuditeeName;
    /**
     * 门店反审核人时间
     */
    @Column(name = "store_auditee_date")
    @ApiModelProperty(name = "storeAuditeeDate", value = "门店反审核人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date storeAuditeeDate;
    /**
     * 打款确认人Id
     */
    @Column(name = "confirm_payment_id")
    @ApiModelProperty(name = "confirmPaymentId", value = "打款确认人Id")
    private Long confirmPaymentId;
    /**
     * 打款确认人编码
     */
    @Column(name = "confirm_payment_num")
    @ApiModelProperty(name = "confirmPaymentNum", value = "打款确认人编码")
    private String confirmPaymentNum;
    /**
     * 打款确认人名称
     */
    @Column(name = "confirm_payment_name")
    @ApiModelProperty(name = "confirmPaymentName", value = "打款确认人名称")
    private String confirmPaymentName;
    /**
     * 打款确认人时间
     */
    @Column(name = "confirm_payment_date")
    @ApiModelProperty(name = "confirmPaymentDate", value = "打款确认人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date confirmPaymentDate;
    /**
     * 平台审核人Id
     */
    @Column(name = "platform_audit_id")
    @ApiModelProperty(name = "platformAuditId", value = "平台审核人Id")
    private Long platformAuditId;
    /**
     * 平台审核人编码
     */
    @Column(name = "platform_audit_num")
    @ApiModelProperty(name = "platformAuditNum", value = "平台审核人编码")
    private String platformAuditNum;
    /**
     * 平台审核人名称
     */
    @Column(name = "platform_audit_name")
    @ApiModelProperty(name = "platformAuditName", value = "平台审核人名称")
    private String platformAuditName;
    /**
     * 平台审核人时间
     */
    @Column(name = "platform_audit_date")
    @ApiModelProperty(name = "platformAuditDate", value = "平台审核人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date platformAuditDate;

    /**
     * 平台反审核人Id
     */
    @Column(name = "platform_auditee_id")
    @ApiModelProperty(name = "platformAuditeeId", value = "平台反审核人Id")
    private Long platformAuditeeId;
    /**
     * 平台反审核人编码
     */
    @Column(name = "platform_auditee_num")
    @ApiModelProperty(name = "platformAuditeeNum", value = "平台反审核人编码")
    private String platformAuditeeNum;
    /**
     * 平台反审核人名称
     */
    @Column(name = "platform_auditee_name")
    @ApiModelProperty(name = "platformAuditeeName", value = "平台反审核人名称")
    private String platformAuditeeName;
    /**
     * 平台反审核人时间
     */
    @Column(name = "platform_auditee_date")
    @ApiModelProperty(name = "platformAuditeeDate", value = "平台反审核人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date platformAuditeeDate;
    /**
     * 平台发布人Id
     */
    @Column(name = "platform_release_id")
    @ApiModelProperty(name = "platformReleaseId", value = "平台发布人Id")
    private Long platformReleaseId;
    /**
     * 平台发布人编码
     */
    @Column(name = "platform_release_num")
    @ApiModelProperty(name = "platformReleaseNum", value = "平台发布人编码")
    private String platformReleaseNum;
    /**
     * 平台发布人名称
     */
    @Column(name = "platform_release_name")
    @ApiModelProperty(name = "platformReleaseName", value = "平台发布人名称")
    private String platformReleaseName;
    /**
     * 平台发布人时间
     */
    @Column(name = "platform_release_date")
    @ApiModelProperty(name = "platformReleaseDate", value = "平台发布人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date platformReleaseDate;
    /**
     * 平台回收人Id
     */
    @Column(name = "platform_recycle_id")
    @ApiModelProperty(name = "platformRecycleId", value = "平台回收人Id")
    private Long platformRecycleId;
    /**
     * 平台回收人编码
     */
    @Column(name = "platform_recycle_num")
    @ApiModelProperty(name = "platformRecycleNum", value = "平台回收人编码")
    private String platformRecycleNum;
    /**
     * 平台回收人名称
     */
    @Column(name = "platform_recycle_name")
    @ApiModelProperty(name = "platformRecycleName", value = "平台回收人名称")
    private String platformRecycleName;
    /**
     * 平台回收人时间
     */
    @Column(name = "platform_recycle_date")
    @ApiModelProperty(name = "platformRecycleDate", value = "平台回收人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date platformRecycleDate;
    /**
     * 关闭人Id
     */
    @Column(name = "close_id")
    @ApiModelProperty(name = "closeId", value = "关闭人Id")
    private Long closeId;
    /**
     * 关闭人编码
     */
    @Column(name = "close_num")
    @ApiModelProperty(name = "closeNum", value = "关闭人编码")
    private String closeNum;
    /**
     * 关闭人名称
     */
    @Column(name = "close_name")
    @ApiModelProperty(name = "closeName", value = "关闭人名称")
    private String closeName;
    /**
     * 关闭人时间
     */
    @Column(name = "close_date")
    @ApiModelProperty(name = "closeDate", value = "关闭人时间")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date closeDate;
    /**
     * 分享提成规则(0=固定提成，1=单据金额抽成)，默认为0
     */
    @Column(name = "Share_commission_rules")
    @ApiModelProperty(name = "shareCommissionRules", value = "分享提成规则(0=固定提成，1=单据金额抽成)，默认为0")
    private Integer shareCommissionRules;
    /**
     * 固定提成
     */
    @Column(name = "fixed_amount")
    @ApiModelProperty(name = "fixedAmount", value = "固定提成")
    private Double fixedAmount;
    /**s
     * 单据金额抽成（%）  记得除以100
     */
    @Column(name = "order_commission")
    @ApiModelProperty(name = "orderCommission", value = "单据金额抽成（%）")
    private Double orderCommission;

    @Column(name = "input_phone")
    @ApiModelProperty(name = "phone", value = "创建人手机号")
    private String inputPhone;

    @Column(name = "share_margin")
    @ApiModelProperty(name = "shareMargin", value = "分享分润是否必打保证金(默认0:必打，1:不必打)")
    private Integer shareMargin;


    private List<Long> projectList;//项目id
    private List<String> useStoreList;//门店编码
    private List<UploadFiles> fileLists;//图片

    private List<UseProject> useProjects;
    private List<UseStore> useStores;

    @Column(name = "open_id")
    @ApiModelProperty(name = "openId", value = "微信id")
    private String openId;

    /**
     * 公众号门店id
     */
    private Long storeId1;

}
