using Extrudex.Domain.DTOs.Moonraker;
namespace Extrudex.Domain.Interfaces;
///
/// Service interface for syncing Moonraker printer data into the Extrudex database.
/// Handles periodic polling of printer status and mapping print job history
/// to PrintJob and FilamentUsage entities.
///
public interface IMoonrakerPrinterSyncService
{
///
/// Performs a single sync cycle: queries all active Moonraker printers,
/// fetches their current status and print job history, and persists
/// updates to the database.
///
/// Cancellation token for graceful shutdown.
/// The number of printers successfully synced.
Task SyncAllAsync(CancellationToken cancellationToken = default);
}