package com.ssm.manage.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 会员转卡包表(TurnMembershipCard)实体类
 *
 * @author makejava
 * @since 2022-04-28 14:43:43
 */
@Table(name = "turn_membership_card")
public class TurnMembershipCard implements Serializable {
    private static final long serialVersionUID = -29688203420635301L;
    /**
     * id
     */
    @Id
    private Long id;
    /**
     * 单据编码
     */
    @Column(name = "doc_num")
    private String docNum;
    /**
     * 单据日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "doc_date")
    private Date docDate;
    /**
     * 转出的会员ID
     */
    @Column(name = "roll_out_member_id")
    private Long rollOutMemberId;
    /**
     * 转出的会员编码
     */
    @Column(name = "roll_out_member_num")
    private String rollOutMemberNum;
    /**
     * 转出的会员名称
     */
    @Column(name = "roll_out_member_name")
    private String rollOutMemberName;
    /**
     * 转出的会员手机号码
     */
    @Column(name = "roll_out_mobile_phone")
    private String rollOutMobilePhone;
    /**
     * 类型(0=充值卡，1-疗程卡)
     */
    @Column(name = "type")
    private Integer type;
    /**
     * 转出卡包账户Id
     */
    @Column(name = "account_id")
    private Long accountId;
    /**
     * 账户剩余金额
     */
    @Column(name = "card_rest_money")
    private BigDecimal cardRestMoney;
    /**
     * 账户可用金额
     */
    @Column(name = "card_consume_money")
    private BigDecimal cardConsumeMoney;
    /**
     * 赠送卡可用金额
     */
    @Column(name = "gift_consume_money")
    private BigDecimal giftConsumeMoney;
    /**
     * 充值类别或项目ID
     */
    @Column(name = "recharge_or_project_id")
    private Long rechargeOrProjectId;
    /**
     * 充值类别或项目名称
     */
    @Column(name = "recharge_or_project_name")
    private String rechargeOrProjectName;
    /**
     * 充值类别或项目名称
     */
    @Column(name = "recharge_or_project_num")
    private String rechargeOrProjectNum;
    /**
     * 开卡剩余次数
     */
    @Column(name = "course_rest_count")
    private Integer courseRestCount;
    /**
     * 开卡可用次数
     */
    @Column(name = "course_consume_count")
    private Integer courseConsumeCount;
    /**
     * 剩余金额
     */
    @Column(name = "course_rest_price")
    private BigDecimal courseRestPrice;
    /**
     * 可用金额
     */
    @Column(name = "course_consume_price")
    private BigDecimal courseConsumePrice;
    /**
     * 建立人（用户名称（用户编码）），来源于员工档案
     */
    @Column(name = "input_by")
    private String inputBy;
    /**
     * 建立日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "input_date")
    private Date inputDate;
    /**
     * 最近修改人（用户名称（用户编码）），来源于员工档案
     */
    @Column(name = "update_by")
    private String updateBy;
    /**
     * 最近修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "update_date")
    private Date updateDate;
    /**
     * 审核人
     */
    @Column(name = "audit_by")
    private String auditBy;
    /**
     * 审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Column(name = "audit_date")
    private Date auditDate;
    /**
     * 转入的会员ID
     */
    @Column(name = "roll_in_member_id")
    private Long rollInMemberId;
    /**
     * 转入的会员编码
     */
    @Column(name = "roll_in_member_num")
    private String rollInMemberNum;
    /**
     * 转入的会员名称
     */
    @Column(name = "roll_in_member_name")
    private String rollInMemberName;
    /**
     * 转出的会员手机号码
     */
    @Column(name = "roll_in_mobile_phone")
    private String rollInMobilePhone;
    /**
     * 转入的账户Id
     */
    @Column(name = "roll_in_acoount_id")
    private Long rollInAcoountId;
    /**
     * 门店编码
     */
    @Column(name = "store_id")
    private Long storeId;
    /**
     * 门店名称
     */
    @Column(name = "store_name")
    private String storeName;
    /**
     * 状态（0=新增，1=送审，2=回收，3=审核，4=反审核）
     */
    @Column(name = "state")
    private Integer state;


    public Long getId() {
        return id;
    }

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

    public String getDocNum() {
        return docNum;
    }

    public void setDocNum(String docNum) {
        this.docNum = docNum;
    }

    public Date getDocDate() {
        return docDate;
    }

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

    public Long getRollOutMemberId() {
        return rollOutMemberId;
    }

    public void setRollOutMemberId(Long rollOutMemberId) {
        this.rollOutMemberId = rollOutMemberId;
    }

    public String getRollOutMemberNum() {
        return rollOutMemberNum;
    }

    public void setRollOutMemberNum(String rollOutMemberNum) {
        this.rollOutMemberNum = rollOutMemberNum;
    }

    public String getRollOutMemberName() {
        return rollOutMemberName;
    }

    public void setRollOutMemberName(String rollOutMemberName) {
        this.rollOutMemberName = rollOutMemberName;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Long getAccountId() {
        return accountId;
    }

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

    public BigDecimal getCardRestMoney() {
        return cardRestMoney;
    }

    public void setCardRestMoney(BigDecimal cardRestMoney) {
        this.cardRestMoney = cardRestMoney;
    }

    public BigDecimal getCardConsumeMoney() {
        return cardConsumeMoney;
    }

    public void setCardConsumeMoney(BigDecimal cardConsumeMoney) {
        this.cardConsumeMoney = cardConsumeMoney;
    }

    public BigDecimal getGiftConsumeMoney() {
        return giftConsumeMoney;
    }

    public void setGiftConsumeMoney(BigDecimal giftConsumeMoney) {
        this.giftConsumeMoney = giftConsumeMoney;
    }

    public Long getRechargeOrProjectId() {
        return rechargeOrProjectId;
    }

    public void setRechargeOrProjectId(Long rechargeOrProjectId) {
        this.rechargeOrProjectId = rechargeOrProjectId;
    }

    public String getRechargeOrProjectName() {
        return rechargeOrProjectName;
    }

    public void setRechargeOrProjectName(String rechargeOrProjectName) {
        this.rechargeOrProjectName = rechargeOrProjectName;
    }

    public String getRechargeOrProjectNum() {
        return rechargeOrProjectNum;
    }

    public void setRechargeOrProjectNum(String rechargeOrProjectNum) {
        this.rechargeOrProjectNum = rechargeOrProjectNum;
    }

    public Integer getCourseRestCount() {
        return courseRestCount;
    }

    public void setCourseRestCount(Integer courseRestCount) {
        this.courseRestCount = courseRestCount;
    }

    public Integer getCourseConsumeCount() {
        return courseConsumeCount;
    }

    public void setCourseConsumeCount(Integer courseConsumeCount) {
        this.courseConsumeCount = courseConsumeCount;
    }

    public BigDecimal getCourseRestPrice() {
        return courseRestPrice;
    }

    public void setCourseRestPrice(BigDecimal courseRestPrice) {
        this.courseRestPrice = courseRestPrice;
    }

    public BigDecimal getCourseConsumePrice() {
        return courseConsumePrice;
    }

    public void setCourseConsumePrice(BigDecimal courseConsumePrice) {
        this.courseConsumePrice = courseConsumePrice;
    }

    public String getInputBy() {
        return inputBy;
    }

    public void setInputBy(String inputBy) {
        this.inputBy = inputBy;
    }

    public Date getInputDate() {
        return inputDate;
    }

    public void setInputDate(Date inputDate) {
        this.inputDate = inputDate;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getAuditBy() {
        return auditBy;
    }

    public void setAuditBy(String auditBy) {
        this.auditBy = auditBy;
    }

    public Date getAuditDate() {
        return auditDate;
    }

    public void setAuditDate(Date auditDate) {
        this.auditDate = auditDate;
    }

    public Long getRollInMemberId() {
        return rollInMemberId;
    }

    public void setRollInMemberId(Long rollInMemberId) {
        this.rollInMemberId = rollInMemberId;
    }

    public String getRollInMemberNum() {
        return rollInMemberNum;
    }

    public void setRollInMemberNum(String rollInMemberNum) {
        this.rollInMemberNum = rollInMemberNum;
    }

    public String getRollInMemberName() {
        return rollInMemberName;
    }

    public void setRollInMemberName(String rollInMemberName) {
        this.rollInMemberName = rollInMemberName;
    }

    public Long getRollInAcoountId() {
        return rollInAcoountId;
    }

    public void setRollInAcoountId(Long rollInAcoountId) {
        this.rollInAcoountId = rollInAcoountId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public Integer getState() {
        return state;
    }

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

    public String getRollOutMobilePhone() {
        return rollOutMobilePhone;
    }

    public void setRollOutMobilePhone(String rollOutMobilePhone) {
        this.rollOutMobilePhone = rollOutMobilePhone;
    }

    public String getRollInMobilePhone() {
        return rollInMobilePhone;
    }

    public void setRollInMobilePhone(String rollInMobilePhone) {
        this.rollInMobilePhone = rollInMobilePhone;
    }
}

