using e_suite.API.Common.models;
using e_suite.Database.Core.Models;
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;

public interface ICustomFieldHelper
{
    Task<CustomFieldDefinition> TranslateToCustomFieldDefinitionAsync(CustomField customField, CancellationToken cancellationToken);
    Task<FormTemplate?> GetFormTemplateByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
    Task<Glossary?> GetGlossaryByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
    Task<Domain?> GetDomainByGeneralRefIdAsync(IGeneralIdRef idRef, CancellationToken cancellationToken);
    Task<List<CustomFieldValues>> CustomFieldValuesList(IEnumerable<ICustomFieldValue> enumerableCustomFieldValues, CancellationToken cancellationToken);
}