97 lines
2 KiB
Markdown
97 lines
2 KiB
Markdown
# Marketplace Frontend - Documentação
|
|
|
|
## Status (pronto x faltando)
|
|
|
|
**Pronto**
|
|
- Conteúdo descrito neste documento.
|
|
|
|
**Faltando**
|
|
- Confirmar no código o estado real das funcionalidades e atualizar esta seção conforme necessário.
|
|
|
|
---
|
|
|
|
|
|
## Visão Geral
|
|
|
|
Frontend React do marketplace B2B SaveInMed para busca, compra e gestão de pedidos entre farmácias.
|
|
|
|
## Tecnologias
|
|
|
|
- **React 18** + **TypeScript**
|
|
- **Vite 5** - Build tool
|
|
- **TailwindCSS** - Estilização
|
|
- **Zustand** - State management
|
|
- **React Router** - Navegação
|
|
|
|
## Estrutura
|
|
|
|
```
|
|
src/
|
|
├── components/ → Componentes reutilizáveis
|
|
├── hooks/ → Custom hooks
|
|
├── layouts/ → Layouts (Shell, AuthLayout)
|
|
├── pages/ → Páginas/rotas
|
|
├── services/ → Chamadas API
|
|
├── stores/ → Zustand stores
|
|
├── types/ → TypeScript types
|
|
└── utils/ → Utilitários (format, jwt, logger)
|
|
```
|
|
|
|
## Funcionalidades
|
|
|
|
### Catálogo
|
|
- Busca de produtos por nome/medicamento
|
|
- Filtros por preço, distância, validade
|
|
- Ordenação por menor preço
|
|
|
|
### Carrinho
|
|
- Agrupamento por fornecedor
|
|
- Preços em centavos (formatCents)
|
|
- Cálculo de subtotais
|
|
|
|
### Checkout
|
|
- Endereço de entrega
|
|
- Métodos de pagamento (Pix, Cartão)
|
|
- Cálculo de frete
|
|
|
|
### Dashboard
|
|
- Pedidos realizados
|
|
- Pedidos recebidos
|
|
- Métricas
|
|
|
|
## Stores
|
|
|
|
| Store | Arquivo | Descrição |
|
|
|-------|---------|-----------|
|
|
| Auth | `authStore.ts` | Token, usuário logado |
|
|
| Cart | `cartStore.ts` | Itens do carrinho |
|
|
|
|
## Utils
|
|
|
|
| Util | Função | Exemplo |
|
|
|------|--------|---------|
|
|
| `formatCents` | Converte centavos | `819 → "R$ 8,19"` |
|
|
| `formatCurrency` | Formata decimal | `8.19 → "8,19"` |
|
|
| `decodeJwtPayload` | Decodifica JWT | Extrai claims |
|
|
|
|
## Executar
|
|
|
|
```bash
|
|
cd marketplace
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Testes
|
|
|
|
```bash
|
|
npm run test
|
|
```
|
|
|
|
> Para matriz completa (com/sem banco e Playwright), veja: [docs/TESTES.md](./TESTES.md)
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build
|
|
```
|