-- Migration: 2026_04_01_add_order_batch_to_material_order
-- Dodaje obsługę zamówień podzielonych (split) do tabeli material_order.
--
-- order_batch_key — UUID wspólny dla obu zamówień powstałych ze split.
--   NULL oznacza zamówienie jednotransowe (bez podziału).
--   Generowany po stronie klienta (panel JS) jednorazowo przed złożeniem.
--
-- batch_index — numer dostawy w grupie (1 lub 2).
--   NULL gdy order_batch_key IS NULL.
--
-- Uwaga: minimalna wartość zamówienia, progi franco i koszty dostawy
--   będą powiązane z tabelą material_supplier w kolejnej iteracji
--   (aplikacja `supplier`). W chwili obecnej nie są egzekwowane na poziomie DB.

ALTER TABLE material_order
    ADD COLUMN order_batch_key VARCHAR(36)  NULL DEFAULT NULL
        COMMENT 'UUID łączący zamówienia z jednego split; NULL = zamówienie jednotransowe'
        AFTER order_key,
    ADD COLUMN batch_index     TINYINT(1)   NULL DEFAULT NULL
        COMMENT 'Numer dostawy w grupie split: 1 lub 2; NULL gdy order_batch_key IS NULL'
        AFTER order_batch_key;

-- Indeks umożliwiający szybkie wyszukiwanie wszystkich zamówień należących do jednej grupy
CREATE INDEX idx_material_order_batch_key ON material_order (order_batch_key);

