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.