package com.yolo.keyboard.controller.admin.user.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 键盘用户新增/修改 Request VO")
@Data
public class KeyboardUserSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "22036")
    private Long id;

    @Schema(description = "用户 Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16033")
    @NotNull(message = "用户 Id不能为空")
    private Long uid;

    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "用户昵称不能为空")
    private String nickName;

    @Schema(description = "性别")
    private Integer gender;

    @Schema(description = "头像地址", example = "https://www.iocoder.cn")
    private String avatarUrl;

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

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

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

    @Schema(description = "是否禁用", example = "1")
    private Boolean status;

    @Schema(description = "密码")
    private String password;

    @Schema(description = "苹果登录subjectId", example = "12266")
    private String subjectId;

    @Schema(description = "邮箱是否验证")
    private Boolean emailVerified;

    @Schema(description = "是否是 VIP")
    private Boolean isVip;

    @Schema(description = "VIP 过期时间")
    private LocalDateTime vipExpiry;

}