3. Modelos de Datos - dblancou/ApiLetterboxdProyectoFinal GitHub Wiki
En la API del Proyecto Final, los modelos de datos representan las entidades principales que se gestionan a través de los diferentes endpoints. Estos modelos incluyen información sobre películas, listas de películas, reseñas y usuarios. A continuación se describen cada uno de estos modelos y su propósito.
Clases Originales
Film
La clase Film representa una película en la base de datos. Este modelo incluye información esencial sobre la película como el título, el director, el año de lanzamiento, el género, una descripción, la calificación de IMDb y la URL del póster.
Atributos
- filmId: Identificador único de la película.
- title: Título de la película.
- director: Nombre del director de la película.
- year: Año de lanzamiento de la película.
- genre: Objeto Genre que representa el género de la película.
- description: Descripción breve de la película.
- imdbRating: Calificación de la película en IMDb.
- posterUrl: URL del póster de la película.
MovieList
La clase MovieList representa una lista personalizada de películas creada por un usuario. Esta lista puede contener varias películas y puede ser utilizada para organizar las películas por categorías o preferencias personales.
Atributos
- id: Identificador único de la lista de películas.
- name: Nombre de la lista de películas.
- description: Descripción de la lista.
- user: Objeto User que representa al usuario que creó la lista.
- films: Lista de objetos Film incluidos en esta lista personalizada.
- createdAt: Fecha de creación de la lista.
- updatedAt: Fecha de la última actualización de la lista.
Review
La clase Review representa una reseña escrita por un usuario sobre una película. Incluye la calificación y el comentario del usuario sobre la película.
Atributos
- reviewId: Identificador único de la reseña.
- user: Objeto User que representa al usuario que escribió la reseña.
- film: Objeto Film que representa la película reseñada.
- content: Contenido textual de la reseña.
- rating: Calificación de la película proporcionada por el usuario.
- reviewDate: Fecha en la que se escribió la reseña.
User
La clase User representa un usuario registrado en la aplicación. Incluye información básica del usuario como el nombre de usuario y la fecha de creación de la cuenta.
Atributos
- userId: Identificador único del usuario.
- username: Nombre de usuario.
- password: Contraseña del usuario.
- createDate: Fecha de creación de la cuenta del usuario.
- followers: Conjunto de objetos User que representan a los seguidores de este usuario.
- following: Conjunto de objetos User que representan a los usuarios que este usuario sigue.
DTOs (Data Transfer Objects)
Los DTOs se utilizan para transferir datos entre el cliente y el servidor. Son versiones simplificadas y específicas de los modelos originales, diseñadas para contener únicamente los datos necesarios para una operación particular.
FilmDTO
El modelo FilmDTO representa una película para transferencia de datos. Incluye información esencial como el título, director, año de lanzamiento, género, descripción, calificación de IMDb y la URL del póster.
Atributos
- filmId: Identificador único de la película.
- title: Título de la película.
- director: Nombre del director de la película.
- year: Año de lanzamiento de la película.
- genreName: Nombre del género al que pertenece la película.
- description: Descripción breve de la película.
- imdbRating: Calificación de la película en IMDb.
- posterUrl: URL del póster de la película.
MovieListDTO
El modelo MovieListDTO representa una lista personalizada de películas para transferencia de datos. Incluye información sobre el nombre de la lista, la descripción, las películas incluidas y el usuario que la creó.
Atributos
- listId: Identificador único de la lista de películas.
- userId: Identificador del usuario que creó la lista.
- name: Nombre de la lista de películas.
- description: Descripción de la lista.
- createdAt: Fecha de creación de la lista.
- films: Lista de películas incluidas en esta lista personalizada.
ReviewDTO
El modelo ReviewDTO representa una reseña para transferencia de datos. Incluye información sobre el contenido de la reseña, la calificación, la fecha de la reseña y los identificadores del usuario y la película.
Atributos
- reviewId: Identificador único de la reseña.
- userId: Identificador del usuario que escribió la reseña.
- filmId: Identificador de la película reseñada.
- content: Contenido textual de la reseña.
- rating: Calificación de la película proporcionada por el usuario.
- reviewDate: Fecha en la que se escribió la reseña.
UserDTO
El modelo UserDTO representa un usuario para transferencia de datos. Incluye información básica del usuario como el nombre de usuario y la fecha de creación de la cuenta.
Atributos
- userId: Identificador único del usuario.
- username: Nombre de usuario.
- createDate: Fecha de creación de la cuenta del usuario.