BEGIN;

-- Phase 4 des Self-Service-ISO-Plans: Bautracking fuer personalisierte
-- Kunden-ISOs (siehe tuxflotte-installer/scripts/build_customer_iso.sh).
-- Der Bau selbst laeuft als Hintergrund-Thread im provisioning-server
-- (siehe run_iso_build() in app.py) - diese Tabelle ist der Status-
-- Speicher dafuer, den der Trigger-/Status-/Download-Endpoint gemeinsam
-- nutzen. WLAN-Zugangsdaten werden bewusst NICHT hier gespeichert (nur
-- transient waehrend des Baus verwendet, siehe app.py) - persistente,
-- verschluesselte Ablage ist Sache der Kundenplattform (Phase 5).
CREATE TABLE iso_builds (
    id UUID PRIMARY KEY,
    organization_id UUID NOT NULL
        REFERENCES organizations(id)
        ON DELETE CASCADE,
    status TEXT NOT NULL DEFAULT 'pending'
        CHECK (status IN ('pending', 'running', 'completed', 'failed')),
    output_filename TEXT,
    error_message TEXT,
    created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
    started_at TIMESTAMPTZ,
    finished_at TIMESTAMPTZ
);

CREATE INDEX iso_builds_organization_id_idx ON iso_builds (organization_id);

COMMIT;
