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

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

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 com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * ai-用户信息对象 ai_user
 *
 * @author shi
 * @date 2025-11-12
 */
@Data
@TableName("ai_user")
public class AiUser extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 用户账号 */
    @Excel(name = "用户账号")
    private String username;

    /** 用户昵称 */
    @Excel(name = "用户昵称")
    private String nickname;

    /** 性别：1-男，2-女 */
    @Excel(name = "性别：1-男，2-女")
    private Integer gender;

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

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

    /** 密码 */
    @JsonIgnore
    @Excel(name = "密码")
    private String password;

    /** 用户唯一标识 */
    @Excel(name = "用户唯一标识")
    private String openid;

    /** 账号状态（0正常 1停用） */
    @Excel(name = "账号状态（0正常 1停用）")
    private Integer status;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

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

    /** 邀请码 */
    @Excel(name = "邀请码")
    private String invitationCode;

    /** 充值地址 */
    @Excel(name = "充值地址")
    private String paymentUrl;

    /** 登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date loginTime;

    /** 余额 */
    @Excel(name = "余额")
    private BigDecimal balance;

    /** 上级ID */
    @Excel(name = "上级ID")
    private Long superiorId;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 来源
     */
    private String source;

    /**
     * 用户IP
     */
    private String ip;

    /**
     * 隶属国家
     */
    private String country;

    /** 归属部门ID（sys_dept.dept_id） */
    private Long deptId;

    /**
     * 上级用户昵称
     */
    @TableField(exist = false)
    private String superiorName;

    /** 归属部门名称 */
    @TableField(exist = false)
    private String deptName;

    /**
     * 上级用户ID
     */
    @TableField(exist = false)
    private String superiorUuid;

    /**
     * 上级用户昵称
     */
    @TableField(exist = false)
    private String newPassword;



}
