using e_suite.Database.Audit;
using e_suite.Database.Core;
using e_suite.Database.Core.Tables.Contacts;
using e_suite.Database.Core.Tables.Printer;
using eSuite.Core.Miscellaneous;

namespace e_suite.API.Common.repository;

public interface IContactsManagerRepository : IRepository
{
    Task AddContact(AuditUserDetails auditUserDetails, Contact contact, CancellationToken cancellationToken);
    Task EditContact(AuditUserDetails auditUserDetails, Contact contact, CancellationToken cancellationToken);
    Task<Contact?> GetContact(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task LinkContactToOrganisation(AuditUserDetails auditUserDetails, OrganisationContact organisationContact, CancellationToken cancellationToken);
    Task LinkContactToSite(AuditUserDetails auditUserDetails, SiteContact siteContact, CancellationToken cancellationToken);
}