package com.yeejoin.amos.boot.module.tcm.api.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 用户信息表
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_user_info")
public class TzsUserInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 姓名
     */
    @TableField("name")
    private String name;


    /**
     * 证件类型
     */
    @TableField("certificate_type")
    private String certificateType;

    /**
     * 证件编号
     */
    @TableField("certificate_num")
    private String certificateNum;

    /**
     * 性别
     */
    @TableField("gender")
    private String gender;

    /**
     * 岗位-保留兼容下游数据查询
     */
    @TableField("post")
    private String post;

    /**
     * 新岗位（后期post迁移数组至此）
     */
    @TableField("new_post")
    private String newPost;

    /**
     * 岗位名称-按照new_post显示
     */
    @TableField("post_name")
    private String postName;

    /**
     * 联系电话
     */
    @TableField("phone")
    private String phone;

    /**
     * 出生日期
     */
    @TableField("birthday")
    private Date birthday;

    /**
     * 学历
     */
    @TableField("education")
    private String education;

    /**
     * 专业
     */
    @TableField("speciality")
    private String speciality;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 住址
     */
    @TableField("address")
    private String address;

    /**
     * 证件照片
     */
    @TableField(value = "identification")
    private String identification;

    /**
     * 证件照片
     *
     */
    @TableField(value = "appoint_doc")
    private String appointDoc;

    /**
     * 执业注册
     */
    @TableField(value = "practice_registration")
    private String practiceRegistration;

    /**
     * 劳动合同
     */
    @TableField(value = "labor_contract")
    private String laborContract;


    /**
     * 账户名
     */
    @TableField("amos_user_name")
    private String amosUserName;

    /**
     * 单位名称
     */
    @TableField("unit_name")
    private String unitName;


    /**
     * 企业编码
     */
    @TableField("unit_code")
    private String unitCode;

    /**
     * 头像
     */
    @TableField(value = "profile")
    private String profile;


    /**
     * 平台账号id
     */
    @TableField("amos_user_id")
    private String amosUserId;

    /**
     * 平台账号锁定状态
     */
    @TableField("lock_status")
    private String lockStatus;

    /**
     * 设备类型
     */
    @TableField(value = "equip_type", updateStrategy = FieldStrategy.IGNORED)
    private String equipType;
    /**
     * 内部人员编码
     */
    @TableField("inner_person_code")
    private String innerPersonCode;

    /**
     * 其他附件
     */
    @TableField(value = "other_accessories")
    private String otherAccessories;

    /**
     * 验检验专用-级别-废弃，被permissionData替代
     */
    @Deprecated
    @TableField(value = "permission_level")
    private String permissionLevel;

    /**
     * 验检验专用-资质项目-废弃，被permissionData替代
     */
    @Deprecated
    @TableField(value = "permission_item")
    private String permissionItem;

    /**
     * 验检验专用-资质数据json，替代：permission_level、permission_item
     */
    @TableField(value = "permission_data")
    private String permissionData;

    /**
     * 职称
     */
    @TableField(value = "job_title")
    private String jobTitle;

    /**
     * 二维码状态0异常1正常
     */
    @TableField("qr_code_state")
    private String qrCodeState;

    /**
     * 岗位子类型（多个逗号分割）
     */
    @TableField("sub_post")
    private String subPost;

    /**
     * 岗位子类型名称（多个逗号分割）
     */
    @TableField("sub_post_name")
    private String subPostName;

    /**
     * 人员转出标识（1：已转出，0：未转出，空值默认为未转出0）
     */
    @TableField(value = "transfer_out")
    protected String transferOut;

    /**
     * 人员转出时间
     */
    @TableField(value = "transfer_out_time")
    protected Date transferOutTime;
}
