-- Read-only deployment prerequisite check for stages 001-042.
-- Select the configured database before running this file.
SELECT expected.stage,expected.requirement,
       IF(t.TABLE_NAME IS NULL,'MISSING','OK') AS status
FROM (
 SELECT '001-002' stage,'users' requirement UNION ALL
 SELECT '001-002','provinces' UNION ALL SELECT '001-002','units' UNION ALL SELECT '001-002','unit_types' UNION ALL
 SELECT '003','auth_rate_limits' UNION ALL SELECT '004','user_memberships' UNION ALL
 SELECT '005','province_settings' UNION ALL SELECT '006','unit_domains_or_slugs' UNION ALL
 SELECT '007','province_admin_invites' UNION ALL SELECT '008','unit_display_links' UNION ALL
 SELECT '009','meetings' UNION ALL SELECT '010','event_programmes' UNION ALL
 SELECT '011','public_event_slug_redirects' UNION ALL SELECT '012','guest_directory_rate_limits' UNION ALL
 SELECT '013','province_admin_invites' UNION ALL SELECT '014','province_events' UNION ALL
 SELECT '015','provinces' UNION ALL SELECT '016','province_settings' UNION ALL
 SELECT '017','tenant_documents' UNION ALL SELECT '018','unit_role_invitations' UNION ALL
 SELECT '019','outbound_mail_queue' UNION ALL SELECT '020','scheduled_job_state' UNION ALL
 SELECT '021','activity_log' UNION ALL SELECT '022','account_mfa' UNION ALL
 SELECT '023','permission_sets' UNION ALL SELECT '024','people' UNION ALL
 SELECT '025','people_import_batches' UNION ALL SELECT '026','data_governance_cases' UNION ALL
 SELECT '027','action_centre_tasks' UNION ALL SELECT '028','calendar_planning_entries' UNION ALL
 SELECT '029','dc_event_programmes' UNION ALL SELECT '030','document_folders' UNION ALL
 SELECT '031','asset_register' UNION ALL SELECT '032','meeting_agendas' UNION ALL
 SELECT '033','postal_dispatches' UNION ALL SELECT '034','unit_returns' UNION ALL
 SELECT '035','programme_menu_versions' UNION ALL SELECT '036','programme_table_plans' UNION ALL
 SELECT '037','event_day_packs' UNION ALL SELECT '038','finance_ledger_entries' UNION ALL
 SELECT '039','subscription_periods' UNION ALL SELECT '040','invoice_issuer_settings' UNION ALL
 SELECT '041','welfare_cases' UNION ALL SELECT '042','report_catalogue'
) expected
LEFT JOIN information_schema.TABLES t
  ON t.TABLE_SCHEMA=DATABASE() AND t.TABLE_NAME=expected.requirement
ORDER BY CAST(SUBSTRING_INDEX(expected.stage,'-',1) AS UNSIGNED), expected.requirement;

SELECT version,name,applied_at
FROM migration_history
ORDER BY version;

SELECT 'migration_count' AS check_name,COUNT(*) AS actual,42 AS expected,
       IF(COUNT(*)=42,'OK','REVIEW') AS status
FROM migration_history;
