package com.sy.coinage.sys.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.sy.coinage.core.annotation.FastJsonFieldProfile;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import com.alibaba.fastjson2.annotation.JSONField;
import java.util.List;
import lombok.Data;

/**
 * User实体类
 */
@Data
public class UserVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    @ApiModelProperty(value = "自增主键")
    private Integer id;

    /**
     * 状态 1可用 2禁用
     */
    @ApiModelProperty(value = "状态 1可用 2禁用")
    @FastJsonFieldProfile(groups = {"list", "get"})
    @TableField(value = "status")
    private Integer status;

    /**
     * 用户类型 1管理员
     */
    private Integer type;

    /**
     * 性别 1男 2女 3未知
     */
    private Integer sex;

    /**
     * 机构id
     */
    private Integer orgId;

    /**
     * 部门id
     */
    private Integer deptId;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 用户名
     */
    private String username;

    /**
     * 电话
     */
    private String telephone;

    /**
     * 生日
     */
    @JSONField(format = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 电子邮箱
     */
    private String email;

    /**
     * 工号
     */
    private String workNo;

    /**
     * 职务
     */
    private String duty;

    /**
     * 创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 备注
     */
    private String remark;

    /**
     * -用户编号：沈币唯一标识符8位,由用户填写 -8
     */
    @ApiModelProperty(value = "用户编号：沈币唯一标识符8位,由用户填写")
    @TableField(value = "code")
    private String code;
    /**
     * -卡号：每个卡号对应一个员工编号，使用卡号进行登录 -20
     */
    @ApiModelProperty(value = "卡号：每个卡号对应一个员工编号，使用卡号进行登录")
    @TableField(value = "card_number")
    private String cardNumber;

    /**
     * 角色id集合
     */
    List<Integer> roleIds;

    /**
     * 租户id -10
     */
    @ApiModelProperty(value = "租户id")
    @TableField(value = "tenant_id")
    private Integer tenantId;

}
