# eliasgallay/solicitudes-farmacia architecture

> Architecture diagram of the GitHub repository eliasgallay/solicitudes-farmacia, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/eliasgallay/solicitudes-farmacia
- Repository: https://github.com/eliasgallay/solicitudes-farmacia

## Overview

Solicitudes de Insumos es una aplicación para que centros de salud pidan insumos y la administración gestione entregas, recepciones y diferencias; también incluye catálogos, auditoría y un módulo independiente de flota. El flujo principal va de la creación de una solicitud a su entrega, confirmación por línea y resolución de diferencias, con historial y notificaciones. Los grupos reflejan esas etapas y las capacidades documentadas. Las páginas y acciones no muestreadas se representan por sus rutas existentes; las relaciones entre ellas se apoyan en el README cuando no hay evidencia de código en los extractos.

Main entry points: [`src/lib/supabase/server.ts`](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/supabase/server.ts) (Supabase), [`src/app/(app)/solicitudes/page.tsx`](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/page.tsx) (Solicitudes), [`src/app/(app)/solicitudes/[id]/page.tsx`](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/%5Bid%5D/page.tsx) (Detalle y gestión), [`src/app/(app)/movilidad/page.tsx`](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/movilidad/page.tsx) (Flota y servicios)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Solicitudes y entregas"]
  node_request_pages["Solicitudes<br/>[page.tsx]"]
  node_request_detail["Detalle y gestión<br/>[page.tsx]"]
  node_request_actions["Acciones de gestión"]
  node_request_domain["Solicitudes y estados<br/>[requests.ts]"]
  node_receipt["Recepción<br/>[page.tsx]"]
  node_delivery_docs["Remitos y constancias<br/>[page.tsx]"]
end

subgraph group_fleet["Movilidad"]
  node_fleet_pages["Flota y servicios<br/>[page.tsx]"]
  node_fleet_actions["Acciones de flota<br/>[fleet-actions.ts]"]
  node_fleet_data["Flota y evidencia<br/>[fleet.ts]"]
  node_fleet_files["Archivos de evidencia<br/>[route.ts]"]
end

subgraph group_admin["Administración"]
  node_catalog["Catálogos<br/>[page.tsx]"]
  node_users_centers["Usuarios y centros<br/>[page.tsx]"]
  node_audit["Auditoría<br/>[page.tsx]"]
end

subgraph group_platform["Acceso y datos"]
  node_session["Sesión y permisos<br/>[session.ts]"]
  node_supabase[("Supabase<br/>[server.ts]")]
end

subgraph group_visibility["Seguimiento"]
  node_notifications["Notificaciones<br/>[notifications.ts]"]
  node_notification_ui["Campana y avisos"]
  node_dashboard["Panel y métricas<br/>[page.tsx]"]
  node_metrics["Métricas admin<br/>[admin-metrics.ts]"]
end

node_centers(("Centros de salud"))
node_admin_actor(("Administración"))

node_centers -->|"crean pedidos"| node_request_pages
node_request_pages -->|"consulta solicitudes"| node_request_domain
node_request_pages -->|"abre detalle"| node_request_detail
node_request_detail -->|"invoca acciones"| node_request_actions
node_request_actions -.->|"gestiona pedidos"| node_request_domain
node_admin_actor -->|"registra entregas"| node_request_actions
node_centers -->|"confirma recepción"| node_receipt
node_admin_actor -->|"confirma con remito"| node_receipt
node_request_detail -->|"enlaza comprobantes"| node_delivery_docs
node_admin_actor -->|"administra catálogo"| node_catalog
node_admin_actor -->|"administra accesos"| node_users_centers
node_admin_actor -->|"consulta auditoría"| node_audit
node_admin_actor -->|"administra flota"| node_fleet_pages
node_fleet_pages -.->|"gestiona servicios"| node_fleet_actions
node_fleet_actions -.->|"actualiza flota"| node_fleet_data
node_fleet_pages -->|"accede archivos"| node_fleet_files
node_session -->|"crea cliente"| node_supabase
node_request_domain -->|"consulta datos"| node_supabase
node_notification_ui -->|"lee notificaciones"| node_notifications
node_notifications -->|"consulta avisos"| node_supabase
node_dashboard -->|"carga métricas"| node_metrics
node_metrics -.->|"consulta datos"| node_supabase

click node_request_pages "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/page.tsx"
click node_request_detail "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/%5Bid%5D/page.tsx"
click node_request_actions "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/request-management-actions.ts"
click node_request_domain "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/requests.ts"
click node_receipt "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/recepciones/%5Bid%5D/page.tsx"
click node_delivery_docs "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/remitos/%5Bid%5D/page.tsx"
click node_catalog "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/catalogos/page.tsx"
click node_users_centers "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/usuarios/page.tsx"
click node_audit "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/auditoria/page.tsx"
click node_fleet_pages "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/movilidad/page.tsx"
click node_fleet_actions "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/fleet-actions.ts"
click node_fleet_data "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/fleet.ts"
click node_fleet_files "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/movilidad/archivos/%5Bid%5D/route.ts"
click node_session "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/session.ts"
click node_supabase "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/supabase/server.ts"
click node_notifications "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/notifications.ts"
click node_notification_ui "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/components/notifications/notification-bell.tsx"
click node_dashboard "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/page.tsx"
click node_metrics "https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/admin-metrics.ts"

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_request_pages,node_request_detail,node_request_actions,node_request_domain,node_receipt,node_delivery_docs toneBlue
class node_fleet_pages,node_fleet_actions,node_fleet_data,node_fleet_files toneAmber
class node_catalog,node_users_centers,node_audit toneMint
class node_session,node_supabase toneRose
class node_notifications,node_notification_ui,node_dashboard,node_metrics,node_centers,node_admin_actor toneIndigo
```

## Components

### Solicitudes y entregas

- [Solicitudes](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/page.tsx): `src/app/(app)/solicitudes/page.tsx`
- [Detalle y gestión](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/solicitudes/%5Bid%5D/page.tsx): `src/app/(app)/solicitudes/[id]/page.tsx`
- [Acciones de gestión](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/request-management-actions.ts): `src/app/request-management-actions.ts`
- [Solicitudes y estados](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/requests.ts): `src/lib/requests.ts`
- [Recepción](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/recepciones/%5Bid%5D/page.tsx): `src/app/recepciones/[id]/page.tsx`
- [Remitos y constancias](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/remitos/%5Bid%5D/page.tsx): `src/app/remitos/[id]/page.tsx`

### Movilidad

- [Flota y servicios](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/movilidad/page.tsx): `src/app/(app)/movilidad/page.tsx`
- [Acciones de flota](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/fleet-actions.ts): `src/app/fleet-actions.ts`
- [Flota y evidencia](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/fleet.ts): `src/lib/fleet.ts`
- [Archivos de evidencia](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/movilidad/archivos/%5Bid%5D/route.ts): `src/app/(app)/movilidad/archivos/[id]/route.ts`

### Administración

- [Catálogos](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/catalogos/page.tsx): `src/app/(app)/(admin)/catalogos/page.tsx`
- [Usuarios y centros](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/usuarios/page.tsx): `src/app/(app)/(admin)/usuarios/page.tsx`
- [Auditoría](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/(admin)/auditoria/page.tsx): `src/app/(app)/(admin)/auditoria/page.tsx`

### Acceso y datos

- [Sesión y permisos](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/session.ts): `src/lib/session.ts`
- [Supabase](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/supabase/server.ts): `src/lib/supabase/server.ts`

### Seguimiento

- [Notificaciones](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/notifications.ts): `src/lib/notifications.ts`
- [Campana y avisos](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/components/notifications/notification-bell.tsx): `src/components/notifications/notification-bell.tsx`
- [Panel y métricas](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/app/(app)/page.tsx): `src/app/(app)/page.tsx`
- [Métricas admin](https://github.com/eliasgallay/solicitudes-farmacia/blob/main/src/lib/admin-metrics.ts): `src/lib/admin-metrics.ts`

### Other components

- **Centros de salud**
- **Administración**

## Connections

- Centros de salud → Solicitudes: crean pedidos (evidence: `README.md`)
- Solicitudes → Solicitudes y estados: consulta solicitudes (evidence: `src/app/(app)/solicitudes/page.tsx`)
- Solicitudes → Detalle y gestión: abre detalle
- Detalle y gestión → Acciones de gestión: invoca acciones (evidence: `src/app/(app)/solicitudes/[id]/page.tsx`)
- Acciones de gestión → Solicitudes y estados: gestiona pedidos
- Administración → Acciones de gestión: registra entregas (evidence: `README.md`)
- Centros de salud → Recepción: confirma recepción (evidence: `README.md`)
- Administración → Recepción: confirma con remito (evidence: `README.md`)
- Detalle y gestión → Remitos y constancias: enlaza comprobantes
- Administración → Catálogos: administra catálogo (evidence: `README.md`)
- Administración → Usuarios y centros: administra accesos (evidence: `README.md`)
- Administración → Auditoría: consulta auditoría (evidence: `README.md`)
- Administración → Flota y servicios: administra flota (evidence: `README.md`)
- Flota y servicios → Acciones de flota: gestiona servicios
- Acciones de flota → Flota y evidencia: actualiza flota
- Flota y servicios → Archivos de evidencia: accede archivos (evidence: `src/app/(app)/movilidad/archivos/[id]/route.ts`)
- Sesión y permisos → Supabase: crea cliente (evidence: `src/lib/session.ts`)
- Solicitudes y estados → Supabase: consulta datos (evidence: `src/lib/requests.ts`)
- Campana y avisos → Notificaciones: lee notificaciones (evidence: `src/components/notifications/notification-bell.tsx`)
- Notificaciones → Supabase: consulta avisos (evidence: `src/lib/notifications.ts`)
- Panel y métricas → Métricas admin: carga métricas (evidence: `src/app/(app)/page.tsx`)
- Métricas admin → Supabase: consulta datos
