using RealCV.Application.Models;

namespace RealCV.Application.Interfaces;

/// <summary>
/// Service for verifying professional qualifications (FCA)
/// </summary>
public interface IProfessionalVerifierService
{
    /// <summary>
    /// Verify if a person is registered with the FCA
    /// </summary>
    Task<ProfessionalVerificationResult> VerifyFcaRegistrationAsync(
        string name,
        string? firmName = null,
        string? referenceNumber = null);

    /// <summary>
    /// Search FCA register for individuals
    /// </summary>
    Task<List<FcaIndividualSearchResult>> SearchFcaIndividualsAsync(string name);
}

public sealed record FcaIndividualSearchResult
{
    public required string Name { get; init; }
    public required string IndividualReferenceNumber { get; init; }
    public string? Status { get; init; }
    public List<string>? CurrentFirms { get; init; }
}
