using CvMatcher.Models.Responses;

namespace CvMatcher.Data.Repositories.Contracts;

public interface IMatcherRepository
{
    Task InitializeAsync(CancellationToken ct);
    Task<JobMatchResponse?> GetMatchAsync(string cvDocumentId, string jobDocumentId, string language, CancellationToken ct);
    Task SaveMatchAsync(string cvDocumentId, string jobDocumentId, string language, JobMatchResponse response, string? email, string? clientIpAddress, CancellationToken ct);
    Task<string?> GetChatCompletionAsync(string cacheKey, CancellationToken ct);
    Task SaveChatCompletionAsync(string cacheKey, string model, decimal temperature, string responseText, CancellationToken ct);
}
