namespace JobTrackerApi.Services;

public sealed record GmailSemanticMatchCandidate(
    int? JobApplicationId,
    string? Confidence,
    string? Reason,
    IReadOnlyList<string>? ExtractedCompanies,
    IReadOnlyList<string>? ExtractedRecruiters,
    IReadOnlyList<string>? ExtractedRoles,
    IReadOnlyList<string>? ExtractedHints);

public interface IGmailCorrespondenceEnrichmentService
{
    Task<GmailSemanticMatchCandidate?> EnrichAsync(string threadSubject, string from, string to, string snippet, string? bodyText, CancellationToken cancellationToken = default);
}

public sealed class NoOpGmailCorrespondenceEnrichmentService : IGmailCorrespondenceEnrichmentService
{
    public Task<GmailSemanticMatchCandidate?> EnrichAsync(string threadSubject, string from, string to, string snippet, string? bodyText, CancellationToken cancellationToken = default)
        => Task.FromResult<GmailSemanticMatchCandidate?>(null);
}
