# villarrealsanchezjamir-rgb/jamir-sanchez architecture

> Architecture diagram of the GitHub repository villarrealsanchezjamir-rgb/jamir-sanchez, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/villarrealsanchezjamir-rgb/jamir-sanchez
- Repository: https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez

## Overview

Este repositorio representa el modelo de dominio de un sistema de gestión de flotas; no muestra una aplicación ejecutable ni una secuencia de interacción usuario-a-resultado. El flujo de negocio principal que sugiere el modelo es organizar vehículos, asignarlos a conductores y registrar viajes, con mantenimiento y controles asociados. El grafo separa esas etapas y las capacidades documentadas de monitoreo, documentación y roles. Las relaciones reflejan asociaciones tipadas o herencia del modelo, no llamadas entre módulos; no se infieren flujos de ejecución que las fuentes disponibles no muestran.

Main entry points: [`src/main/java/com/gestionvehiculos/domain/Vehiculo.java`](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Vehiculo.java) (Vehículo), [`src/main/java/com/gestionvehiculos/domain/Mantenimiento.java`](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Mantenimiento.java) (Mantenimiento), [`src/main/java/com/gestionvehiculos/domain/Viaje.java`](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Viaje.java) (Viaje), [`src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java`](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java) (Asignación)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_org_flota["Organización y flota"]
  node_empresa["Empresa<br/>[Empresa.java]"]
  node_area["Área operativa<br/>[AreaOperativa.java]"]
  node_vehiculo["Vehículo<br/>[Vehiculo.java]"]
  node_tipo_vehiculo["Tipo de vehículo<br/>[TipoVehiculo.java]"]
  node_combustible["Combustible<br/>[Combustible.java]"]
end

subgraph group_operacion["Operación y transporte"]
  node_conductor["Conductor<br/>[Conductor.java]"]
  node_asignacion["Asignación"]
  node_viaje["Viaje<br/>[Viaje.java]"]
  node_ruta["Ruta<br/>[Ruta.java]"]
end

subgraph group_mantenimiento["Mantenimiento"]
  node_mantenimiento["Mantenimiento<br/>[Mantenimiento.java]"]
  node_preventivo["Mantenimiento preventivo"]
  node_correctivo["Mantenimiento correctivo"]
  node_repuesto["Repuesto<br/>[Repuesto.java]"]
  node_taller["Taller<br/>[Taller.java]"]
  node_mecanico["Mecánico<br/>[Mecanico.java]"]
end

subgraph group_control_docs["Control y documentos"]
  node_inspeccion["Inspección<br/>[Inspeccion.java]"]
  node_incidente["Incidente<br/>[Incidente.java]"]
  node_documento["Documento vehicular"]
  node_seguro["Seguro<br/>[Seguro.java]"]
end

subgraph group_usuarios_avisos["Usuarios y avisos"]
  node_gps["GPS<br/>[GPS.java]"]
  node_alerta["Alerta<br/>[Alerta.java]"]
  node_notificacion["Notificación<br/>[Notificacion.java]"]
  node_usuario["Usuario<br/>[Usuario.java]"]
  node_administrador["Administrador<br/>[Administrador.java]"]
  node_supervisor["Supervisor de flota"]
end

node_empresa -->|"asocia áreas"| node_area
node_empresa -->|"registra vehículos"| node_vehiculo
node_area -->|"registra asignaciones"| node_asignacion
node_area -->|"agrupa vehículos"| node_vehiculo
node_vehiculo -->|"clasifica por tipo"| node_tipo_vehiculo
node_vehiculo -->|"registra consumos"| node_combustible
node_vehiculo -->|"mantiene asignaciones"| node_asignacion
node_vehiculo -->|"registra viajes"| node_viaje
node_vehiculo -->|"registra mantenimiento"| node_mantenimiento
node_vehiculo -->|"registra inspecciones"| node_inspeccion
node_vehiculo -->|"registra incidentes"| node_incidente
node_vehiculo -->|"mantiene documentos"| node_documento
node_vehiculo -->|"mantiene seguros"| node_seguro
node_vehiculo -.->|"asocia dispositivos"| node_gps
node_vehiculo -->|"asocia alertas"| node_alerta
node_asignacion -->|"asocia conductor"| node_conductor
node_viaje -->|"asocia conductor"| node_conductor
node_viaje -->|"asocia ruta"| node_ruta
node_conductor -->|"registra incidentes"| node_incidente
node_mantenimiento -->|"incluye repuestos"| node_repuesto
node_mantenimiento -->|"asocia taller"| node_taller
node_mantenimiento -->|"especializa en"| node_preventivo
node_correctivo -->|"hereda de"| node_mantenimiento
node_correctivo -->|"incluye repuestos"| node_repuesto
node_mecanico -->|"hereda de"| node_usuario
node_mecanico -->|"asocia trabajos"| node_mantenimiento
node_alerta -->|"genera notificaciones"| node_notificacion
node_seguro -->|"asocia alertas"| node_alerta
node_documento -->|"asocia alertas"| node_alerta
node_administrador -->|"hereda de"| node_usuario
node_supervisor -->|"hereda de"| node_usuario
node_supervisor -->|"gestiona asignaciones"| node_asignacion
node_supervisor -->|"asocia viajes"| node_viaje

click node_empresa "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Empresa.java"
click node_area "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/AreaOperativa.java"
click node_vehiculo "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Vehiculo.java"
click node_tipo_vehiculo "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/TipoVehiculo.java"
click node_combustible "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Combustible.java"
click node_conductor "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Conductor.java"
click node_asignacion "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java"
click node_viaje "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Viaje.java"
click node_ruta "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Ruta.java"
click node_mantenimiento "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Mantenimiento.java"
click node_preventivo "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/MantenimientoPreventivo.java"
click node_correctivo "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/MantenimientoCorrectivo.java"
click node_repuesto "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Repuesto.java"
click node_taller "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Taller.java"
click node_mecanico "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Mecanico.java"
click node_inspeccion "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Inspeccion.java"
click node_incidente "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Incidente.java"
click node_documento "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/DocumentoVehicular.java"
click node_seguro "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Seguro.java"
click node_gps "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/GPS.java"
click node_alerta "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Alerta.java"
click node_notificacion "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Notificacion.java"
click node_usuario "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Usuario.java"
click node_administrador "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Administrador.java"
click node_supervisor "https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_empresa,node_area,node_vehiculo,node_tipo_vehiculo,node_combustible toneBlue
class node_conductor,node_asignacion,node_viaje,node_ruta toneAmber
class node_mantenimiento,node_preventivo,node_correctivo,node_repuesto,node_taller,node_mecanico toneMint
class node_inspeccion,node_incidente,node_documento,node_seguro toneRose
class node_gps,node_alerta,node_notificacion,node_usuario,node_administrador,node_supervisor toneIndigo
```

## Components

### Organización y flota

- [Empresa](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Empresa.java): `src/main/java/com/gestionvehiculos/domain/Empresa.java`
- [Área operativa](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/AreaOperativa.java): `src/main/java/com/gestionvehiculos/domain/AreaOperativa.java`
- [Vehículo](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Vehiculo.java): `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`
- [Tipo de vehículo](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/TipoVehiculo.java): `src/main/java/com/gestionvehiculos/domain/TipoVehiculo.java`
- [Combustible](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Combustible.java): `src/main/java/com/gestionvehiculos/domain/Combustible.java`

### Operación y transporte

- [Conductor](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Conductor.java): `src/main/java/com/gestionvehiculos/domain/Conductor.java`
- [Asignación](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java): `src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java`
- [Viaje](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Viaje.java): `src/main/java/com/gestionvehiculos/domain/Viaje.java`
- [Ruta](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Ruta.java): `src/main/java/com/gestionvehiculos/domain/Ruta.java`

### Mantenimiento

- [Mantenimiento](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Mantenimiento.java): `src/main/java/com/gestionvehiculos/domain/Mantenimiento.java`
- [Mantenimiento preventivo](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/MantenimientoPreventivo.java): `src/main/java/com/gestionvehiculos/domain/MantenimientoPreventivo.java`
- [Mantenimiento correctivo](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/MantenimientoCorrectivo.java): `src/main/java/com/gestionvehiculos/domain/MantenimientoCorrectivo.java`
- [Repuesto](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Repuesto.java): `src/main/java/com/gestionvehiculos/domain/Repuesto.java`
- [Taller](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Taller.java): `src/main/java/com/gestionvehiculos/domain/Taller.java`
- [Mecánico](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Mecanico.java): `src/main/java/com/gestionvehiculos/domain/Mecanico.java`

### Control y documentos

- [Inspección](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Inspeccion.java): `src/main/java/com/gestionvehiculos/domain/Inspeccion.java`
- [Incidente](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Incidente.java): `src/main/java/com/gestionvehiculos/domain/Incidente.java`
- [Documento vehicular](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/DocumentoVehicular.java): `src/main/java/com/gestionvehiculos/domain/DocumentoVehicular.java`
- [Seguro](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Seguro.java): `src/main/java/com/gestionvehiculos/domain/Seguro.java`

### Usuarios y avisos

- [GPS](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/GPS.java): `src/main/java/com/gestionvehiculos/domain/GPS.java`
- [Alerta](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Alerta.java): `src/main/java/com/gestionvehiculos/domain/Alerta.java`
- [Notificación](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Notificacion.java): `src/main/java/com/gestionvehiculos/domain/Notificacion.java`
- [Usuario](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Usuario.java): `src/main/java/com/gestionvehiculos/domain/Usuario.java`
- [Administrador](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/Administrador.java): `src/main/java/com/gestionvehiculos/domain/Administrador.java`
- [Supervisor de flota](https://github.com/villarrealsanchezjamir-rgb/jamir-sanchez/blob/main/src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java): `src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java`

## Connections

- Empresa → Área operativa: asocia áreas (evidence: `src/main/java/com/gestionvehiculos/domain/Empresa.java`)
- Empresa → Vehículo: registra vehículos (evidence: `src/main/java/com/gestionvehiculos/domain/Empresa.java`)
- Área operativa → Asignación: registra asignaciones (evidence: `src/main/java/com/gestionvehiculos/domain/AreaOperativa.java`)
- Área operativa → Vehículo: agrupa vehículos (evidence: `src/main/java/com/gestionvehiculos/domain/AreaOperativa.java`)
- Vehículo → Tipo de vehículo: clasifica por tipo (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Combustible: registra consumos (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Asignación: mantiene asignaciones (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Viaje: registra viajes (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Mantenimiento: registra mantenimiento (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Inspección: registra inspecciones (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Incidente: registra incidentes (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Documento vehicular: mantiene documentos (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → Seguro: mantiene seguros (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Vehículo → GPS: asocia dispositivos (evidence: `src/main/java/com/gestionvehiculos/domain/GPS.java`)
- Vehículo → Alerta: asocia alertas (evidence: `src/main/java/com/gestionvehiculos/domain/Vehiculo.java`)
- Asignación → Conductor: asocia conductor (evidence: `src/main/java/com/gestionvehiculos/domain/AsignacionVehiculo.java`)
- Viaje → Conductor: asocia conductor (evidence: `src/main/java/com/gestionvehiculos/domain/Viaje.java`)
- Viaje → Ruta: asocia ruta (evidence: `src/main/java/com/gestionvehiculos/domain/Viaje.java`)
- Conductor → Incidente: registra incidentes (evidence: `src/main/java/com/gestionvehiculos/domain/Conductor.java`)
- Mantenimiento → Repuesto: incluye repuestos (evidence: `src/main/java/com/gestionvehiculos/domain/Mantenimiento.java`)
- Mantenimiento → Taller: asocia taller (evidence: `src/main/java/com/gestionvehiculos/domain/Mantenimiento.java`)
- Mantenimiento → Mantenimiento preventivo: especializa en (evidence: `src/main/java/com/gestionvehiculos/domain/MantenimientoPreventivo.java`)
- Mantenimiento correctivo → Mantenimiento: hereda de (evidence: `src/main/java/com/gestionvehiculos/domain/MantenimientoCorrectivo.java`)
- Mantenimiento correctivo → Repuesto: incluye repuestos (evidence: `src/main/java/com/gestionvehiculos/domain/MantenimientoCorrectivo.java`)
- Mecánico → Usuario: hereda de (evidence: `src/main/java/com/gestionvehiculos/domain/Mecanico.java`)
- Mecánico → Mantenimiento: asocia trabajos (evidence: `src/main/java/com/gestionvehiculos/domain/Mecanico.java`)
- Alerta → Notificación: genera notificaciones (evidence: `src/main/java/com/gestionvehiculos/domain/Alerta.java`)
- Seguro → Alerta: asocia alertas (evidence: `src/main/java/com/gestionvehiculos/domain/Seguro.java`)
- Documento vehicular → Alerta: asocia alertas (evidence: `src/main/java/com/gestionvehiculos/domain/DocumentoVehicular.java`)
- Administrador → Usuario: hereda de (evidence: `src/main/java/com/gestionvehiculos/domain/Administrador.java`)
- Supervisor de flota → Usuario: hereda de (evidence: `src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java`)
- Supervisor de flota → Asignación: gestiona asignaciones (evidence: `src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java`)
- Supervisor de flota → Viaje: asocia viajes (evidence: `src/main/java/com/gestionvehiculos/domain/SupervisorFlota.java`)
