using Rag.Models.Requests;
using Rag.Models.Responses;

namespace Api.Services.Contracts;

public interface IRagService
{
    Task<IndexDocumentResponse> IndexTextAsync(IndexDocumentRequest request, CancellationToken ct);
    Task<IndexDocumentResponse> IndexPdfAsync(IFormFile file, string? documentType, string? title, string? sourceUrl, CancellationToken ct);
    Task<SearchResponse> SearchAsync(SearchRequest request, CancellationToken ct);
    Task<RagDocumentDetailsResponse?> GetDocumentAsync(string documentId, CancellationToken ct);
}
