package com.ssyf.module.robot.domain.entity;

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 java.io.Serializable;
import java.time.LocalDateTime;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 机器人账号表
 * @TableName r_robot_account
 */
@TableName(value ="r_robot_account")
@Data
@Accessors(chain = true)
public class RRobotAccount implements Serializable {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 机器人账号唯一标识（UUID）
     */
    private String uuid;

    /**
     * 机器人账号编号（业务唯一）
     */
    private String code;

    /**
     * 机器人登录邮箱
     */
    private String email;

    /**
     * 机器人登录密码（加密存储）
     */
    private String password;

    /**
     * 机器人账号备注信息
     */
    private String notes;

    /**
     * 账号状态：0-停用，1-启用
     */
    private Integer status;

    /**
     * 账号有效状态；0-无效，1-有效
     */
    private Integer valid;

    /**
     * 账号最后验证时间
     */
    private LocalDateTime lastValidationTime;

    /**
     * 所属分组ID
     */
    private String groupId;

    /**
     * 所属分组名称
     */
    private String groupName;

    /**
     * 管理人ID
     */
    private Long managerId;

    /**
     * 管理人姓名
     */
    private String managerName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人ID
     */
    private String creatorUuid;

    /**
     * 创建人姓名
     */
    private String creator;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标识：0-未删除，1-已删除
     */
    private Integer deleted;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @TableField("user_number")
    private String userNumber;

    @TableField("country_mobile_code")
    private String countryMobileCode;

    @TableField("mobile")
    private String mobile;

    @TableField("nickname")
    private String nickname;

    @TableField("header_icon_url")
    private String headerIconUrl;

    @TableField("user_id")
    private Integer userId; // 或 Long，视业务而定
}