using CredentialManager.Models;
namespace CredentialManager.Services;
///
/// Servizio per la gestione delle schedulazioni dei profili
///
public interface IProfileScheduleService
{
Task> GetAllSchedulesAsync();
Task GetScheduleByIdAsync(int id);
Task CreateScheduleAsync(ProfileSchedule schedule);
Task UpdateScheduleAsync(ProfileSchedule schedule);
Task DeleteScheduleAsync(int id);
Task> GetActiveSchedulesAsync();
Task> GetPendingExecutionsAsync();
Task UpdateExecutionStatusAsync(int scheduleId, string status, string? message = null, int? recordCount = null);
Task UpdateNextExecutionTimeAsync(int scheduleId);
Task> GetAvailableProfilesAsync();
// Metodi per lo storico delle esecuzioni
Task CreateExecutionHistoryAsync(ScheduleExecutionHistory history);
Task UpdateExecutionHistoryAsync(ScheduleExecutionHistory history);
Task> GetExecutionHistoryAsync(int scheduleId, int? limit = null);
Task> GetRecentExecutionsAsync(int limit = 50);
Task GetExecutionByIdAsync(int executionId);
}