Core Data Models & Database Schema
Panorama
LaUapi usa 18 modelos Eloquent que representan las entidades del sistema. Los modelos se organizan en cuatro dominios:
| Dominio |
Modelos |
| Identidad |
User, su_ad |
| Contenido |
Post, Comentario, Like |
| Grafo social/académico |
Follower, Universidad, Carrera, Notification, SocialLink, Insignia, Banner, Reporte, DeviceToken, ChMessage, ChFavorite |
| Productividad |
Task, PomodoroSession |
| Sistema |
AppUpdate |
Tablas Pivote
| Tabla Pivote |
Relación |
followers |
User ↔︎ User (self-referencing many-to-many) |
carrera_universidad |
Carrera ↔︎ Universidad |
insignia_user |
Insignia ↔︎ User (con timestamps) |
banner_user_views |
Banner ↔︎ User (tracking de vistas) |
Diagrama de Relaciones Principales
User
├── hasMany: Post, Like, Comentario, Notification, SocialLink, Task, PomodoroSession, DeviceToken
├── belongsTo: Universidad, Carrera
├── belongsToMany: User (followers/following), Insignia
└── reportesRecibidos: hasMany Reporte
Post
├── belongsTo: User
├── hasMany: Comentario, Like
└── tipos: imagen | musica | texto | archivo
Comentario
├── belongsTo: User, Post
├── parent: belongsTo Comentario (parent_id)
└── children: hasMany Comentario
Universidad
├── belongsToMany: Carrera (pivot carrera_universidad)
└── hasMany: User (alumnos)
Banner
├── belongsToMany: User (pivot banner_user_views)
└── scopeActive (is_active + fechas)
Siguente página
05-User-Model