package com.cool.modules.aiconfig.entity;

import com.cool.core.base.BaseEntity;
import com.cool.core.annotation.ColumnDefine;
import com.mybatisflex.annotation.Table;
import com.tangzc.mybatisflex.autotable.annotation.UniIndex;
import lombok.Getter;
import lombok.Setter;

/**
 * AI模板提示词配置实体类
 */
@Getter
@Setter
@Table(value = "ai_template", comment = "AI模板提示词配置表")
public class AiTemplateEntity extends BaseEntity<AiTemplateEntity> {

    @UniIndex
    @ColumnDefine(comment = "模板标识（唯一）", notNull = true)
    private String templateKey;

    @ColumnDefine(comment = "模板名称", notNull = true)
    private String templateName;

    @ColumnDefine(comment = "关联模型ID", notNull = true)
    private Long modelId;

    @ColumnDefine(comment = "使用场景（如：日报生成、周报生成、月报生成、工作建议等）", notNull = true)
    private String scene;

    @ColumnDefine(comment = "提示词内容", type = "text", notNull = true)
    private String promptContent;

    @ColumnDefine(comment = "系统提示词", type = "text")
    private String systemPrompt;

    @ColumnDefine(comment = "温度参数（0-1之间）", defaultValue = "0.7")
    private Double temperature;

    @ColumnDefine(comment = "最大token数", defaultValue = "2000")
    private Integer maxTokens;

    @ColumnDefine(comment = "状态 0-禁用 1-启用", defaultValue = "1")
    private Integer status;

    @ColumnDefine(comment = "排序号", defaultValue = "0")
    private Integer orderNum;

    @ColumnDefine(comment = "备注")
    private String remark;
}
