<?php

namespace App\Support\Readiness;

/**
 * Ein Befund der Bereitschaftsprüfung.
 *
 * `breaks` ist das Feld, an dem diese Seite hängt. Eine Liste von Feldnamen ist
 * keine Auskunft — sie sagt, was fehlt, nicht was daraus folgt. Am 2026-07-30
 * war jedes fehlende Stück in der Konsole unsichtbar, und mehrere brachen die
 * Kette erst NACH der Zahlung. Genau das gehört hier hinein.
 */
final class Check
{
    public const SEVERITY_BLOCKING = 'blocking';

    public const SEVERITY_WARNING = 'warning';

    public function __construct(
        public string $key,
        public string $group,
        public string $severity,
        public string $label,
        public string $breaks,
        public string $tab,
        public bool $satisfied,
    ) {}

    public function isBlocking(): bool
    {
        return $this->severity === self::SEVERITY_BLOCKING && ! $this->satisfied;
    }
}
