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 );