sojorn/migrations/tests/final_system_test.sql
Patrick Britton 0bb1dd4055 feat: organize SQL scripts into structured migration folders
- Create organized migration folder structure:
  - database/ - Core schema changes and migrations
  - tests/ - Test scripts and verification queries
  - directus/ - Directus CMS configuration scripts
  - fixes/ - Database fixes and patches
  - archive/ - Historical and deprecated scripts

- Move 60+ SQL files from root to appropriate folders
- Add comprehensive README with usage guidelines
- Consolidate old migrations_archive into new archive folder
- Maintain clear separation of concerns for different script types

Benefits:
- Cleaner project root directory
- Easier to find specific types of SQL scripts
- Better organization for maintenance and development
- Clear documentation for migration procedures
- Proper separation of production vs development scripts
2026-02-05 09:13:47 -06:00

85 lines
2.6 KiB
SQL

-- Final comprehensive test of the AI moderation system
SELECT '=== AI MODERATION SYSTEM FINAL TEST ===' as test_header;
-- 1. Check database tables are ready
SELECT '1. Database Tables Status:' as section;
SELECT table_name, table_type
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name IN ('moderation_flags', 'user_status_history', 'users')
ORDER BY table_name;
-- 2. Check Directus collections
SELECT '2. Directus Collections Status:' as section;
SELECT collection, icon, note
FROM directus_collections
WHERE collection IN ('moderation_flags', 'user_status_history');
-- 3. Check existing moderation flags
SELECT '3. Current Moderation Flags:' as section;
SELECT
COUNT(*) as total_flags,
COUNT(CASE WHEN status = 'pending' THEN 1 END) as pending,
COUNT(CASE WHEN status = 'approved' THEN 1 END) as approved,
COUNT(CASE WHEN status = 'rejected' THEN 1 END) as rejected
FROM moderation_flags;
-- 4. Check recent moderation activity
SELECT '4. Recent Moderation Activity:' as section;
SELECT
flag_reason,
status,
JSON_EXTRACT(scores, '$.hate') as hate_score,
JSON_EXTRACT(scores, '$.greed') as greed_score,
JSON_EXTRACT(scores, '$.delusion') as delusion_score,
created_at
FROM moderation_flags
ORDER BY created_at DESC
LIMIT 3;
-- 5. Test inserting a new moderation flag (simulating AI analysis)
SELECT '5. Testing New Flag Insertion:' as section;
INSERT INTO moderation_flags (
post_id,
flag_reason,
scores,
status
) VALUES (
gen_random_uuid(),
'hate',
'{"hate": 0.9, "greed": 0.1, "delusion": 0.2}',
'pending'
);
-- 6. Verify the flag was inserted with correct Three Poisons scoring
SELECT '6. Verification - Latest Flag:' as section;
SELECT
flag_reason,
status,
scores,
created_at
FROM moderation_flags
ORDER BY created_at DESC
LIMIT 1;
-- 7. Check user status functionality
SELECT '7. User Status Management:' as section;
SELECT
COUNT(*) as total_users,
COUNT(CASE WHEN status = 'active' THEN 1 END) as active_users,
COUNT(CASE WHEN status = 'suspended' THEN 1 END) as suspended_users,
COUNT(CASE WHEN status = 'banned' THEN 1 END) as banned_users
FROM users;
-- 8. Final system status
SELECT '8. SYSTEM STATUS SUMMARY:' as section;
SELECT
'✅ Database tables created' as database_status,
'✅ Directus collections registered' as directus_status,
'✅ Moderation flags working' as moderation_status,
'✅ Three Poisons scoring active' as scoring_status,
'✅ User status management ready' as user_status,
'🎉 AI MODERATION SYSTEM FULLY OPERATIONAL' as final_status;