using RealCV.Application.Models; namespace RealCV.Application.Interfaces; /// /// Service for verifying international companies via OpenCorporates /// public interface IInternationalCompanyVerifierService { /// /// Verify an international company /// Task VerifyCompanyAsync( string companyName, string? jurisdiction = null, DateOnly? claimedStartDate = null, DateOnly? claimedEndDate = null); /// /// Search for companies across all jurisdictions /// Task> SearchCompaniesAsync( string query, string? jurisdiction = null); /// /// Get list of supported jurisdictions /// Task> GetJurisdictionsAsync(); } public sealed record OpenCorporatesSearchResult { public required string CompanyName { get; init; } public required string CompanyNumber { get; init; } public required string Jurisdiction { get; init; } public string? JurisdictionCode { get; init; } public string? Status { get; init; } public DateOnly? IncorporationDate { get; init; } public string? OpenCorporatesUrl { get; init; } public double? MatchScore { get; init; } } public sealed record JurisdictionInfo { public required string Code { get; init; } public required string Name { get; init; } public string? Country { get; init; } }