namespace Extrudex.Domain.DTOs.Moonraker;

/// <summary>
/// Response DTO for Moonraker /printer/objects/query?print_stats endpoint.
/// Contains real-time print statistics including current job state,
    /// filament consumed, and file being printed.
/// </summary>
public class MoonrakerPrintStats
{
    /// <summary>
    /// Current print state: "standby", "printing", "paused", "complete", "error", "cancelled".
    /// </summary>
    public string State { get; set; } = string.Empty;

    /// <summary>
    /// Total filament used in millimeters for the current print session.
    /// </summary>
    public decimal FilamentUsedMm { get; set; }

    /// <summary>
    /// Total print duration in seconds for the current print session.
    /// </summary>
    public decimal PrintDurationSeconds { get; set; }

    /// <summary>
    /// Filename of the G-code file currently being printed.
    /// Null if no print is active.
    /// </summary>
    public string? Filename { get; set; }

    /// <summary>
    /// Detailed message from Klipper about the current print state.
    /// May contain error details when state is "error".
    /// </summary>
    public string? Message { get; set; }
}