- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
74 lines
2.8 KiB
SQL
Executable File
74 lines
2.8 KiB
SQL
Executable File
-- ============================================================================
|
|
-- VALIDACIÓN RÁPIDA - Recreación de Base de Datos GAMILIT
|
|
-- Fecha: 2025-11-24
|
|
-- Uso: psql "DATABASE_URL" -f VALIDACION-RAPIDA-RECREACION-2025-11-24.sql
|
|
-- ============================================================================
|
|
|
|
\echo '=========================================================================='
|
|
\echo 'VALIDACIÓN RÁPIDA - RECREACIÓN DE BASE DE DATOS'
|
|
\echo '=========================================================================='
|
|
\echo ''
|
|
|
|
-- 1. Total de usuarios (debe ser 16)
|
|
\echo '✅ CRITERIO 1: Total de usuarios (esperado: 16)'
|
|
SELECT COUNT(*) as total_usuarios FROM auth_management.profiles;
|
|
|
|
-- 2. Misiones por usuario (debe ser 8 para todos)
|
|
\echo ''
|
|
\echo '✅ CRITERIO 2: Misiones por usuario (esperado: 8 para cada uno)'
|
|
SELECT
|
|
p.email,
|
|
COUNT(m.id) as misiones
|
|
FROM auth_management.profiles p
|
|
LEFT JOIN gamification_system.missions m ON m.user_id = p.id
|
|
GROUP BY p.email
|
|
ORDER BY misiones DESC, p.email;
|
|
|
|
-- 3. Distribución de misiones (debe ser 48 daily + 80 weekly)
|
|
\echo ''
|
|
\echo '✅ CRITERIO 3: Distribución de misiones (esperado: 48 daily, 80 weekly)'
|
|
SELECT
|
|
mission_type,
|
|
COUNT(*) as total,
|
|
COUNT(DISTINCT user_id) as usuarios
|
|
FROM gamification_system.missions
|
|
GROUP BY mission_type;
|
|
|
|
-- 4. Inicialización completa (debe ser 16 en todas)
|
|
\echo ''
|
|
\echo '✅ CRITERIO 4: Inicialización de gamificación (esperado: 16 en todas)'
|
|
SELECT
|
|
(SELECT COUNT(*) FROM auth_management.profiles) as profiles,
|
|
(SELECT COUNT(*) FROM gamification_system.user_stats) as user_stats,
|
|
(SELECT COUNT(*) FROM gamification_system.user_ranks) as user_ranks,
|
|
(SELECT COUNT(*) FROM gamification_system.comodines_inventory) as comodines;
|
|
|
|
-- 5. Sin duplicados (debe ser 0)
|
|
\echo ''
|
|
\echo '✅ CRITERIO 5: Sin duplicados (esperado: 0)'
|
|
SELECT user_id, template_id, COUNT(*) as duplicados
|
|
FROM gamification_system.missions
|
|
GROUP BY user_id, template_id
|
|
HAVING COUNT(*) > 1;
|
|
|
|
-- 6. Valores iniciales correctos
|
|
\echo ''
|
|
\echo '✅ CRITERIO 6: Valores iniciales de user_stats'
|
|
SELECT
|
|
COUNT(*) FILTER (WHERE level = 1) as users_level_1,
|
|
COUNT(*) FILTER (WHERE total_xp = 0) as users_xp_0,
|
|
COUNT(*) FILTER (WHERE ml_coins = 100) as users_coins_100,
|
|
COUNT(*) FILTER (WHERE current_rank = 'Ajaw') as users_rank_ajaw
|
|
FROM gamification_system.user_stats;
|
|
|
|
\echo ''
|
|
\echo '=========================================================================='
|
|
\echo 'VALIDACIÓN COMPLETADA'
|
|
\echo '=========================================================================='
|
|
\echo ''
|
|
\echo 'Si todos los valores coinciden con los esperados:'
|
|
\echo ' ✅ Base de datos recreada correctamente'
|
|
\echo ' ✅ Inicialización automática funcionando'
|
|
\echo ' ✅ Sistema operativo'
|
|
\echo ''
|