package com.seer.teach.common.dto.mq.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.time.LocalDate;

/**
 * 用户缓存数据传输对象
 * <p>
 * 用于在系统中缓存用户相关信息的DTO类，包含用户的基本信息、设备信息、认证信息等
 * </p>
 *
 * @author Captain
 * @since 2025-08-16 18:01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class UserCacheDTO {

    /**
     * 设备ID
     */
    private Integer deviceId;

    /**
     * 设备类型
     */
    private String device;

    /**
     * 设备是否在线
     */
    private Integer deviceIsOnLine;

    /**
     * 设备屏幕状态
     */
    private Integer screenStatus;

    /**
     * 设备音频状态
     */
    private Integer volumeStatus;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 密码
     */
    private String password;

    /**
     * 头像URL
     */
    private String avatar;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 性别（0-未知，1-男，2-女）
     */
    private Integer gender;

    /**
     * 昵称
     */
    private String nickName;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 邮箱地址
     */
    private String email;

    /**
     * 出生日期
     */
    private LocalDate birthDate;

    /**
     * 微信UnionID
     */
    private String unionId;

    /**
     * 微信OpenID
     */
    private String openId;

    /**
     * 年级ID
     */
    private Integer gradeId;

    /**
     * 等级ID
     */
    private Integer levelId;

    /**
     * 经验值
     */
    private Integer experience;

    /**
     * 角色编码
     */
    private String roleCode;

}
