Files
orderPRO/database/migrations/20260427_000103_create_delivery_statuses_table.sql
Jacek Pyziak 0063402897 feat(108): delivery status management
Phase 108 complete (v3.2 milestone):

Plan 108-01 — Delivery Status DB & CRUD:
- Tabela delivery_statuses z seedem 11 statusow systemowych
- DeliveryStatusRepository (CRUD + per-request static cache)
- DeliveryStatus::setRepository() — DB fallback dla static final class
- Panel /settings/delivery-statuses (zakladki Statusy + Mapowanie)
- Sidebar przebudowany: Statusy zamowien + Statusy przesylek

Plan 108-02 — Automation Dropdowns z DB + UI Refactor:
- Dropdowny automatyzacji ladowane z DB (warunek shipment_status + akcja update_shipment_status)
- Walidacja przez DeliveryStatus::getAllStatuses()
- Osobna podstrona formularza CRUD (delivery-status-form.php)
- Lista uproszczona: rename Terminal -> Koncowy, usunieta kolumna Typ
- BREAKING: drop backward compat dla starych grupowych kluczy automatyzacji
- Bug fix: path params w DeliveryStatusesController via \$request->input('id')

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 22:10:24 +02:00

26 lines
1.5 KiB
SQL

CREATE TABLE IF NOT EXISTS `delivery_statuses` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`key` VARCHAR(50) NOT NULL,
`label_pl` VARCHAR(100) NOT NULL,
`color` VARCHAR(7) NOT NULL DEFAULT '#6c757d',
`sort_order` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`is_terminal` TINYINT(1) NOT NULL DEFAULT 0,
`is_system` TINYINT(1) NOT NULL DEFAULT 0,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `delivery_statuses_key_unique` (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `delivery_statuses` (`key`, `label_pl`, `color`, `sort_order`, `is_terminal`, `is_system`) VALUES
('unknown', 'Nieznany', '#f5f5f5', 0, 0, 0),
('created', 'Utworzona', '#e3f2fd', 1, 0, 0),
('confirmed', 'Potwierdzona', '#bbdefb', 2, 0, 0),
('picked_up', 'Odebrana przez kuriera', '#e1f5fe', 3, 0, 0),
('in_transit', 'W tranzycie', '#fff3e0', 4, 0, 0),
('out_for_delivery', 'W doręczeniu', '#ffe0b2', 5, 0, 0),
('ready_for_pickup', 'Gotowa do odbioru', '#f3e5f5', 6, 0, 0),
('delivered', 'Doręczona', '#e8f5e9', 7, 1, 1),
('returned', 'Zwrócona', '#ffebee', 8, 1, 1),
('cancelled', 'Anulowana', '#e0e0e0', 9, 1, 1),
('problem', 'Problem', '#fff8e1', 10, 0, 0);