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

namespace e_suite.API.Common.repository;

public interface ISiteManagerRepository : IRepository
{
    IQueryable<Site> GetSites();
    Task<Site?> GetSite(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task<Site?> GetSite(long sigmaId, CancellationToken cancellationToken);
    Task EditSite(AuditUserDetails auditUserDetails, Site editedSite, CancellationToken cancellationToken);
    Task CreateSite(AuditUserDetails auditUserDetails, Site newSite, CancellationToken cancellationToken);
    Task CreateSite(AuditUserDetails auditUserDetails, IEnumerable<Site> newSites, CancellationToken cancellationToken);
}