using ScadaLink.Commons.Entities.Audit; using ScadaLink.Commons.Entities.Deployment; using ScadaLink.Commons.Entities.Instances; using ScadaLink.Commons.Entities.Sites; using ScadaLink.Commons.Entities.Templates; namespace ScadaLink.Commons.Interfaces.Repositories; public interface ICentralUiRepository { Task> GetAllSitesAsync(CancellationToken cancellationToken = default); Task> GetDataConnectionsBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); Task> GetAllDataConnectionsAsync(CancellationToken cancellationToken = default); Task> GetTemplateTreeAsync(CancellationToken cancellationToken = default); Task> GetInstancesFilteredAsync(int? siteId = null, int? templateId = null, string? searchTerm = null, CancellationToken cancellationToken = default); Task> GetRecentDeploymentsAsync(int count, CancellationToken cancellationToken = default); Task> GetAreaTreeBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); // Audit log queries Task<(IReadOnlyList Entries, int TotalCount)> GetAuditLogEntriesAsync( string? user = null, string? entityType = null, string? action = null, DateTimeOffset? from = null, DateTimeOffset? to = null, string? entityId = null, string? entityName = null, int page = 1, int pageSize = 50, CancellationToken cancellationToken = default); Task SaveChangesAsync(CancellationToken cancellationToken = default); }