package com.cyksj.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.ejlchina.searcher.bean.DbIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author chan
 * @date 2021/10/10 下午2:53
 */
@Getter
@Setter
@Accessors(chain = true)
public class User extends BaseEntity implements Serializable{
    /** 手机号;手机号 */
    private String phone ;
    /** 手机号登录 */
    private String loginPhone;
    /**
     * 邮箱登录
     */
    private String email;
    /** 昵称;昵称 */
    private String nickname ;
    /** 头像;头像 */
    private String headimgurl ;

    private String showId;

    /** 开放平台唯一id;开放平台唯一id */
    private String unionid ;

    /**
     * openid
     */
    private String openId;

    /** 省份;省份 */
    private String province ;
    /** 国家;国家 */
    private String country ;

    /**
     * 城市
     */
    private String city ;

    /** 性别;性别 */
    private Integer sex ;

    private BigDecimal points;

    /**
     * 银河币
     */
    private BigDecimal galaxyCoin;

    /**
     * 余额 分
     */
    private BigDecimal balance;

    /**
     * 用户店铺提成金额
     */
    private BigDecimal yhsMoney;

    /**
     * 用户下级渠道提成金额
     */
    private BigDecimal subApplyMoney;

    /**
     * 镜像加盟商提成金额
     */
    private BigDecimal mpMoney;

    /**
     * 推广id
     */
    private Long popularizeId;

    /**
     * 用户是否被拉黑 true是
     */
    private Boolean isBlack;

    /**
     * 注册环境
     * h5：移动端浏览器登录
     * 微信：公众号h5授权登录
     * pc：浏览器登录，包括微信扫码在浏览器登录
     */
    private String registerEnv;

    /**
     * 最后登录时间
     */
    private Date lastTime;

    @TableField(exist = false)
    @DbIgnore
    private Long emailUserId;

    @TableField(exist = false)
    @DbIgnore
    private Long phoneUserId;

    /**
     * 是否是谷歌授权登录
     */
    private Boolean isGoogle;

    @Getter
    public enum RegisterEnv{
        wx("公众号h5授权登录"),
        h5("移动端浏览器登录"),
        pc("浏览器登录，包括微信扫码在浏览器登录"),
        ;
        String desc;

        RegisterEnv(String desc) {
            this.desc = desc;
        }
    }
}

