package com.sonic.frog.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * AI用户扩展表
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ai_user_ext")
@ApiModel("AI用户扩展表")
public class AiUserExt {
    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("AI的id")
    @TableField("ai_id")
    private Long aiId;

    @ApiModelProperty("AI所属主人用户id")
    @TableField("user_id")
    private Long userId;

    @ApiModelProperty("人物设定")
    @TableField("profile")
    private String profile;

    @ApiModelProperty("人物设定 用户输入")
    @TableField("user_profile")
    private String userProfile;

    @ApiModelProperty("用户基础信息 扩展内容")
    @TableField("user_profile_ext_json")
    private String userProfileExtJson;

    @ApiModelProperty("对话风格 用户输入")
    @TableField("user_dialogue_style")
    private String userDialogueStyle;

    @ApiModelProperty("对话风格")
    @TableField("dialogue_style")
    private String dialogueStyle;

    @ApiModelProperty("对话开场白")
    @TableField("dialogue_prologue")
    private String dialoguePrologue;

    @ApiModelProperty("对话开场白 语音")
    @TableField("dialogue_prologue_sound")
    private String dialoguePrologueSound;

    @ApiModelProperty("对话音色code")
    @TableField("dialogue_timbre_code")
    private String dialogueTimbreCode;

    @ApiModelProperty("对话-音高")
    @TableField("dialogue_pitch")
    private String dialoguePitch;

    @ApiModelProperty("对话-语速")
    @TableField("dialogue_speech_rate")
    private String dialogueSpeechRate;

    @ApiModelProperty("形象风格code 对应image_style_dict表中code")
    @TableField("image_style_code")
    private String imageStyleCode;

    @ApiModelProperty("形象描述")
    @TableField("image_desc")
    private String imageDesc;

    @ApiModelProperty("形象参考")
    @TableField("image_reference_url")
    private String imageReferenceUrl;

    @ApiModelProperty("辅助聊天内容")
    @TableField("supporting_content")
    private String supportingContent;

    @ApiModelProperty("是否删除（1.是，0.否）")
    @TableField("is_delete")
    private Boolean isDelete;

    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @ApiModelProperty("修改人")
    @TableField("editor_id")
    private Long editorId;

    @ApiModelProperty("更新时间")
    @TableField("edit_time")
    private LocalDateTime editTime;
}