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

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.yolo.keyboard.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.yolo.keyboard.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - AI陪聊角色表，用于定义恋爱/陪伴型虚拟角色的基础信息与人设分页 Request VO")
@Data
public class KeyboardAiCompanionPageReqVO extends PageParam {

    @Schema(description = "角色头像URL，用于列表页和聊天页", example = "https://www.iocoder.cn")
    private String avatarUrl;

    @Schema(description = "角色封面图URL，用于角色详情页", example = "https://www.iocoder.cn")
    private String coverImageUrl;

    @Schema(description = "角色性别（male / female / other）")
    private String gender;

    @Schema(description = "角色年龄段描述（如：20s、25-30）")
    private String ageRange;

    @Schema(description = "角色性格标签数组（如：温柔、黏人、治愈）")
    private Object personalityTags;

    @Schema(description = "角色说话风格（如：撒娇型、理性型、活泼型）")
    private String speakingStyle;

    @Schema(description = "AI系统Prompt，定义角色核心人设，仅供模型使用")
    private String systemPrompt;

    @Schema(description = "角色状态：1=上线，0=下线", example = "2")
    private Short status;

    @Schema(description = "角色可见性：1=公开，2=内测，3=隐藏")
    private Short visibility;

    @Schema(description = "排序权重，数值越大排序越靠前")
    private Integer sortOrder;

    @Schema(description = "角色热度评分，用于推荐排序")
    private Integer popularityScore;

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

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

    @Schema(description = "开场白")
    private String prologue;

    @Schema(description = "开场白音频")
    private String prologueAudio;

    @Schema(description = "音频Id", example = "4155")
    private String voiceId;

}