package com.lesingle.creation.vo.user;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户详情 VO
 */
@Data
@Schema(description = "用户详情响应")
public class UserDetailVO {

    @Schema(description = "用户 ID")
    private Long id;

    @Schema(description = "租户 ID")
    private Long tenantId;

    @Schema(description = "用户名")
    private String username;

    @Schema(description = "昵称")
    private String nickname;

    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "手机号")
    private String phone;

    @Schema(description = "性别：male-男，female-女")
    private String gender;

    @Schema(description = "头像 URL")
    private String avatar;

    @Schema(description = "所在城市")
    private String city;

    @Schema(description = "出生日期")
    private LocalDate birthday;

    @Schema(description = "用户来源")
    private String userSource;

    @Schema(description = "用户类型：adult/child")
    private String userType;

    @Schema(description = "所属单位")
    private String organization;

    @Schema(description = "账号状态：enabled-启用，disabled-停用")
    private String status;

    @Schema(description = "有效状态：1-有效，2-失效")
    private Integer validState;

    @Schema(description = "创建人")
    private String createBy;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新人")
    private String updateBy;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "角色 ID 列表")
    private List<Long> roleIds;

    @Schema(description = "角色名称列表")
    private List<String> roleNames;
}
