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