package com.bonus.canteen.core.account.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;

/**
 * 人员卡片资料对象 acc_card
 * 
 * @author xsheng
 * @date 2025-04-20
 */


@Data
@ToString
public class AccCard extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键自增 */
    private Long id;

    /** 人员id */
    @Excel(name = "人员id")
    @ApiModelProperty(value = "人员id")
    private Long userId;

    /** 人员姓名 */
    @ApiModelProperty(value = "人员姓名")
    private String nickName;

    /** 账户id */
    @Excel(name = "账户id")
    @ApiModelProperty(value = "账户id")
    private Long accId;

    /** 卡号 */
    @Excel(name = "卡号")
    @ApiModelProperty(value = "卡号")
    private Long cardNum;

    /** 卡序列号 物理卡号 */
    @Excel(name = "卡序列号 物理卡号")
    @ApiModelProperty(value = "卡序列号 物理卡号")
    private String serialNum;

    /** 餐卡性质（临时卡、编制卡） */
    @Excel(name = "餐卡性质", readConverterExp = "临=时卡、编制卡")
    private String cardNature;

    /** 卡类型 */
    @Excel(name = "卡类型")
    @ApiModelProperty(value = "卡类型")
    private Integer cardType;

    /** 卡状态 1-正常 4-挂失 */
    @Excel(name = "卡状态 1-正常 4-挂失")
    @ApiModelProperty(value = "卡状态 1-正常 4-挂失 5-发卡 6-退卡 7-已过期")
    private Integer cardStatus;

    /** 押金 单位分 */
    @Excel(name = "押金 单位分")
    @ApiModelProperty(value = "押金 单位分")
    private Long deposit;

    /** 工本费 单位分 */
    @Excel(name = "工本费 单位分")
    @ApiModelProperty(value = "工本费 单位分")
    private Long productCost;

    /** 待缴工本费金额 */
    @Excel(name = "待缴工本费金额")
    @ApiModelProperty(value = "待缴工本费金额")
    private Long pendProductCost;

    /** 卡片有效期 */
    @ApiModelProperty(value = "卡片有效期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "卡片有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityDate;

    /** 卡面号 */
    @Excel(name = "卡面号")
    @ApiModelProperty(value = "卡面号")
    private String cardFaceNum;

    /** 乐观锁 */
    @Excel(name = "乐观锁")
    @ApiModelProperty(value = "乐观锁")
    private Long revision;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    @ApiModelProperty(value = "预留字段1")
    private String reserved1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    @ApiModelProperty(value = "预留字段2")
    private String reserved2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    @ApiModelProperty(value = "预留字段3")
    private String reserved3;

    /** 三方卡号 */
    @Excel(name = "三方卡号")
    @ApiModelProperty(value = "三方卡号")
    private String thirdSerialNum;

    /** 发卡来源 */
    @Excel(name = "发卡来源")
    @ApiModelProperty(value = "发卡来源")
    private String cardSourceType;

    @ApiModelProperty(value = "1-发卡, 2-退卡, 3-换卡")
    private Integer operationType;

}
