# verticalpartsia/003_requisicoes architecture

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

- Interactive diagram: https://gitdiagram.com/verticalpartsia/003_requisicoes
- Repository: https://github.com/verticalpartsia/003_requisicoes

## Overview

VPRequisições centraliza solicitações internas e acompanha cada ticket desde a abertura até o recebimento, com auditoria e indicadores após a conclusão. O README documenta o fluxo e as principais capacidades; os trechos de código confirmam alguns acessos ao Supabase e integrações, mas não mostram toda a ligação entre rotas e etapas. Por isso, o fluxo de negócio segue a documentação e as ligações internas não verificáveis foram omitidas.

Main entry points: [`src/routes/__root.tsx`](https://github.com/verticalpartsia/003_requisicoes/blob/main/src/routes/__root.tsx) (App e navegação), [`src/features/admin/server.ts`](https://github.com/verticalpartsia/003_requisicoes/blob/main/src/features/admin/server.ts) (Server Functions), [`src/features/requisitions`](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/requisitions) (Requisições M1–M6), [`src/features/quotations`](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/quotations) (V2 Cotação)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Fluxo operacional"]
  node_request["Requisições M1–M6"]
  node_quote["V2 Cotação"]
  node_approval["V3 Aprovação"]
  node_purchase["V4 Compra"]
  node_receipt["V5 Recebimento"]
end

subgraph group_oversight["Gestão e evidências"]
  node_dashboard["Dashboard"]
  node_analytics["Analytics e SLA"]
  node_logs["Logs e auditoria"]
  node_admin["Admin e alçadas"]
  node_pdf["PDF e evidências"]
end

subgraph group_platform["Plataforma e dados"]
  node_app["App e navegação<br/>[__root.tsx]"]
  node_auth["Autenticação e papéis<br/>[auth-context.tsx]"]
  node_supabase[("Supabase Auth, Postgres e Storage")]
  node_server["Server Functions<br/>[server.ts]"]
end

subgraph group_integrations["Integrações externas"]
  node_vpclick["VPClick"]
  node_whatsapp["Evolution API WhatsApp"]
  node_omie["Omie"]
  node_sync["Sincronização Omie<br/>[index.ts]"]
end

node_user(("Usuário autenticado"))

node_user -->|"acessa"| node_app
node_app -->|"valida sessão"| node_auth
node_app -->|"abre demanda"| node_request
node_request -->|"encaminha para cotação"| node_quote
node_quote -->|"solicita aprovação"| node_approval
node_approval -->|"libera compra"| node_purchase
node_purchase -->|"registra compra"| node_receipt
node_receipt -->|"registra conclusão"| node_logs
node_app -->|"consulta painel"| node_dashboard
node_app -->|"consulta indicadores"| node_analytics
node_app -->|"consulta histórico"| node_logs
node_app -->|"administra acesso"| node_admin
node_request -->|"grava tickets"| node_supabase
node_quote -->|"grava propostas"| node_supabase
node_approval -->|"grava decisões"| node_supabase
node_purchase -->|"grava compra"| node_supabase
node_receipt -->|"grava recebimento"| node_supabase
node_dashboard -->|"consulta dados"| node_supabase
node_analytics -->|"consulta métricas"| node_supabase
node_logs -->|"consulta auditoria"| node_supabase
node_admin -->|"consulta papéis"| node_supabase
node_auth -->|"autentica usuário"| node_supabase
node_admin -->|"invoca funções"| node_server
node_server -->|"gerencia contas"| node_supabase
node_server -.->|"sincroniza tarefas"| node_vpclick
node_server -.->|"envia notificações"| node_whatsapp
node_app -->|"gera documentos"| node_pdf
node_pdf -->|"armazena evidências"| node_supabase
node_app -.->|"consulta estoque e pedidos"| node_omie
node_sync -.->|"sincroniza dados"| node_omie
node_sync -.->|"atualiza dados Omie"| node_supabase

click node_app "https://github.com/verticalpartsia/003_requisicoes/blob/main/src/routes/__root.tsx"
click node_auth "https://github.com/verticalpartsia/003_requisicoes/blob/main/src/features/auth/auth-context.tsx"
click node_request "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/requisitions"
click node_quote "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/quotations"
click node_approval "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/approvals"
click node_purchase "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/purchases"
click node_receipt "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/receipts"
click node_dashboard "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/dashboard"
click node_analytics "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/analytics"
click node_logs "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/logs"
click node_admin "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/admin"
click node_pdf "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/pdf"
click node_server "https://github.com/verticalpartsia/003_requisicoes/blob/main/src/features/admin/server.ts"
click node_omie "https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/omie"
click node_sync "https://github.com/verticalpartsia/003_requisicoes/blob/main/supabase/functions/sync-omie-stock/index.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,node_quote,node_approval,node_purchase,node_receipt toneBlue
class node_dashboard,node_analytics,node_logs,node_admin,node_pdf toneAmber
class node_app,node_auth,node_supabase,node_server toneMint
class node_vpclick,node_whatsapp,node_omie,node_sync toneRose
class node_user toneIndigo
```

## Components

### Fluxo operacional

- [Requisições M1–M6](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/requisitions): `src/features/requisitions`
- [V2 Cotação](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/quotations): `src/features/quotations`
- [V3 Aprovação](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/approvals): `src/features/approvals`
- [V4 Compra](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/purchases): `src/features/purchases`
- [V5 Recebimento](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/receipts): `src/features/receipts`

### Gestão e evidências

- [Dashboard](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/dashboard): `src/features/dashboard`
- [Analytics e SLA](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/analytics): `src/features/analytics`
- [Logs e auditoria](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/logs): `src/features/logs`
- [Admin e alçadas](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/admin): `src/features/admin`
- [PDF e evidências](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/pdf): `src/features/pdf`

### Plataforma e dados

- [App e navegação](https://github.com/verticalpartsia/003_requisicoes/blob/main/src/routes/__root.tsx): `src/routes/__root.tsx`
- [Autenticação e papéis](https://github.com/verticalpartsia/003_requisicoes/blob/main/src/features/auth/auth-context.tsx): `src/features/auth/auth-context.tsx`
- **Supabase Auth, Postgres e Storage**
- [Server Functions](https://github.com/verticalpartsia/003_requisicoes/blob/main/src/features/admin/server.ts): `src/features/admin/server.ts`

### Integrações externas

- **VPClick**
- **Evolution API WhatsApp**
- [Omie](https://github.com/verticalpartsia/003_requisicoes/tree/main/src/features/omie): `src/features/omie`
- [Sincronização Omie](https://github.com/verticalpartsia/003_requisicoes/blob/main/supabase/functions/sync-omie-stock/index.ts): `supabase/functions/sync-omie-stock/index.ts`

### Other components

- **Usuário autenticado**

## Connections

- Usuário autenticado → App e navegação: acessa
- App e navegação → Autenticação e papéis: valida sessão
- App e navegação → Requisições M1–M6: abre demanda
- Requisições M1–M6 → V2 Cotação: encaminha para cotação
- V2 Cotação → V3 Aprovação: solicita aprovação
- V3 Aprovação → V4 Compra: libera compra
- V4 Compra → V5 Recebimento: registra compra
- V5 Recebimento → Logs e auditoria: registra conclusão
- App e navegação → Dashboard: consulta painel
- App e navegação → Analytics e SLA: consulta indicadores
- App e navegação → Logs e auditoria: consulta histórico
- App e navegação → Admin e alçadas: administra acesso
- Requisições M1–M6 → Supabase Auth, Postgres e Storage: grava tickets
- V2 Cotação → Supabase Auth, Postgres e Storage: grava propostas
- V3 Aprovação → Supabase Auth, Postgres e Storage: grava decisões
- V4 Compra → Supabase Auth, Postgres e Storage: grava compra
- V5 Recebimento → Supabase Auth, Postgres e Storage: grava recebimento
- Dashboard → Supabase Auth, Postgres e Storage: consulta dados
- Analytics e SLA → Supabase Auth, Postgres e Storage: consulta métricas
- Logs e auditoria → Supabase Auth, Postgres e Storage: consulta auditoria
- Admin e alçadas → Supabase Auth, Postgres e Storage: consulta papéis
- Autenticação e papéis → Supabase Auth, Postgres e Storage: autentica usuário
- Admin e alçadas → Server Functions: invoca funções
- Server Functions → Supabase Auth, Postgres e Storage: gerencia contas
- Server Functions → VPClick: sincroniza tarefas
- Server Functions → Evolution API WhatsApp: envia notificações
- App e navegação → PDF e evidências: gera documentos
- PDF e evidências → Supabase Auth, Postgres e Storage: armazena evidências
- App e navegação → Omie: consulta estoque e pedidos
- Sincronização Omie → Omie: sincroniza dados
- Sincronização Omie → Supabase Auth, Postgres e Storage: atualiza dados Omie
