using ScadaLink.Commons.Entities.Deployment; using ScadaLink.Commons.Entities.Instances; using ScadaLink.Commons.Types.Enums; namespace ScadaLink.Commons.Interfaces.Repositories; public interface IDeploymentManagerRepository { // DeploymentRecord Task GetDeploymentRecordByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAllDeploymentRecordsAsync(CancellationToken cancellationToken = default); Task> GetDeploymentsByInstanceIdAsync(int instanceId, CancellationToken cancellationToken = default); Task GetCurrentDeploymentStatusAsync(int instanceId, CancellationToken cancellationToken = default); Task GetDeploymentByDeploymentIdAsync(string deploymentId, CancellationToken cancellationToken = default); Task AddDeploymentRecordAsync(DeploymentRecord record, CancellationToken cancellationToken = default); Task UpdateDeploymentRecordAsync(DeploymentRecord record, CancellationToken cancellationToken = default); Task DeleteDeploymentRecordAsync(int id, CancellationToken cancellationToken = default); // SystemArtifactDeploymentRecord Task GetSystemArtifactDeploymentByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAllSystemArtifactDeploymentsAsync(CancellationToken cancellationToken = default); Task AddSystemArtifactDeploymentAsync(SystemArtifactDeploymentRecord record, CancellationToken cancellationToken = default); Task UpdateSystemArtifactDeploymentAsync(SystemArtifactDeploymentRecord record, CancellationToken cancellationToken = default); Task DeleteSystemArtifactDeploymentAsync(int id, CancellationToken cancellationToken = default); // WP-8: DeployedConfigSnapshot Task GetDeployedSnapshotByInstanceIdAsync(int instanceId, CancellationToken cancellationToken = default); Task AddDeployedSnapshotAsync(DeployedConfigSnapshot snapshot, CancellationToken cancellationToken = default); Task UpdateDeployedSnapshotAsync(DeployedConfigSnapshot snapshot, CancellationToken cancellationToken = default); Task DeleteDeployedSnapshotAsync(int instanceId, CancellationToken cancellationToken = default); // Instance lookups for deployment pipeline Task GetInstanceByIdAsync(int instanceId, CancellationToken cancellationToken = default); Task GetInstanceByUniqueNameAsync(string uniqueName, CancellationToken cancellationToken = default); Task UpdateInstanceAsync(Instance instance, CancellationToken cancellationToken = default); /// /// Removes an instance and everything that depends on it: deployment /// records, deployed config snapshot, attribute/alarm overrides, and /// connection bindings. /// Task DeleteInstanceAsync(int instanceId, CancellationToken cancellationToken = default); Task SaveChangesAsync(CancellationToken cancellationToken = default); }