# Don Confiao - Frontend
## Tech Stack
- **Framework:** Vue 3 (Composition API)
- **UI Library:** Vuetify 3
- **Routing:** Vue Router 4 (auto-routes con `unplugin-vue-router`)
- **State:** Pinia
- **HTTP:** Axios
- **Build:** Vite
- **Linting:** ESLint
## Project Structure
```
src/
├── assets/ # Imágenes, iconos estáticos
├── components/ # Componentes Vue reutilizables
│ ├── order/ # Componentes del resumen de pedido público
│ ├── provenance/ # Provenance (público + admin): gráficos, sección y CRUD admin
│ │ └── admin/ # Organizaciones, Proveedores, Geografía, SupplierLinkDialog
│ └── graph/ # CytoscapeChart.vue (wrapper genérico de cytoscape)
├── layouts/ # Layouts de página
├── pages/ # Vistas (auto-routed desde文件名)
│ └── admin/ # Páginas admin (products, organizations, suppliers, geography, ...)
├── plugins/ # Configuración de Vuetify, etc.
├── router/ # Configuración de rutas
├── services/ # API services (auth.js, etc.)
│ ├── api.js # Clase wrapper que делегат methods
│ ├── api-implementation.js # Factory que selecciona implementación
│ ├── auth.js # Manejo de auth (login, tokens JWT)
│ ├── django-api.js # Implementación de API para Django
│ ├── graph/ # Genérico de grafos: graph-layout.js (layout por columnas + cytoscape)
│ └── http.js # Axios instance con interceptors
├── stores/ # Pinia stores
└── styles/ # SCSS settings
```
## Important Conventions
### Auto-imports
- Componentes en `src/components/` se auto-importan por nombre
- Los archivos en `src/pages/*.vue` se routing automáticamente via `unplugin-vue-router`
- Alias `@` = `src/`
### Pages (CRITICAL)
**Siempre importar componentes en los archivos de página:**
```vue
```
### Componentes
- Usar Composition API (`