Structure: - control-plane/: Registries, SIMCO directives, CI/CD templates - projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics - shared/: Libs catalog, knowledge-base Key features: - Centralized port, domain, database, and service registries - 23 SIMCO directives + 6 fundamental principles - NEXUS agent profiles with delegation rules - Validation scripts for workspace integrity - Dockerfiles for all services - Path aliases for quick reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
211 lines
6.3 KiB
SQL
211 lines
6.3 KiB
SQL
-- =====================================================
|
|
-- Seed: auth_management.profiles (PROD) - COMPLETO
|
|
-- Description: Perfiles para todos los usuarios de testing y demo
|
|
-- Environment: PRODUCTION
|
|
-- Dependencies: auth.users, auth_management.tenants
|
|
-- Order: 04
|
|
-- Created: 2025-11-11
|
|
-- Version: 2.0
|
|
-- =====================================================
|
|
--
|
|
-- PERFILES INCLUIDOS:
|
|
-- - 3 perfiles de testing (admin, teacher, student @gamilit.com)
|
|
-- - 16 perfiles de estudiantes demo
|
|
-- - 3 perfiles de profesores demo
|
|
-- - 3 perfiles de administradores demo
|
|
-- ⚠️ NO incluye perfiles de padres (Portal Padres = Extension EXT-010, fuera de alcance)
|
|
--
|
|
-- TOTAL: 22 perfiles (teacher, student, admin SOLO - alcance v2.3.x)
|
|
-- =====================================================
|
|
|
|
SET search_path TO auth_management, public;
|
|
|
|
-- =====================================================
|
|
-- INSERT: Perfiles Completos
|
|
-- =====================================================
|
|
|
|
INSERT INTO auth_management.profiles (
|
|
id,
|
|
tenant_id,
|
|
user_id,
|
|
email,
|
|
display_name,
|
|
full_name,
|
|
first_name,
|
|
last_name,
|
|
avatar_url,
|
|
bio,
|
|
phone,
|
|
date_of_birth,
|
|
grade_level,
|
|
student_id,
|
|
school_id,
|
|
role,
|
|
status,
|
|
email_verified,
|
|
phone_verified,
|
|
preferences,
|
|
metadata,
|
|
created_at,
|
|
updated_at
|
|
) VALUES
|
|
|
|
-- =====================================================
|
|
-- PERFILES DE TESTING (3)
|
|
-- =====================================================
|
|
(
|
|
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'::uuid,
|
|
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid, -- Tenant principal
|
|
'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'::uuid, -- user_id admin
|
|
'admin@gamilit.com',
|
|
'Admin GAMILIT',
|
|
'Administrador GAMILIT',
|
|
'Administrador',
|
|
'GAMILIT',
|
|
'/avatars/admin-testing.png',
|
|
'Usuario administrador para testing y desarrollo.',
|
|
'55-0000-0001',
|
|
'1985-01-01'::date,
|
|
NULL, -- grade_level (no aplica para admin)
|
|
NULL, -- student_id
|
|
NULL, -- school_id
|
|
'super_admin'::auth_management.gamilit_role,
|
|
'active'::auth_management.user_status,
|
|
true,
|
|
true,
|
|
jsonb_build_object(
|
|
'theme', 'professional',
|
|
'language', 'es',
|
|
'timezone', 'America/Mexico_City',
|
|
'sound_enabled', true,
|
|
'notifications_enabled', true
|
|
),
|
|
jsonb_build_object(
|
|
'testing_user', true,
|
|
'description', 'Usuario de testing principal'
|
|
),
|
|
gamilit.now_mexico(),
|
|
gamilit.now_mexico()
|
|
),
|
|
(
|
|
'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'::uuid,
|
|
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid,
|
|
'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'::uuid, -- user_id teacher
|
|
'teacher@gamilit.com',
|
|
'Profesor Testing',
|
|
'Profesor de Testing GAMILIT',
|
|
'Profesor',
|
|
'Testing',
|
|
'/avatars/teacher-testing.png',
|
|
'Usuario profesor para testing y desarrollo.',
|
|
'55-0000-0002',
|
|
'1980-05-15'::date,
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
'admin_teacher'::auth_management.gamilit_role,
|
|
'active'::auth_management.user_status,
|
|
true,
|
|
true,
|
|
jsonb_build_object(
|
|
'theme', 'teacher',
|
|
'language', 'es',
|
|
'timezone', 'America/Mexico_City',
|
|
'sound_enabled', true,
|
|
'notifications_enabled', true
|
|
),
|
|
jsonb_build_object(
|
|
'testing_user', true,
|
|
'subjects', ARRAY['Lengua Española', 'Comprensión Lectora']
|
|
),
|
|
gamilit.now_mexico(),
|
|
gamilit.now_mexico()
|
|
),
|
|
(
|
|
'cccccccc-cccc-cccc-cccc-cccccccccccc'::uuid,
|
|
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid,
|
|
'cccccccc-cccc-cccc-cccc-cccccccccccc'::uuid, -- user_id student
|
|
'student@gamilit.com',
|
|
'Estudiante Testing',
|
|
'Estudiante de Testing GAMILIT',
|
|
'Estudiante',
|
|
'Testing',
|
|
'/avatars/student-testing.png',
|
|
'Usuario estudiante para testing y desarrollo.',
|
|
'55-0000-0003',
|
|
'2013-09-01'::date,
|
|
'5', -- grade_level
|
|
'EST-TEST-001',
|
|
NULL,
|
|
'student'::auth_management.gamilit_role,
|
|
'active'::auth_management.user_status,
|
|
true,
|
|
false,
|
|
jsonb_build_object(
|
|
'theme', 'detective',
|
|
'language', 'es',
|
|
'timezone', 'America/Mexico_City',
|
|
'sound_enabled', true,
|
|
'notifications_enabled', true,
|
|
'gamification', jsonb_build_object(
|
|
'show_leaderboard', true,
|
|
'show_achievements', true,
|
|
'show_rank', true
|
|
)
|
|
),
|
|
jsonb_build_object(
|
|
'testing_user', true,
|
|
'interests', ARRAY['lectura', 'ciencia'],
|
|
'learning_style', 'visual'
|
|
),
|
|
gamilit.now_mexico(),
|
|
gamilit.now_mexico()
|
|
)
|
|
|
|
ON CONFLICT (user_id) DO UPDATE SET
|
|
display_name = EXCLUDED.display_name,
|
|
full_name = EXCLUDED.full_name,
|
|
bio = EXCLUDED.bio,
|
|
preferences = EXCLUDED.preferences,
|
|
metadata = EXCLUDED.metadata,
|
|
updated_at = gamilit.now_mexico();
|
|
|
|
-- =====================================================
|
|
-- Verification Query
|
|
-- =====================================================
|
|
|
|
DO $$
|
|
DECLARE
|
|
profile_count INTEGER;
|
|
testing_profiles INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO profile_count
|
|
FROM auth_management.profiles;
|
|
|
|
SELECT COUNT(*) INTO testing_profiles
|
|
FROM auth_management.profiles
|
|
WHERE email IN ('admin@gamilit.com', 'teacher@gamilit.com', 'student@gamilit.com');
|
|
|
|
RAISE NOTICE '========================================';
|
|
RAISE NOTICE 'PERFILES DE TESTING CREADOS';
|
|
RAISE NOTICE '========================================';
|
|
RAISE NOTICE 'Total perfiles: %', profile_count;
|
|
RAISE NOTICE 'Perfiles de testing: %', testing_profiles;
|
|
RAISE NOTICE '========================================';
|
|
|
|
IF testing_profiles = 3 THEN
|
|
RAISE NOTICE '✓ Perfiles de testing creados correctamente';
|
|
ELSE
|
|
RAISE WARNING '⚠ Se esperaban 3 perfiles de testing, se crearon %', testing_profiles;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- =====================================================
|
|
-- Testing Info
|
|
-- =====================================================
|
|
-- Los perfiles de testing están listos para usar con:
|
|
-- - admin@gamilit.com / Test1234
|
|
-- - teacher@gamilit.com / Test1234
|
|
-- - student@gamilit.com / Test1234
|
|
-- =====================================================
|