using CashLineERP.Contracts.Identity;

namespace CashLineERP.Application.Identity;

public interface IAccountingOfficeClientRequestService
{
    IReadOnlyCollection<AccountingOfficeClientRequestResponse> GetExternalPartyRequests(long partyId, long actorUserId);

    AccountingOfficeClientRequestResponse CreateExternalPartyRequest(long partyId, long actorUserId, CreateAccountingOfficeClientRequestRequest request);

    IReadOnlyCollection<AccountingOfficeClientRequestResponse> GetAccountingOfficeClientRequests(long accountingOfficeUserId, long partyId);

    AccountingOfficeClientRequestResponse StartReview(long accountingOfficeUserId, long partyId, long requestId, ReviewAccountingOfficeClientRequestRequest request);

    AccountingOfficeClientRequestResponse Complete(long accountingOfficeUserId, long partyId, long requestId, CompleteAccountingOfficeClientRequestRequest request);

    AccountingOfficeClientRequestResponse Reject(long accountingOfficeUserId, long partyId, long requestId, RejectAccountingOfficeClientRequestRequest request);
}

