18 lines
677 B
SQL
18 lines
677 B
SQL
ALTER TABLE piece_usages ADD COLUMN preparation_status_snapshot TEXT NOT NULL DEFAULT 'ready'
|
|
CHECK (preparation_status_snapshot IN ('preparing', 'ready'));
|
|
|
|
ALTER TABLE piece_usages ADD COLUMN preparation_effort_snapshot TEXT
|
|
CHECK (preparation_effort_snapshot IS NULL OR preparation_effort_snapshot IN ('low', 'medium', 'high'));
|
|
|
|
UPDATE piece_usages
|
|
SET preparation_status_snapshot = CASE
|
|
WHEN EXISTS (
|
|
SELECT 1 FROM pieces p
|
|
WHERE p.id = piece_usages.original_piece_id AND p.status = 'preparing'
|
|
) THEN 'preparing'
|
|
ELSE 'ready'
|
|
END,
|
|
preparation_effort_snapshot = (
|
|
SELECT p.preparation_effort FROM pieces p WHERE p.id = piece_usages.original_piece_id
|
|
);
|