using e_suite.Database.Core;
using e_suite.Database.Core.Tables.CustomFields;
using e_suite.Database.Core.Tables.Domain;
using e_suite.Database.Core.Tables.Forms;
using e_suite.Database.Core.Tables.Glossaries;
using eSuite.Core.Miscellaneous;

namespace e_suite.API.Common.repository;

public interface ICustomFieldValidatorRepository : IRepository
{
    Task<long> FindSequenceIdForCustomField(long customFieldId, CancellationToken cancellationToken);
    Task<FormTemplate?> GetTemplateByGeneralRefId(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task<Glossary?> GetGlossaryByGeneralRefId(GeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task<Domain?> GetDomainByGeneralRefId(GeneralIdRef generalIdRef, CancellationToken cancellationToken); 
    Task<CustomFieldNumber> GetCustomFieldNumbersAsync(long fieldId, CancellationToken cancellationToken);
    Task<CustomFieldText> GetCustomFieldTextsAsync(long fieldId, CancellationToken cancellationToken);
}