Descripción tablas y campos

Tabla: users

  • Función: Almacena la información de los usuarios registrados en el sistema.

  • Campos:

    • uid (String, PK): Identificador único proporcionado por Firebase.

    • username (String): Nombre de usuario.

    • email (String): Correo electrónico.

    • phone (String, nullable): Número de teléfono.

    • role (String): Rol del usuario (por defecto "USER").

    • created_at (Date): Fecha de creación del usuario.

    • is_premium (Boolean): Indica si el usuario tiene cuenta premium.


Tabla: profile_images

  • Función: Almacena la URL de la imagen de perfil asociada a cada usuario.

  • Campos:

    • id (Long, PK): Identificador único.

    • image_url (String): URL de la imagen.

    • uploaded_at (DateTime): Fecha de subida de la imagen.

    • user_id (String, FK): Referencia al usuario propietario.


Tabla: vehicles

  • Función: Guarda información sobre los vehículos asociados a los usuarios.

  • Campos:

    • id (Long, PK): Identificador único.

    • name (String): Nombre del vehículo.

    • brand (String): Marca.

    • model (String): Modelo.

    • year (String, nullable): Año.

    • type (Enum): Tipo de vehículo (CAR, MOTORCYCLE, BIKE).

    • fuel_type (String, nullable): Tipo de combustible.

    • tank_capacity (Double, nullable): Capacidad del tanque en litros.

    • efficiency (Double, nullable): Consumo promedio.

    • notes (String, nullable): Notas adicionales.

    • user_id (String, FK): Usuario propietario.


Tabla: routes

  • Función: Almacena las rutas creadas por los usuarios con sus detalles.

  • Campos:

    • id (Long, PK): Identificador único.

    • name (String): Nombre de la ruta.

    • description (String, nullable): Descripción de la ruta.

    • start_time (DateTime): Hora de inicio.

    • end_time (DateTime): Hora de fin.

    • start_point (String): Punto de inicio.

    • end_point (String): Punto final.

    • distance_km (Double): Distancia total en kilómetros.

    • moving_time_sec (Long): Tiempo en movimiento en segundos.

    • avg_speed (Double): Velocidad media.

    • max_speed (Double): Velocidad máxima.

    • fuel_consumed (Double, nullable): Combustible consumido.

    • efficiency (Double, nullable): Eficiencia del trayecto.

    • pace (Double, nullable): Ritmo.

    • compressed_path (String): Path comprimido en Base64.

    • vehicle_id (Long, FK): Vehículo asociado.

    • user_id (String, FK): Usuario propietario.


Tabla: route_pins

  • Función: Almacena puntos específicos marcados en una ruta.

  • Campos:

    • id (Long, PK): Identificador único.

    • latitude (Double): Latitud.

    • longitude (Double): Longitud.

    • title (String): Título del pin.

    • description (String, nullable): Descripción del pin.

    • route_id (Long, FK): Ruta asociada.


Tabla: route_image

  • Función: Guarda imágenes asociadas a las rutas.

  • Campos:

    • id (Long, PK): Identificador único.

    • route_id (Long, FK): Ruta asociada.

    • image_url (String): URL de la imagen.

    • uploaded_at (DateTime): Fecha de subida.


Tabla: refresh_token

  • Función: Gestiona tokens de actualización para autenticación.

  • Campos:

    • id (Long, PK): Identificador único.

    • user_uid (String, FK): Usuario asociado.

    • token (String): Token.

    • created_at (DateTime): Fecha de creación.

    • expires_at (DateTime): Fecha de expiración.

Última actualización