package com.ssm.manage.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Table(name = "recharge_account_outin")
@JsonIgnoreProperties(ignoreUnknown = true)
public class RechargeAccountOutin implements Serializable {
    @Column(name = "recharge_store_num")
    private String rechargeStoreNum;
    @Column(name = "input_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Getter
    @Setter
    private Date inputDate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "audit_date")
    @Getter
    @Setter
    private Date auditDate;

    @Column(name = "input_id")
    @Getter
    @Setter
    private Long inputId;

    @Getter
    @Setter
    @Column(name = "input_name")
    private String inputName;

    @Getter
    @Setter
    @Column(name = "input_num")
    private String inputNum;

    @Getter
    @Setter
    @Column(name = "audit_id")
    private Long auditId;

    @Getter
    @Setter
    @Column(name = "audit_name")
    private String auditName;

    @Getter
    @Setter
    @Column(name = "audit_num")
    private String auditNum;
    /**
     * id
     */
    @Id
    private Long id;

    /**
     * 单据日期
     */
    @Column(name = "doc_date")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date docDate;

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

    /**
     * 转出会员ID
     */
    @Column(name = "out_member_id")
    private Long outMemberId;

    /**
     * 转出会员名称
     */
    @Column(name = "out_member_name")
    private String outMemberName;



    /**
     * 转出赠送卡金额
     */
    @Column(name = "out_gift_consume_money")
    private BigDecimal outGiftConsumeMoney;




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

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


    /**
     * 转出门店编码
     */
    @Column(name = "out_store_num")
    private String outStoreNum;

    /**
     * 转出门店ID
     */
    @Column(name = "out_store_id")
    private Long outStoreId;

    /**
     * 转出门店名称
     */
    @Column(name = "out_store_name")
    private String outStoreName;

    /**
     * 转入门店编码
     */
    @Column(name = "in_store_num")
    private String inStoreNum;

    /**
     * 转入门店ID
     */
    @Column(name = "in_store_id")
    private Long inStoreId;

    /**
     * 转入门店名称
     */
    @Column(name = "in_store_name")
    private String inStoreName;


    /**
     * 0新增/1确定（已审核）
     */
    private Integer state;

    /**
     * 转出充值卡编码
     */
    @Column(name = "recharge_num")
    private String rechargeNum;

    /**
     * 转出会员编码
     */
    @Column(name = "out_member_num")
    private String outMemberNum;


    public String getOutMemberNum() {
        return outMemberNum;
    }

    public void setOutMemberNum(String outMemberNum) {
        this.outMemberNum = outMemberNum;
    }

    public String getRechargeNum() {
        return rechargeNum;
    }

    public void setRechargeNum(String rechargeNum) {
        this.rechargeNum = rechargeNum;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Long getAccountId() {
        return accountId;
    }

    public void setAccountId(Long accountId) {
        this.accountId = accountId;
    }


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setDocDate(Date docDate) {
        this.docDate = docDate;
    }

    public Long getOutMemberId() {
        return outMemberId;
    }

    public void setOutMemberId(Long outMemberId) {
        this.outMemberId = outMemberId;
    }

    public String getOutMemberName() {
        return outMemberName;
    }

    public void setOutMemberName(String outMemberName) {
        this.outMemberName = outMemberName;
    }


    public BigDecimal getOutGiftConsumeMoney() {
        return outGiftConsumeMoney;
    }

    public void setOutGiftConsumeMoney(BigDecimal outGiftConsumeMoney) {
        this.outGiftConsumeMoney = outGiftConsumeMoney;
    }

    public Long getRechargeTypeId() {
        return rechargeTypeId;
    }

    public void setRechargeTypeId(Long rechargeTypeId) {
        this.rechargeTypeId = rechargeTypeId;
    }

    public String getRechargeTypeName() {
        return rechargeTypeName;
    }

    public void setRechargeTypeName(String rechargeTypeName) {
        this.rechargeTypeName = rechargeTypeName;
    }

    public String getOutStoreNum() {
        return outStoreNum;
    }

    public void setOutStoreNum(String outStoreNum) {
        this.outStoreNum = outStoreNum;
    }

    public Long getOutStoreId() {
        return outStoreId;
    }

    public void setOutStoreId(Long outStoreId) {
        this.outStoreId = outStoreId;
    }

    public String getOutStoreName() {
        return outStoreName;
    }

    public void setOutStoreName(String outStoreName) {
        this.outStoreName = outStoreName;
    }

    public String getInStoreNum() {
        return inStoreNum;
    }

    public void setInStoreNum(String inStoreNum) {
        this.inStoreNum = inStoreNum;
    }

    public Long getInStoreId() {
        return inStoreId;
    }

    public void setInStoreId(Long inStoreId) {
        this.inStoreId = inStoreId;
    }

    public String getInStoreName() {
        return inStoreName;
    }

    public void setInStoreName(String inStoreName) {
        this.inStoreName = inStoreName;
    }

    /**
     * 获取账户到期时间
     *
     * @return end_time - 账户到期时间
     */
    public Date getDocDate() {
        return docDate;
    }

    /**
     * 设置账户到期时间
     *
     * @param endTime 账户到期时间
     */
    public void getDocDate(Date endTime) {
        this.docDate = docDate;
    }


    public String getRechargeStoreNum() {
        return rechargeStoreNum;
    }

    public void setRechargeStoreNum(String rechargeStoreNum) {
        this.rechargeStoreNum = rechargeStoreNum;
    }
}