using ScadaLink.Commons.Entities.Instances; using ScadaLink.Commons.Entities.Sites; namespace ScadaLink.Commons.Interfaces.Repositories; /// /// Repository interface for site and data connection management. /// public interface ISiteRepository { // Sites Task GetSiteByIdAsync(int id, CancellationToken cancellationToken = default); Task GetSiteByIdentifierAsync(string siteIdentifier, CancellationToken cancellationToken = default); Task> GetAllSitesAsync(CancellationToken cancellationToken = default); Task AddSiteAsync(Site site, CancellationToken cancellationToken = default); Task UpdateSiteAsync(Site site, CancellationToken cancellationToken = default); Task DeleteSiteAsync(int id, CancellationToken cancellationToken = default); // Data Connections Task GetDataConnectionByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAllDataConnectionsAsync(CancellationToken cancellationToken = default); Task> GetDataConnectionsBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); Task AddDataConnectionAsync(DataConnection connection, CancellationToken cancellationToken = default); Task UpdateDataConnectionAsync(DataConnection connection, CancellationToken cancellationToken = default); Task DeleteDataConnectionAsync(int id, CancellationToken cancellationToken = default); // Instances (for deletion constraint checks) Task> GetInstancesBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); Task SaveChangesAsync(CancellationToken cancellationToken = default); }