package com.inkasso.factoring.system.user.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inkasso.factoring.common.entity.BaseEntity;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;


/**
 * @author 张超
 * @date 2023-08-15
 */

@TableName("c_sys_user")
public class UserDO extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 登录名
     */
    @TableField("login_name")
    @NotEmpty(message = "登录名不能为空", groups = {
            Add.class, Update.class
    })
    private String loginName;

    /**
     * 用户名
     */
    @TableField("user_name")
    private String userName;

    /**
     * 密码
     */
    @TableField("password")
    @NotEmpty(message = "密码不能为空", groups = {
            Add.class, Update.class
    })
    private String password;

    /**
     * 手机号
     */
    @TableField("mobile")
    @NotEmpty(message = "手机号不能为空", groups = {
            Add.class, Update.class
    })
    private String mobile;

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

    /**
     * 验证码
     */
    @NotEmpty(message = "手机号不能为空", groups = {
            Add.class, Update.class
    })
    @TableField(exist = false)
    private String code;

    /**
     * 头像图片链接
     */
    @TableField("head_img_url")
    private String headImgUrl;

    @TableField("province_id")
    private Long provinceId;

    @TableField("city_id")
    private Long cityId;

    /**
     * 企业地址
     */
    @TableField("enterprise_address")
    private String enterpriseAddress;

    /**
     * 推荐码
     */
    @TableField("referral_code")
    private String referralCode;

    /**
     * 项目经理id
     */
    @TableField("project_manager")
    private Long projectManager;

    /**
     * 风控经理id
     */
    @TableField("risk_manager")
    private Long riskManager;

    /**
     * 注册时间
     */
    @TableField(exist = false)
    private Date registerDate;

    /**
     * 用户名
     */
    @TableField(exist = false)
    private String name;

    @TableField(exist = false)
    private List<Long> provinceCityIds;

    public Long getProjectManager() {
        return projectManager;
    }

    public void setProjectManager(Long projectManager) {
        this.projectManager = projectManager;
    }

    public Long getRiskManager() {
        return riskManager;
    }

    public void setRiskManager(Long riskManager) {
        this.riskManager = riskManager;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }

    public String getEnterpriseAddress() {
        return enterpriseAddress;
    }

    public void setEnterpriseAddress(String enterpriseAddress) {
        this.enterpriseAddress = enterpriseAddress;
    }

    public String getReferralCode() {
        return referralCode;
    }

    public void setReferralCode(String referralCode) {
        this.referralCode = referralCode;
    }

    public Date getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(Date registerDate) {
        this.registerDate = registerDate;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Long> getProvinceCityIds() {
        return provinceCityIds;
    }

    public void setProvinceCityIds(List<Long> provinceCityIds) {
        this.provinceCityIds = provinceCityIds;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public Long getCityId() {
        return cityId;
    }

    public void setCityId(Long cityId) {
        this.cityId = cityId;
    }
}
