using QYZH.InteractiveMagazine.Models.Dto;

namespace QYZH.InteractiveMagazine.Models.Dto;

/// <summary>
/// AIPrompt配置创建/更新输入
/// </summary>
public class AiBasePromptInput
{
    /// <summary>
    /// 配置标识（如：DEFAULT, READING, COMPREHENSION）
    /// </summary>
    public string PromptKey { get; set; } = string.Empty;

    /// <summary>
    /// 配置名称（如：默认Prompt、阅读理解专用）
    /// </summary>
    public string PromptName { get; set; } = string.Empty;

    /// <summary>
    /// Prompt模板内容
    /// </summary>
    public string PromptTemplate { get; set; } = string.Empty;

    /// <summary>
    /// 配置说明
    /// </summary>
    public string? Description { get; set; }

    /// <summary>
    /// 优先级（数值越小优先级越高）
    /// </summary>
    public int Priority { get; set; }

    /// <summary>
    /// 是否为默认模板
    /// </summary>
    public bool IsDefault { get; set; } = true;
}

/// <summary>
/// AIPrompt配置输出
/// </summary>
public class AiBasePromptOutput
{
    /// <summary>
    /// 主键ID
    /// </summary>
    public long Id { get; set; }

    /// <summary>
    /// 配置标识
    /// </summary>
    public string PromptKey { get; set; } = string.Empty;

    /// <summary>
    /// 配置名称
    /// </summary>
    public string PromptName { get; set; } = string.Empty;

    /// <summary>
    /// Prompt模板内容
    /// </summary>
    public string PromptTemplate { get; set; } = string.Empty;

    /// <summary>
    /// 配置说明
    /// </summary>
    public string? Description { get; set; }

    /// <summary>
    /// 优先级
    /// </summary>
    public int Priority { get; set; }

    /// <summary>
    /// 是否为默认模板
    /// </summary>
    public bool IsDefault { get; set; }

    /// <summary>
    /// 状态（1=启用, 0=禁用）
    /// </summary>
    public int Status { get; set; }

    /// <summary>
    /// 创建人
    /// </summary>
    public string? CreatedBy { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; }

    /// <summary>
    /// 更新人
    /// </summary>
    public string? UpdatedBy { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime? UpdatedAt { get; set; }
}

/// <summary>
/// AIPrompt配置分页查询输入
/// </summary>
public class AiBasePromptQueryInput : PageQueryModel
{
    /// <summary>
    /// 配置标识（精确匹配）
    /// </summary>
    public string? PromptKey { get; set; }

    /// <summary>
    /// 配置名称（模糊查询）
    /// </summary>
    public string? PromptName { get; set; }
}
