workspace/projects/gamilit/docs/database/TABLAS-NUEVAS-2025-12.md
rckrdmrd 00c09054e8 docs: Auditoria documentacion vs desarrollo - Correcciones P0 completas
Analisis exhaustivo comparando documentacion con codigo real.

## Documentacion actualizada:
- FEATURES-IMPLEMENTADAS.md: Metricas reales (76 controllers, 103 services, 497 componentes)
- docs/README.md: Estadisticas actualizadas
- API.md: Secciones Teacher Portal API y Social Features

## Documentacion nueva:
- API-TEACHER-MODULE.md: 50+ endpoints del modulo Teacher
- docs/frontend/student/README.md: 24 paginas documentadas
- TABLAS-NUEVAS-2025-12.md: 6 tablas nuevas (parent_*, user_purchases, teacher_interventions)

## Limpieza de codigo:
- Eliminados archivos huerfanos en student/pages/admin/ (no importados)

## Hallazgos:
- Patron Component/Page en Teacher es arquitectura intencional (no duplicados)
- admin/pages/ tiene versiones completas y activas

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 08:03:56 -06:00

290 lines
8.8 KiB
Markdown

# TABLAS NUEVAS - DICIEMBRE 2025
**Proyecto:** GAMILIT - Plataforma Educativa Gamificada
**Fecha:** 2025-12-23
**Auditoria:** Comparacion inventario vs DDL
---
## RESUMEN
| Schema | Tablas Nuevas | Epic |
|--------|---------------|------|
| auth_management | 4 | EXT-010/EXT-011 |
| gamification_system | 1 | Shop System |
| progress_tracking | 1 | Teacher Portal |
| **TOTAL** | **6** | - |
> **Nota:** El analisis inicial identifico 9 tablas, pero la verificacion DDL encontro 6 tablas con archivos DDL completos.
---
## 1. SCHEMA: auth_management
### 1.1 parent_accounts
**Archivo DDL:** `ddl/schemas/auth_management/tables/14-parent_accounts.sql`
**Epic:** EXT-010 (Parent Notifications)
**Creado:** 2025-11-08
**Proposito:** Cuentas de padres/tutores con configuraciones especificas del portal.
**Columnas principales:**
| Columna | Tipo | Descripcion |
|---------|------|-------------|
| id | UUID | PK |
| profile_id | UUID | FK a profiles (1:1) |
| relationship_type | TEXT | mother, father, guardian, tutor, other |
| notification_frequency | TEXT | realtime, daily, weekly, monthly, on_demand |
| alert_on_low_performance | BOOLEAN | Alerta si bajo rendimiento |
| alert_on_inactivity_days | INTEGER | Dias para alerta de inactividad |
| alert_on_achievement_unlocked | BOOLEAN | Alerta en logros |
| alert_on_rank_promotion | BOOLEAN | Alerta en promocion |
| preferred_report_format | TEXT | email, in_app, both |
| can_view_detailed_progress | BOOLEAN | Permiso ver progreso detallado |
| is_verified | BOOLEAN | Verificado por escuela |
| dashboard_widgets | JSONB | Widgets del dashboard |
**Indices:**
- `idx_parent_accounts_profile`
- `idx_parent_accounts_active`
- `idx_parent_accounts_verified`
- `idx_parent_accounts_notification_freq`
- `idx_parent_accounts_widgets` (GIN)
**Trigger:** `trg_parent_accounts_updated_at`
---
### 1.2 parent_student_links
**Archivo DDL:** `ddl/schemas/auth_management/tables/15-parent_student_links.sql`
**Epic:** EXT-010 (Parent Notifications)
**Creado:** 2025-11-08
**Proposito:** Vinculacion N:M entre padres/tutores y estudiantes con permisos y verificacion.
**Columnas principales:**
| Columna | Tipo | Descripcion |
|---------|------|-------------|
| id | UUID | PK |
| parent_account_id | UUID | FK a parent_accounts |
| student_id | UUID | FK a profiles |
| relationship_type | TEXT | mother, father, guardian, etc. |
| can_view_progress | BOOLEAN | Permiso ver progreso |
| can_view_grades | BOOLEAN | Permiso ver calificaciones |
| can_receive_notifications | BOOLEAN | Recibir notificaciones |
| can_contact_teachers | BOOLEAN | Contactar maestros |
| link_status | TEXT | pending, active, suspended, revoked |
| is_verified | BOOLEAN | Verificado |
| verification_code | TEXT | Codigo para auto-link |
| student_approval_required | BOOLEAN | Requiere aprobacion estudiante |
**Constraint:** `unique_parent_student` (parent_account_id, student_id)
**Indices:**
- `idx_parent_student_links_parent`
- `idx_parent_student_links_student`
- `idx_parent_student_links_status`
- `idx_parent_student_links_active`
- `idx_parent_student_links_verification_code`
---
### 1.3 parent_notifications
**Archivo DDL:** `ddl/schemas/auth_management/tables/16-parent_notifications.sql`
**Epic:** EXT-010 (Parent Notifications)
**Creado:** 2025-11-08
**Proposito:** Notificaciones especificas para padres sobre progreso de hijos.
**Columnas principales:**
| Columna | Tipo | Descripcion |
|---------|------|-------------|
| id | UUID | PK |
| parent_account_id | UUID | FK a parent_accounts |
| student_id | UUID | FK a profiles |
| notification_type | TEXT | daily_summary, weekly_report, achievement_unlocked, etc. |
| title | TEXT | Titulo |
| message | TEXT | Mensaje |
| student_snapshot | JSONB | Snapshot del estado del estudiante |
| priority | TEXT | low, normal, high, urgent |
| sent_via_email | BOOLEAN | Enviado por email |
| sent_via_in_app | BOOLEAN | Enviado in-app |
| status | TEXT | pending, sent, read, archived |
| scheduled_for | TIMESTAMPTZ | Envio programado |
**Tipos de notificacion:**
- daily_summary
- weekly_report
- monthly_report
- low_performance
- inactivity_alert
- achievement_unlocked
- rank_promotion
- assignment_due
- assignment_submitted
- recommendation
- custom
**Indices:**
- `idx_parent_notifications_parent`
- `idx_parent_notifications_student`
- `idx_parent_notifications_type`
- `idx_parent_notifications_status`
- `idx_parent_notifications_unread`
- `idx_parent_notifications_scheduled`
---
## 2. SCHEMA: gamification_system
### 2.1 user_purchases
**Archivo DDL:** `ddl/schemas/gamification_system/tables/19-user_purchases.sql`
**Version:** 1.0 (2025-11-29)
**Proposito:** Historial de compras de usuarios en la tienda virtual.
**Columnas principales:**
| Columna | Tipo | Descripcion |
|---------|------|-------------|
| id | UUID | PK |
| user_id | UUID | FK a profiles |
| item_id | UUID | FK a shop_items |
| tenant_id | UUID | FK a tenants |
| quantity | INTEGER | Cantidad (default 1) |
| price_paid | INTEGER | Precio en ML Coins |
| discount_applied | INTEGER | Descuento aplicado |
| transaction_id | UUID | FK a ml_coins_transactions |
| status | TEXT | pending, completed, refunded, expired |
| expires_at | TIMESTAMPTZ | Expiracion (items temporales) |
| consumed_at | TIMESTAMPTZ | Fecha de consumo |
| is_active | BOOLEAN | Item activo |
| purchased_at | TIMESTAMPTZ | Fecha de compra |
**Estados:**
- pending: Compra pendiente
- completed: Compra completada
- refunded: Reembolsada
- expired: Item expirado
**Indices:**
- `idx_user_purchases_user`
- `idx_user_purchases_item`
- `idx_user_purchases_status`
- `idx_user_purchases_active`
- `idx_user_purchases_user_item`
- `idx_user_purchases_date`
- `idx_user_purchases_unique_item` (UNIQUE para items unicos activos)
---
## 3. SCHEMA: progress_tracking
### 3.1 teacher_interventions
**Archivo DDL:** `ddl/schemas/progress_tracking/tables/17-teacher_interventions.sql`
**Priority:** P2-04 (Teacher Portal)
**Creado:** 2025-12-18
**Proposito:** Registra acciones/intervenciones del maestro en respuesta a alertas de estudiantes.
**Columnas principales:**
| Columna | Tipo | Descripcion |
|---------|------|-------------|
| id | UUID | PK |
| alert_id | UUID | FK a student_intervention_alerts (opcional) |
| student_id | UUID | FK a profiles |
| teacher_id | UUID | FK a profiles |
| classroom_id | UUID | FK a classrooms |
| intervention_type | TEXT | Tipo de intervencion |
| title | TEXT | Titulo |
| description | TEXT | Descripcion |
| action_taken | TEXT | Accion tomada |
| outcome | TEXT | Resultado |
| scheduled_date | TIMESTAMPTZ | Fecha programada |
| completed_date | TIMESTAMPTZ | Fecha completada |
| status | TEXT | planned, in_progress, completed, cancelled, rescheduled |
| priority | TEXT | low, medium, high, urgent |
| follow_up_required | BOOLEAN | Requiere seguimiento |
| parent_contacted | BOOLEAN | Padre contactado |
| effectiveness_rating | INTEGER | Rating 1-5 |
| tenant_id | UUID | FK a tenants |
**Tipos de intervencion:**
- one_on_one_session
- parent_contact
- resource_assignment
- peer_tutoring
- accommodation
- referral
- behavior_plan
- progress_check
- encouragement
- schedule_adjustment
- other
**RLS Policies:**
- `teacher_manage_own_interventions`
- `teacher_view_classroom_interventions`
- `admin_view_tenant_interventions`
**Indices:**
- `idx_teacher_interventions_alert`
- `idx_teacher_interventions_student`
- `idx_teacher_interventions_teacher`
- `idx_teacher_interventions_classroom`
- `idx_teacher_interventions_status`
- `idx_teacher_interventions_type`
- `idx_teacher_interventions_tenant`
- `idx_teacher_interventions_scheduled`
- `idx_teacher_interventions_follow_up`
---
## RELACIONES
```
auth_management.parent_accounts
└──> auth_management.profiles (profile_id) 1:1
└──< auth_management.parent_student_links (parent_account_id) 1:N
└──< auth_management.parent_notifications (parent_account_id) 1:N
auth_management.parent_student_links
└──> auth_management.profiles (student_id) N:1
└──> auth_management.profiles (verified_by) N:1
gamification_system.user_purchases
└──> auth_management.profiles (user_id) N:1
└──> gamification_system.shop_items (item_id) N:1
└──> gamification_system.ml_coins_transactions (transaction_id) N:1
progress_tracking.teacher_interventions
└──> progress_tracking.student_intervention_alerts (alert_id) N:1
└──> auth_management.profiles (student_id) N:1
└──> auth_management.profiles (teacher_id) N:1
└──> social_features.classrooms (classroom_id) N:1
```
---
## NOTAS DE MIGRACION
1. Las tablas de parent_* requieren Epic EXT-010/EXT-011 para funcionar completamente
2. `user_purchases` depende de `shop_items` existente
3. `teacher_interventions` se integra con sistema de alertas existente
4. Todas las tablas tienen soporte multi-tenant
---
**Generado por:** Requirements-Analyst
**Fecha:** 2025-12-23
**Version:** 1.0