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 javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 会员转卡包表(TurnMembershipCard)实体类
 *
 * @author makejava
 * @since 2022-04-28 14:43:43
 */
@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
@Table(name = "turn_membership_card")
public class TurnMembershipCardRequest extends BasePage implements Serializable {
    private static final long serialVersionUID = -29688203420635301L;
    private List<Long> storeIds;
    /**
     * 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 = "doc_num")
    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;

    private List<TurnMembershipCardMxRequest> turnMembershipCardMxRequestList;

}

