package com.ssm.manage.query;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
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 javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class ModifyRechargeRecordRequest extends BasePage {
    /**
     * 主键ID
     */
    @Id
    private Long id;

    /**
     * 账户修改单据号
     */
    @Column(name = "doc_num")
    private String docNum;

    /**
     * 会员ID
     */
    @Column(name = "member_id")
    private Long memberId;

    /**
     * 会员名称
     */
    @Column(name = "member_name")
    private String memberName;

    /**
     * 会员卡
     */
    private String card;

    /**
     * 充值单号
     */
    @Column(name = "recharge_num")
    private String rechargeNum;

    /**
     * 账户充值金额
     */
    @Column(name = "card_recharge_money")
    private BigDecimal cardRechargeMoney;

    /**
     * 账户剩余金额
     */
    @Column(name = "card_rest_money")
    private BigDecimal cardRestMoney;

    /**
     * 最近消费日期
     */
    @Column(name = "last_consume_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastConsumeTime;

    /**
     * 充值类别ID
     */
    @Column(name = "recharge_type_id")
    private Long rechargeTypeId;

    /**
     * 充值类别名称
     */
    @Column(name = "recharge_type_name")
    private String rechargeTypeName;

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

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

    /**
     * 赠送卡赠送金额
     */
    @Column(name = "card_gift_money")
    private BigDecimal cardGiftMoney;

    /**
     * 门店ID
     */
    @Column(name = "store_id")
    private Long storeId;

    /**
     * 门店名称
     */
    @Column(name = "store_name")
    private String storeName;

    /**
     * 账户可用金额
     */
    @Column(name = "card_consume_money")
    private BigDecimal cardConsumeMoney;

    /**
     * 赠送卡可用金额
     */
    @Column(name = "gift_consume_money")
    private BigDecimal giftConsumeMoney;

    /**
     * 0:锁定/1:正常
     */
    private Integer state;

    /**
     * 账户到期时间
     */
    @Column(name = "end_time")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /**
     * 修改人名称
     */
    @Column(name = "update_by")
    private String updateBy;

    /**
     * 修改人ID
     */
    @Column(name = "update_id")
    private Long updateId;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 账户ID
     */
    @Column(name = "account_id")
    private Long accountId;

    /**
     * 账户修改人名称
     */
    @Column(name = "modify_by")
    private String modifyBy;

    /**
     * 账户修改人ID
     */
    @Column(name = "modify_id")
    private Long modifyId;

    /**
     * 账户修改时间
     */
    @Column(name = "modify_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date modifyTime;

    /**
     * 新会员ID
     */
    @Column(name = "member_id_new")
    private Long memberIdNew;

    /**
     * 新会员名称
     */
    @Column(name = "member_name_new")
    private String memberNameNew;

    /**
     * 新会员卡
     */
    @Column(name = "card_new")
    private String cardNew;

    /**
     * 新充值单号
     */
    @Column(name = "recharge_num_new")
    private String rechargeNumNew;

    /**
     * 新账户充值金额
     */
    @Column(name = "card_recharge_money_new")
    private BigDecimal cardRechargeMoneyNew;

    /**
     * 新账户剩余金额
     */
    @Column(name = "card_rest_money_new")
    private BigDecimal cardRestMoneyNew;

    /**
     * 新最近消费日期
     */
    @Column(name = "last_consume_time_new")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastConsumeTimeNew;

    /**
     * 新充值类别ID
     */
    @Column(name = "recharge_type_id_new")
    private Long rechargeTypeIdNew;

    /**
     * 新充值类别名称
     */
    @Column(name = "recharge_type_name_new")
    private String rechargeTypeNameNew;

    /**
     * 新类别 1:折扣卡类型/0:赠送卡类型
     */
    @Column(name = "type_new")
    private Integer typeNew;

    /**
     * 新享受优惠
     */
    @Column(name = "discount_new")
    private BigDecimal discountNew;

    /**
     * 新赠送卡赠送金额
     */
    @Column(name = "card_gift_money_new")
    private BigDecimal cardGiftMoneyNew;

    /**
     * 新门店ID
     */
    @Column(name = "store_id_new")
    private Long storeIdNew;

    /**
     * 新门店名称
     */
    @Column(name = "store_name_new")
    private String storeNameNew;

    /**
     * 新账户可用金额
     */
    @Column(name = "card_consume_money_new")
    private BigDecimal cardConsumeMoneyNew;

    /**
     * 新赠送卡可用金额
     */
    @Column(name = "gift_consume_money_new")
    private BigDecimal giftConsumeMoneyNew;

    /**
     * 新0:锁定/1:正常
     */
    @Column(name = "state_new")
    private Integer stateNew;

    /**
     * 新账户到期时间
     */
    @Column(name = "end_time_new")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTimeNew;

    /**
     * 新修改人名称
     */
    @Column(name = "update_by_new")
    private String updateByNew;

    /**
     * 新修改人ID
     */
    @Column(name = "update_id_new")
    private Long updateIdNew;

    /**
     * 新修改时间
     */
    @Column(name = "update_time_new")
    private Date updateTimeNew;

    /**
     * 新账户ID
     */
    @Column(name = "account_id_new")
    private Long accountIdNew;

    /**
     * 账户剩余金额修改
     */
    @Column(name = "card_rest_money_modify")
    private BigDecimal cardRestMoneyModify;

    /**
     * 赠送卡赠送金额修改
     */
    @Column(name = "card_gift_money_modify")
    private BigDecimal cardGiftMoneyModify;

    /**
     * 账户可用金额修改
     */
    @Column(name = "card_consume_money_modify")
    private BigDecimal cardConsumeMoneyModify;

    /**
     * 赠送卡可用金额修改
     */
    @Column(name = "gift_consume_money_modify")
    private BigDecimal giftConsumeMoneyModify;


    /**
     * 修改说明
     */
    @Column(name = "explain_modify")
    private String explainModify;

    private String staffPhone;
}
