using CashLineERP.Contracts.Parties;

namespace CashLineERP.Application.Parties;

public interface IPartyOnboardingService
{
    IReadOnlyCollection<BusinessPartyResponse> GetParties(string? partyType = null);

    BusinessPartyResponse CreateParty(CreateBusinessPartyRequest request);

    BusinessPartyResponse SetFirmNationalId(long partyId, string? firmNationalId, long actorUserId);

    IReadOnlyCollection<BusinessPartyResponse> GetActiveClientsMissingFirmNationalId();

    IReadOnlyCollection<BusinessPartyComplianceDocumentResponse> GetComplianceDocuments(long partyId);

    BusinessPartyComplianceDocumentResponse RecordComplianceDocument(long actorUserId, long partyId, RecordBusinessPartyComplianceDocumentRequest request);
}
