package com.pavis.admin.aigc.model.resp;

import lombok.Data;

import io.swagger.v3.oas.annotations.media.Schema;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;

import com.pavis.admin.common.model.resp.BaseDetailResp;
import java.io.Serial;
import java.math.BigDecimal;

/**
 * AIGC应用配置详情信息
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "AIGC应用配置详情信息")
public class AigcAppDetailResp extends BaseDetailResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 绑定模型ID
     */
    @Schema(description = "绑定模型ID")
    @ExcelProperty(value = "绑定模型ID")
    private Long modelId;

    /**
     * 语义化版本号
     */
    @Schema(description = "语义化版本号")
    @ExcelProperty(value = "语义化版本号")
    private String version;

    /**
     * 封面图URL
     */
    @Schema(description = "封面图URL")
    @ExcelProperty(value = "封面图URL")
    private String cover;

    /**
     * 应用名称(唯一)
     */
    @Schema(description = "应用名称(唯一)")
    @ExcelProperty(value = "应用名称(唯一)")
    private String name;

    /**
     * 应用分类
     */
    @Schema(description = "应用分类")
    @ExcelProperty(value = "应用分类")
    private String category;

    /**
     * 标签
     */
    @Schema(description = "标签")
    @ExcelProperty(value = "标签")
    private String tags;

    /**
     * 系统级提示词
     */
    @Schema(description = "系统级提示词")
    @ExcelProperty(value = "系统级提示词")
    private String prompt;

    /**
     * 负面提示词
     */
    @Schema(description = "负面提示词")
    @ExcelProperty(value = "负面提示词")
    private String negativePrompt;

    /**
     * 上下文记忆轮次
     */
    @Schema(description = "上下文记忆轮次")
    @ExcelProperty(value = "上下文记忆轮次")
    private Integer contextWindow;

    /**
     * 状态:0下架 1发布 2审核中
     */
    @Schema(description = "状态:0下架 1发布 2审核中")
    @ExcelProperty(value = "状态:0下架 1发布 2审核中")
    private Boolean status;

    /**
     * 动态配置
     */
    @Schema(description = "动态配置")
    @ExcelProperty(value = "动态配置")
    private String config;

    /**
     * 聊天记录保留天数
     */
    @Schema(description = "聊天记录保留天数")
    @ExcelProperty(value = "聊天记录保留天数")
    private Integer retentionDays;

    /**
     * 调用次数统计
     */
    @Schema(description = "调用次数统计")
    @ExcelProperty(value = "调用次数统计")
    private Long invokeCount;

    /**
     * 平均评分
     */
    @Schema(description = "平均评分")
    @ExcelProperty(value = "平均评分")
    private BigDecimal avgRating;
}