package com.ruoyi.common.core.domain.entity;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * APP用户对象 app_user
 * @author lishundong
 * @date 2024-09-03
 */
@Data
@ApiModel("APP用户")
@TableName(value = "app_user")
public class AppUser extends BaseEntity
{
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @TableId(value = "user_id",type = IdType.AUTO)
    @ApiModelProperty("用户ID")
    private Long userId;

    @Excel(name = "用户名称")
    @ApiModelProperty("用户名称")
    private String name;

    @Excel(name = "年龄段 对应字典age")
    @ApiModelProperty("年龄段 对应字典age")
    private String age;

    @Excel(name = "用户性别", readConverterExp = "0=男,1=女")
    @ApiModelProperty("用户性别（0男 1女）对应字典sex")
    private String sex;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("生日")
    private String birthDate;

    @Excel(name = "学历 对应字典education")
    @ApiModelProperty("学历 对应字典education")
    private String education;

    @Excel(name = "政治面貌")
    @ApiModelProperty("政治面貌")
    private String politicalAffiliation;

    @Excel(name = "手机号码")
    @ApiModelProperty("手机号码")
    private String phone;

    @Excel(name = "头像地址")
    @ApiModelProperty("头像地址")
    private String avatar;

    @Excel(name = "最低工资")
    @ApiModelProperty("最低工资")
    private String salaryMin;

    @Excel(name = "最高工资")
    @ApiModelProperty("最高工资")
    private String salaryMax;

    @Excel(name = "期望工作地 对应字典area")
    @ApiModelProperty("期望工作地 对应字典area")
    private String area;

    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    @ApiModelProperty("帐号状态（0正常 1停用）")
    private String status;

    @Excel(name = "最后登录IP")
    @ApiModelProperty("最后登录IP")
    private String loginIp;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("最后登录时间")
    private Date loginDate;

    @ApiModelProperty("期望岗位,逗号分隔")
    private String jobTitleId;

    @ApiModelProperty("期望薪资")
    private String experience;

    @ApiModelProperty("是否开启推荐（0不推荐 1推荐）")
    private Integer isRecommend;

    @TableField(exist = false)
    @ApiModelProperty("期望岗位列表")
    private List<String> jobTitle;

    @ApiModelProperty("身份证")
    private String idCard;

    /**
     * 是否企业用户 0是，1否改为（0企业，1求职者，2网格员）
     */
    @ApiModelProperty("app角色：0企业，1求职者，2网格员 3内部政府人员 4其他（浪潮用）")
    private String isCompanyUser;

    @TableField(exist = false)
    @ApiModelProperty("密码")
    private String password;

    /**
     * 微信小程序用户唯一标识
     */
    @ApiModelProperty("微信小程序用户唯一标识")
    private String openid;
    /**
     * 微信开放平台全局标识
     */
    @ApiModelProperty("微信开放平台全局标识")
    private String unionid;

    @ApiModelProperty("民族")
    private String nation;

    @ApiModelProperty("工作经验")
    private String workExperience;

    @ApiModelProperty("机构类型 0用人单位 1培训机构 2评价机构 3人力资源机构")
    private String orgType;

    @TableField(exist = false)
    @ApiModelProperty("公司信息")
    private Company company;

    @TableField(exist = false)
    @ApiModelProperty("工作经历列表")
    private List<UserWorkExperiences> experiencesList;

    @TableField(exist = false)
    @ApiModelProperty("技能列表")
    private List<AppSkill> appSkillsList;

    @TableField(exist = false)
    @ApiModelProperty("附件列表")
    private List<File> fileList;

    @TableField(exist = false)
    private MyChart myChart;

    @ApiModelProperty("一体机密码")
    private String ytjPassword;

    @ApiModelProperty("地址")
    private String address;

    @ApiModelProperty("户籍地址")
    private String domicileAddress;

    @ApiModelProperty("地纬userid")
    private String dwUserid;

    @ApiModelProperty("所属行政区划")
    private String regionCode;
}
