using MikrotikAPI.Models; using MTWireGuard.Application.Models; using MTWireGuard.Application.Models.Mikrotik; namespace MTWireGuard.Application.Repositories { public interface IMikrotikRepository : IDisposable { Task> GetLogsAsync(); Task> GetServersAsync(); Task GetServer(string Name); Task> GetServersTraffic(); Task> GetUsersAsync(); Task GetUser(int id); Task GetUserHandshake(string id); Task GetUserTunnelConfig(int id); Task GetQRCodeBase64(int id); Task GetInfo(); Task GetName(); Task SetName(IdentityUpdateModel identity); Task TryConnectAsync(); Task> GetActiveSessions(); Task> GetJobs(); Task GetCurrentSessionID(); Task KillJob(string JobID); Task> GetScripts(); Task CreateScript(Models.Mikrotik.ScriptCreateModel script); Task RunScript(string name); Task> GetSchedulers(); Task CreateScheduler(Models.Mikrotik.SchedulerCreateModel scheduler); Task CreateServer(ServerCreateModel server); Task CreateUser(UserCreateModel peer); Task SyncUser(UserSyncModel user); Task UpdateUser(UserUpdateModel user); Task UpdateServer(ServerUpdateModel server); Task EnableServer(int id); Task DisableServer(int id); Task EnableUser(int id); Task DisableUser(int id); Task DeleteServer(int id); Task DeleteUser(int id); Task GetDNS(); Task SetDNS(DNSUpdateModel dns); Task> GetIPPools(); Task CreateIPPool(PoolCreateModel ipPool); Task UpdateIPPool(PoolUpdateModel ipPool); Task DeleteIPPool(int id); Task> GetIPAddresses(); Task> GetServerIP(string Name); } }