namespace Extrudex.Domain.Interfaces;
///
/// Service interface for syncing filament usage data from printers
/// into the Extrudex database. Handles querying Moonraker printers,
/// computing derived usage metrics, and persisting updates to spools
/// and print job records.
///
public interface IFilamentUsageSyncService
{
///
/// Performs a single sync cycle: queries all active Moonraker printers,
/// fetches their current filament usage data, and persists updates to
/// the database.
///
/// Cancellation token for graceful shutdown.
/// The number of printers successfully synced.
Task SyncAllAsync(CancellationToken cancellationToken = default);
}