-- Notizen pro Lieferung. Eine Notiz ist entweder Text, ein Bild-Anhang
-- (Object-Storage-Key/URL) oder beides — aber nicht NULL/NULL.
--
-- Akteur: actor_personalnummer ist Pflicht (aus JWT). Das fachlich
-- gewünschte author_car_id bleibt optional, bis das Backend Fahrzeuge
-- selbst verwaltet.

CREATE TABLE delivery_notes (
    id                    UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    delivery_id           UUID NOT NULL REFERENCES deliveries(id) ON DELETE CASCADE,
    text                  TEXT,
    image_attachment      TEXT,
    author_personalnummer BIGINT NOT NULL,
    author_car_id         UUID,
    created_at            TIMESTAMPTZ NOT NULL DEFAULT now(),

    CHECK (text IS NOT NULL OR image_attachment IS NOT NULL)
);

CREATE INDEX delivery_notes_delivery
    ON delivery_notes (delivery_id, created_at);
