namespace RealCV.Application.Models;

public record SemanticMatchResult
{
    public required string CandidateCompanyName { get; init; }
    public required string CandidateCompanyNumber { get; init; }
    public required int ConfidenceScore { get; init; }
    public required string MatchType { get; init; } // Exact, TradingName, Subsidiary, Parent, NoMatch
    public required string Reasoning { get; init; }
    public bool IsMatch => ConfidenceScore >= 70;
}

public record CompanyMatchRequest
{
    public required string CVCompanyName { get; init; }
    public required List<CompanyCandidate> Candidates { get; init; }
}

public record CompanyCandidate
{
    public required string CompanyName { get; init; }
    public required string CompanyNumber { get; init; }
    public string? CompanyStatus { get; init; }
    public string? DateOfCreation { get; init; }
}

public record AIMatchResponse
{
    public required string BestMatchCompanyNumber { get; init; }
    public required int ConfidenceScore { get; init; }
    public required string MatchType { get; init; }
    public required string Reasoning { get; init; }
}
