namespace Extrudex.Domain.DTOs.Moonraker;

/// <summary>
/// Response DTO for the Moonraker /printer/info endpoint.
/// Contains the current operational state of the Klipper printer.
/// Used to determine whether the printer is idle, printing, paused, or in error.
/// </summary>
public class MoonrakerPrinterInfo
{
    /// <summary>
    /// Current Klipper state: "ready", "startup", "shutdown", "error", "cancelled".
    /// A "ready" state means the printer is connected and idle.
    /// </summary>
    public string State { get; set; } = string.Empty;

    /// <summary>
    /// Detailed state message from Klipper. May contain error details
    /// when the state is "error" or "shutdown".
    /// </summary>
    public string StateMessage { get; set; } = string.Empty;

    /// <summary>
    /// Whether the Klipper firmware is currently connected and responsive.
    /// </summary>
    public bool KlippyReady { get; set; }
}