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

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.miaxis.common.annotation.Excel;
import com.miaxis.common.core.domain.BaseBusinessEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
/**
 * 用户对象 user_info
 *
 * @author miaxis
 * @date 2021-01-11
 */
@Data
@TableName("user_info")
@ApiModel(value = "UserInfo", description = "用户对象 user_info")
public class UserInfo extends BaseBusinessEntity{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "id")
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 驾校全国统一编号 */
    @Excel(name = "驾校全国统一编号")
    @TableField("inscode")
    @ApiModelProperty(value = "驾校全国统一编号")
    private String inscode;

    /** 姓名 */
    @Excel(name = "姓名")
    @TableField("name")
    @ApiModelProperty(value = "姓名")
    private String name;

    /** 性别 1：男性 2：女性 */
    @Excel(name = "性别 1：男性 2：女性")
    @TableField("sex")
    @ApiModelProperty(value = "性别 1：男性 2：女性")
    private Long sex;

    /** 身份证明号码 1：身份证号，2：护照，3：军官证，4：其他 */
    @Excel(name = "身份证明号码 1：身份证号，2：护照，3：军官证，4：其他")
    @TableField("cardtype")
    @ApiModelProperty(value = "身份证明号码 1：身份证号，2：护照，3：军官证，4：其他")
    private Long cardtype;

    /** 身份证明号码 */
    @Excel(name = "身份证明号码")
    @TableField("idcard")
    @ApiModelProperty(value = "身份证明号码")
    private String idcard;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("birthday")
    @ApiModelProperty(value = "出生日期")
    private Date birthday;

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

    /** 登录密码 MD5加密 */
    @Excel(name = "登录密码 MD5加密")
    @TableField("password")
    @ApiModelProperty(value = "登录密码 MD5加密")
    private String password;

    /** 微信号码 */
    @Excel(name = "微信号码")
    @TableField("wechar")
    @ApiModelProperty(value = "微信号码")
    private String wechar;

    /** 微信openid */
    @Excel(name = "微信openid")
    @TableField("openid")
    @ApiModelProperty(value = "微信openid")
    private String openid;

    /** 业务类型  0:初领 1:增领 9:其他 */
    @Excel(name = "业务类型  0:初领 1:增领 9:其他")
    @TableField("busitype")
    @ApiModelProperty(value = "业务类型  0:初领 1:增领 9:其他")
    private String busitype;

    /** 原准驾车型 */
    @Excel(name = "原准驾车型")
    @TableField("perdritype")
    @ApiModelProperty(value = "原准驾车型")
    private String perdritype;

    /** 培训车型 */
    @Excel(name = "培训车型")
    @TableField("traintype")
    @ApiModelProperty(value = "培训车型")
    private String traintype;

    /** 教练全国统一编号 */
    @Excel(name = "教练全国统一编号")
    @TableField("coachnum")
    @ApiModelProperty(value = "教练全国统一编号")
    private String coachnum;

    /** 0 启用 1禁用 */
    @Excel(name = "0 启用 1禁用")
    @TableField("status")
    @ApiModelProperty(value = "0 启用 1禁用")
    private Integer status;

    /** 全国平台照片ID */
    @Excel(name = "全国平台照片ID")
    @TableField("photo")
    @ApiModelProperty(value = "全国平台照片ID")
    private Long photo;

    /** 驾校班型Id */
    @Excel(name = "驾校班型Id")
    @TableField("school_class_type_id")
    @ApiModelProperty(value = "驾校班型Id")
    private Long schoolClassTypeId;

    public void setId(Long id){
        this.id = id;
    }

    public Long getId(){
        return id;
    }
    public void setInscode(String inscode){
        this.inscode = inscode;
    }

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

    public String getName(){
        return name;
    }
    public void setSex(Long sex){
        this.sex = sex;
    }

    public Long getSex(){
        return sex;
    }
    public void setCardtype(Long cardtype){
        this.cardtype = cardtype;
    }

    public Long getCardtype(){
        return cardtype;
    }
    public void setIdcard(String idcard){
        this.idcard = idcard;
    }

    public String getIdcard(){
        return idcard;
    }
    public void setBirthday(Date birthday){
        this.birthday = birthday;
    }

    public Date getBirthday(){
        return birthday;
    }
    public void setPhone(String phone){
        this.phone = phone;
    }

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

    public String getPassword(){
        return password;
    }
    public void setWechar(String wechar){
        this.wechar = wechar;
    }

    public String getWechar(){
        return wechar;
    }
    public void setOpenid(String openid){
        this.openid = openid;
    }

    public String getOpenid(){
        return openid;
    }
    public void setBusitype(String busitype){
        this.busitype = busitype;
    }

    public String getBusitype(){
        return busitype;
    }
    public void setPerdritype(String perdritype){
        this.perdritype = perdritype;
    }

    public String getPerdritype(){
        return perdritype;
    }
    public void setTraintype(String traintype){
        this.traintype = traintype;
    }

    public String getTraintype(){
        return traintype;
    }
    public void setCoachnum(String coachnum){
        this.coachnum = coachnum;
    }

    public String getCoachnum(){
        return coachnum;
    }
    public void setStatus(Integer status){
        this.status = status;
    }

    public Integer getStatus(){
        return status;
    }
    public void setPhoto(Long photo){
        this.photo = photo;
    }

    public Long getPhoto(){
        return photo;
    }
    public void setSchoolClassTypeId(Long schoolClassTypeId){
        this.schoolClassTypeId = schoolClassTypeId;
    }

    public Long getSchoolClassTypeId(){
        return schoolClassTypeId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("inscode", getInscode())
            .append("name", getName())
            .append("sex", getSex())
            .append("cardtype", getCardtype())
            .append("idcard", getIdcard())
            .append("birthday", getBirthday())
            .append("phone", getPhone())
            .append("password", getPassword())
            .append("wechar", getWechar())
            .append("openid", getOpenid())
            .append("busitype", getBusitype())
            .append("perdritype", getPerdritype())
            .append("traintype", getTraintype())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("coachnum", getCoachnum())
            .append("status", getStatus())
            .append("photo", getPhoto())
            .append("schoolClassTypeId", getSchoolClassTypeId())
            .toString();
    }
}
