package com.sonic.frog.domain.input;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @description:
 * @author: mzc
 * @date: 2025-07-10 15:54
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CreateEditAiUserInput {

    @ApiModelProperty("AI的id,编辑时才会传")
    private Long aiId;

    /**
     * AI基础信息
     */
    @ApiModelProperty("昵称")
    @NotBlank
    @Length(min = 2 , max = 20)
    private String nickname;

    @ApiModelProperty("0,男;1,女;2,自定义")
    @NotNull
    private Integer sex;

    @ApiModelProperty("头像")
    @NotBlank
    private String headImg;

    @ApiModelProperty("出生日期")
    @NotNull
    private LocalDateTime birthday;

    @ApiModelProperty("角色code")
    @NotBlank
    private String roleCode;

    @ApiModelProperty("性格code")
    @NotBlank
    private String characterCode;

    @ApiModelProperty("标签code")
    @NotBlank
    private String tagCode;

    @ApiModelProperty("简介")
    @NotBlank
    @Length(min = 10 , max = 300)
    private String introduction;

    @ApiModelProperty("权限 1: 公开 2：私密")
    @NotNull
    private Integer permission;

    @ApiModelProperty("形象图")
    @NotBlank
    private String imageUrl;

    @ApiModelProperty("形象图-宽")
    private String imageWidth;

    @ApiModelProperty("形象图-高")
    private String imageHeight;

    /**
     * 对应Ai用户扩展表
     */
    private AiUserExtInput aiUserExt;
}
