using CashLineERP.Contracts.MasterData;

namespace CashLineERP.Application.MasterData;

public interface IReferenceDataGovernanceService
{
    MasterDataGovernanceOverviewResponse GetOverview();

    IReadOnlyCollection<ReferenceDataEntryResponse> GetEntries(string? referenceTypeCode = null, bool activeOnly = false);

    ReferenceDataEntryResponse? GetEntry(long referenceDataEntryId);

    ReferenceDataEntryResponse CreateReferenceDataEntry(CreateReferenceDataEntryRequest request);

    ReferenceDataEntryResponse SubmitReferenceDataEntry(long referenceDataEntryId, long actorUserId);

    ReferenceDataEntryResponse ApproveReferenceDataEntry(long referenceDataEntryId, long actorUserId);

    ReferenceDataEntryResponse ActivateReferenceDataEntry(long referenceDataEntryId, long actorUserId);
}
