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