feat(CUB-8): Create background service for Moonraker mapping
All checks were successful
Dev Build / build-test (pull_request) Successful in 2m7s
Dev Build / deploy-dev (pull_request) Has been skipped
Dev Build / notify-success (pull_request) Has been skipped
Dev Build / notify-failure (pull_request) Has been skipped

This commit is contained in:
2026-04-27 20:40:23 -04:00
parent 90a89eecf3
commit 8b2a29881d
6 changed files with 473 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using Extrudex.Domain.DTOs.Moonraker;
namespace Extrudex.Domain.Interfaces;
/// <summary>
/// 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.
/// </summary>
public interface IMoonrakerPrinterSyncService
{
/// <summary>
/// Performs a single sync cycle: queries all active Moonraker printers,
/// fetches their current status and print job history, and persists
/// updates to the database.
/// </summary>
/// <param name="cancellationToken">Cancellation token for graceful shutdown.</param>
/// <returns>The number of printers successfully synced.</returns>
Task<int> SyncAllAsync(CancellationToken cancellationToken = default);
}