package com.sqx.modules.app.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
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.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;


/**
 * 用户
 */
@Data
@ApiModel("用户")
@TableName("tb_user")
public class UserEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户id")
    @TableId(type = IdType.AUTO, value = "user_id")
    private Long userId;
    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    @TableField("user_name")
    private String userName;
    /**
     * 信用分
     */
    private Integer creditScore;

    /**
     * 信用分-司机
     */
    @ApiModelProperty("信用分-司机")
    @TableField("credit_score_sf")
    private Integer creditScoreSf;
    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private String avatar;

    /**
     * 性别 1男 2女
     */
    @ApiModelProperty("性别 1男 2女")
    private Integer sex;
    /**
     * 年龄
     */
    @ApiModelProperty("年龄")
    private Integer age;

    @ApiModelProperty("用户端App  openId")
    private String wxOpenId;

    @ApiModelProperty("师傅端App openId")
    private String riderWxOpenId;

    @ApiModelProperty("用户端公众号openId")
    private String accountOpenId;

    @ApiModelProperty("师傅端公众号openId")
    private String riderAccountOpenId;

    /**
     * 普通用户微信小程序openId
     */
    @ApiModelProperty("普通用户微信小程序openId")
    private String openId;

    /**
     * 骑手用户微信小程序openId
     */
    @ApiModelProperty("骑手用户微信小程序openId")
    private String riderOpenId;
    /**
     * 密码
     */
    private String password;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private String createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private String updateTime;

    /**
     * 苹果id
     */
    @TableField("apple_id")
    private String appleId;

    /**
     * 手机类型 1安卓 2ios
     */
    @TableField("sys_phone")
    private Integer sysPhone;

    /**
     * 状态 1正常 2禁用
     */
    private Integer status;

    /**
     * 来源 app 小程序 公众号
     */
    private String platform;

    /**
     * 积分
     */
    private Integer jifen;

    /**
     * 邀请码
     */
    @TableField("invitation_code")
    private String invitationCode;

    /**
     * 邀请人邀请码
     */
    @TableField("inviter_code")
    private String inviterCode;
    /**
     * 邀请人的人上级
     */
    @TableField("inviter_inviter_code")
    private String inviterInviterCode;

    /**
     * app消息推送
     */
    private String clientid;

    /**
     * 师傅app消息推送
     */
    private String clientRiderId;

    /**
     * 支付宝账号
     */
    private String zhiFuBao;

    /**
     * 支付宝名称
     */
    private String zhiFuBaoName;

    /**
     * 用户类型
     */
    @ApiModelProperty("用户类型 1用户 2司机")
    @TableField(value = "user_type")
    private Integer userType;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    @TableField(value = "nick_name")
    private String nickName;
    /**
     * 保证金
     */
    @ApiModelProperty("保证金")
    @TableField(value = "cash_deposit")
    private BigDecimal cashDeposit;

    /**
     * 账户余额
     */
    @ApiModelProperty("账户余额")
    private BigDecimal balance;

    /**
     * 该用户是否是新用户 1：是新用户  2：不是新用户
     */
    @ApiModelProperty("该用户是否是新用户 1：是新用户  2：不是新用户")
    @TableField(value = "new_user_flag")
    private Integer newUserFlag;

    @ApiModelProperty("用户提现二维码")
    @TableField(value = "cash_qr_code")
    private String cashQrCode;

    @ApiModelProperty("是否推送消息")
    private Integer isSendMsg;

    private String msg;

    @ApiModelProperty("抽佣比例")
    private String rate;

    @ApiModelProperty("下级抽佣比例")
    private String divideScale;

    @ApiModelProperty("二级抽佣比例")
    private String divideTwoScale;

    @TableField(exist = false)
    private BigDecimal riderLine;

    @TableField(exist = false)
    private String search;

    @TableField(exist = false)
    private Integer isVip;

    @TableField(exist = false)
    private String endTime;

    private Integer firstOrder;

}
