using RobotNet10.CustomConfiguration.Events; using RobotNet10.CustomConfiguration.Models; namespace RobotNet10.CustomConfiguration.Services; /// /// Service interface cho quản lý configuration files /// public interface IConfigService { // ========================================== // EVENTS // ========================================== /// /// Event được trigger khi có thay đổi trong config (tạo mới, cập nhật, xóa, hoặc thay đổi variables) /// event EventHandler? ConfigChanged; // ========================================== // CONFIG FILE MANAGEMENT // ========================================== Task CreateConfigAsync(string configType, List variables, string? description = null); Task GetConfigByIdAsync(Guid id); Task GetConfigByTypeAsync(string configType); Task> GetAllConfigsAsync(); Task> SearchConfigsAsync(string? searchText); Task UpdateConfigAsync(Guid id, List? variables = null, string? description = null); Task DeleteConfigAsync(Guid id); Task ConfigTypeExistsAsync(string configType); // ========================================== // IMPORT/EXPORT // ========================================== Task ImportConfigFromJsonAsync(Stream jsonStream, string configType); Task ImportConfigFromJsonAsync(Stream jsonStream, string configType, string? description); Task ExportConfigToJsonAsync(Guid id); Task ExportConfigToJsonAsync(ConfigFile config); // ========================================== // VARIABLE MANAGEMENT // ========================================== Task UpdateVariableAsync(Guid configId, string variableName, object? value); Task AddVariableAsync(Guid configId, ConfigVariable variable); Task RemoveVariableAsync(Guid configId, string variableName); }