using Application.DTOs.AdminDTOs; namespace Application.Abstractions.Interfaces { public interface IAdminService { /// /// Get system statistics for admin dashboard /// Task GetSystemStatsAsync(); /// /// Export all delivery history to JSON format /// Task ExportDeliveryHistoryAsync(); /// /// Create database backup /// Task CreateDatabaseBackupAsync(string backupPath); /// /// Get robot efficiency analytics /// Task> GetRobotEfficiencyAsync(); /// /// Generate a new admin registration key /// Task GenerateAdminKeyAsync(int createdByAdminId, DateTime? expiresAt = null, string? description = null); /// /// Get all admin keys /// Task> GetAllAdminKeysAsync(); /// /// Get unused admin keys /// Task> GetUnusedAdminKeysAsync(); /// /// Revoke an admin key (mark as used) /// Task RevokeAdminKeyAsync(int keyId); /// /// Get the database file for download /// Task<(byte[] content, string contentType, string fileName)> DownloadDatabaseAsync(); /// /// Restore the database from a file /// Task RestoreDatabaseAsync(Stream dbStream); /// /// Delete an admin key physically /// Task DeleteAdminKeyAsync(int keyId); /// /// Update an admin key's details /// Task UpdateAdminKeyAsync(AdminUpdateKeyDTO updateDto); } }