using ScadaLink.Commons.Entities.Instances; using ScadaLink.Commons.Entities.Scripts; using ScadaLink.Commons.Entities.Templates; namespace ScadaLink.Commons.Interfaces.Repositories; public interface ITemplateEngineRepository { // Template Task GetTemplateByIdAsync(int id, CancellationToken cancellationToken = default); Task GetTemplateWithChildrenAsync(int id, CancellationToken cancellationToken = default); Task> GetAllTemplatesAsync(CancellationToken cancellationToken = default); Task AddTemplateAsync(Template template, CancellationToken cancellationToken = default); Task UpdateTemplateAsync(Template template, CancellationToken cancellationToken = default); Task DeleteTemplateAsync(int id, CancellationToken cancellationToken = default); // TemplateAttribute Task GetTemplateAttributeByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAttributesByTemplateIdAsync(int templateId, CancellationToken cancellationToken = default); Task AddTemplateAttributeAsync(TemplateAttribute attribute, CancellationToken cancellationToken = default); Task UpdateTemplateAttributeAsync(TemplateAttribute attribute, CancellationToken cancellationToken = default); Task DeleteTemplateAttributeAsync(int id, CancellationToken cancellationToken = default); // TemplateAlarm Task GetTemplateAlarmByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAlarmsByTemplateIdAsync(int templateId, CancellationToken cancellationToken = default); Task AddTemplateAlarmAsync(TemplateAlarm alarm, CancellationToken cancellationToken = default); Task UpdateTemplateAlarmAsync(TemplateAlarm alarm, CancellationToken cancellationToken = default); Task DeleteTemplateAlarmAsync(int id, CancellationToken cancellationToken = default); // TemplateScript Task GetTemplateScriptByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetScriptsByTemplateIdAsync(int templateId, CancellationToken cancellationToken = default); Task AddTemplateScriptAsync(TemplateScript script, CancellationToken cancellationToken = default); Task UpdateTemplateScriptAsync(TemplateScript script, CancellationToken cancellationToken = default); Task DeleteTemplateScriptAsync(int id, CancellationToken cancellationToken = default); // TemplateComposition Task GetTemplateCompositionByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetCompositionsByTemplateIdAsync(int templateId, CancellationToken cancellationToken = default); Task AddTemplateCompositionAsync(TemplateComposition composition, CancellationToken cancellationToken = default); Task UpdateTemplateCompositionAsync(TemplateComposition composition, CancellationToken cancellationToken = default); Task DeleteTemplateCompositionAsync(int id, CancellationToken cancellationToken = default); // Instance Task GetInstanceByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAllInstancesAsync(CancellationToken cancellationToken = default); Task> GetInstancesByTemplateIdAsync(int templateId, CancellationToken cancellationToken = default); Task> GetInstancesBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); Task GetInstanceByUniqueNameAsync(string uniqueName, CancellationToken cancellationToken = default); Task AddInstanceAsync(Instance instance, CancellationToken cancellationToken = default); Task UpdateInstanceAsync(Instance instance, CancellationToken cancellationToken = default); Task DeleteInstanceAsync(int id, CancellationToken cancellationToken = default); // InstanceAttributeOverride Task> GetOverridesByInstanceIdAsync(int instanceId, CancellationToken cancellationToken = default); Task AddInstanceAttributeOverrideAsync(InstanceAttributeOverride attributeOverride, CancellationToken cancellationToken = default); Task UpdateInstanceAttributeOverrideAsync(InstanceAttributeOverride attributeOverride, CancellationToken cancellationToken = default); Task DeleteInstanceAttributeOverrideAsync(int id, CancellationToken cancellationToken = default); // InstanceConnectionBinding Task> GetBindingsByInstanceIdAsync(int instanceId, CancellationToken cancellationToken = default); Task AddInstanceConnectionBindingAsync(InstanceConnectionBinding binding, CancellationToken cancellationToken = default); Task UpdateInstanceConnectionBindingAsync(InstanceConnectionBinding binding, CancellationToken cancellationToken = default); Task DeleteInstanceConnectionBindingAsync(int id, CancellationToken cancellationToken = default); // Area Task GetAreaByIdAsync(int id, CancellationToken cancellationToken = default); Task> GetAreasBySiteIdAsync(int siteId, CancellationToken cancellationToken = default); Task AddAreaAsync(Area area, CancellationToken cancellationToken = default); Task UpdateAreaAsync(Area area, CancellationToken cancellationToken = default); Task DeleteAreaAsync(int id, CancellationToken cancellationToken = default); // SharedScript Task GetSharedScriptByIdAsync(int id, CancellationToken cancellationToken = default); Task GetSharedScriptByNameAsync(string name, CancellationToken cancellationToken = default); Task> GetAllSharedScriptsAsync(CancellationToken cancellationToken = default); Task AddSharedScriptAsync(SharedScript sharedScript, CancellationToken cancellationToken = default); Task UpdateSharedScriptAsync(SharedScript sharedScript, CancellationToken cancellationToken = default); Task DeleteSharedScriptAsync(int id, CancellationToken cancellationToken = default); Task SaveChangesAsync(CancellationToken cancellationToken = default); }