namespace RealCV.Application.Models;

public sealed record CompanyVerificationResult
{
    public required string ClaimedCompany { get; init; }
    public string? MatchedCompanyName { get; init; }
    public string? MatchedCompanyNumber { get; init; }
    public required int MatchScore { get; init; }
    public required bool IsVerified { get; init; }
    public string? VerificationNotes { get; init; }
    public DateOnly? ClaimedStartDate { get; init; }
    public DateOnly? ClaimedEndDate { get; init; }
    public string? CompanyType { get; init; }
    public string? ClaimedJobTitle { get; init; }
    public bool? JobTitlePlausible { get; init; }
    public string? JobTitleNotes { get; init; }

    // Additional company data for verification checks
    public string? CompanyStatus { get; init; }
    public DateOnly? IncorporationDate { get; init; }
    public DateOnly? DissolutionDate { get; init; }
    public string? AccountsCategory { get; init; }
    public List<string>? SicCodes { get; init; }

    // Additional verification flags
    public List<CompanyVerificationFlag> Flags { get; init; } = [];
}

public sealed record CompanyVerificationFlag
{
    public required string Type { get; init; }
    public required string Severity { get; init; }
    public required string Message { get; init; }
    public int ScoreImpact { get; init; }
}
