-- Archive old JSONB versions table before dropping
-- This preserves historical data while allowing us to move forward

CREATE TABLE IF NOT EXISTS public.entity_versions_archive (
  LIKE public.entity_versions INCLUDING ALL
);

-- Copy all old versions to archive
INSERT INTO public.entity_versions_archive
SELECT * FROM public.entity_versions
ON CONFLICT DO NOTHING;

-- Verify counts match
DO $$
DECLARE
  original_count INTEGER;
  archive_count INTEGER;
BEGIN
  SELECT COUNT(*) INTO original_count FROM public.entity_versions;
  SELECT COUNT(*) INTO archive_count FROM public.entity_versions_archive;
  
  IF original_count != archive_count THEN
    RAISE EXCEPTION 'Archive verification failed: original=%, archive=%', original_count, archive_count;
  END IF;
  
  RAISE NOTICE 'Successfully archived % versions to entity_versions_archive', archive_count;
END $$;