-- Persist the evidence needed to reconcile an order draft with e-conomic. BEGIN; ALTER TABLE ordre_drafts ADD COLUMN IF NOT EXISTS economic_export_id VARCHAR(120), ADD COLUMN IF NOT EXISTS economic_order_url TEXT, ADD COLUMN IF NOT EXISTS exported_economic_customer_number VARCHAR(80), ADD COLUMN IF NOT EXISTS exported_currency VARCHAR(3), ADD COLUMN IF NOT EXISTS exported_layout_number INTEGER, ADD COLUMN IF NOT EXISTS exported_net_amount NUMERIC(18,2), ADD COLUMN IF NOT EXISTS export_request_json JSONB, ADD COLUMN IF NOT EXISTS export_response_json JSONB, ADD COLUMN IF NOT EXISTS exported_created_products JSONB NOT NULL DEFAULT '[]'::jsonb, ADD COLUMN IF NOT EXISTS last_export_error TEXT, ADD COLUMN IF NOT EXISTS exported_by_user_id INTEGER REFERENCES users(user_id) ON DELETE SET NULL; ALTER TABLE ordre_drafts DROP CONSTRAINT IF EXISTS ordre_drafts_sync_status_check; ALTER TABLE ordre_drafts ADD CONSTRAINT ordre_drafts_sync_status_check CHECK (sync_status IN ('pending', 'uncertain', 'exported', 'failed', 'posted', 'paid')); UPDATE ordre_drafts SET sync_status = 'uncertain', last_export_error = COALESCE(last_export_error, 'Tidligere eksport: eksport markeret gennemført uden gemt e-conomic-ordrenummer; afstem manuelt før ny eksport') WHERE sync_status IN ('exported', 'posted', 'paid') AND economic_order_number IS NULL; UPDATE ordre_drafts SET title = 'Abonnementer' WHERE invoice_aggregate_key LIKE 'also-cloud-%' AND title LIKE 'ALSO Cloud %'; COMMIT;