namespace Health.Application.AI;

/// <summary>
/// 用户消息附带的图片/PDF 解析结果。
/// 既用作 LLM 上下文拼装，也持久化到 ConversationMessage.MetadataJson。
/// </summary>
public sealed record AttachmentContext(
    string Kind,            // "image" 或 "pdf"
    string? Category,       // 仅图片：food / report / wound / drug / chart / other
    string? FileName,       // PDF 文件原名
    string Summary,         // 简短摘要，用于持久化和历史回顾
    string LlmContent);     // 完整文本，拼到当前轮 LLM user content 前

public interface IAttachmentContextBuilder
{
    /// <summary>
    /// 根据 imageUrl 或 pdfUrl 构建附件上下文。两个都为空返回 null。
    /// </summary>
    Task<AttachmentContext?> BuildAsync(string? imageUrl, string? pdfUrl, CancellationToken ct);
}
