-- 0028_completion_mail_sent.sql
--
-- Markierung, ob für eine ausgelieferte (abgeschlossene) Lieferung die
-- Liefer-/Belegmail bereits versendet wurde. Der externe Mailclient pollt die
-- noch NICHT versendeten Belege (GET /admin/delivered-belegnummern liefert nur
-- `mail_sent_at IS NULL`), stößt ERPframe an (das die Mails verschickt) und
-- markiert sie anschließend über POST /admin/mark-mail-sent als versendet.
--
-- NULL  = noch nicht versendet (offen).
-- Wert  = Zeitstempel, wann markiert wurde (Audit + server-seitiges Dedup,
--         damit derselbe Beleg nicht alle 5 Minuten erneut eine Mail auslöst).

ALTER TABLE delivery_completions
    ADD COLUMN mail_sent_at TIMESTAMPTZ;

-- Partieller Index: der Mailclient fragt praktisch immer nur die offenen
-- (mail_sent_at IS NULL) Belege ab.
CREATE INDEX delivery_completions_mail_unsent
    ON delivery_completions (completed_at)
    WHERE mail_sent_at IS NULL;
