saveinmed/frontend/README.md
caio-machado-dev bf85072bff chore: remove legacy services and restructure monorepo
- remove backend-old (Medusa), saveinmed-frontend (Next.js/Appwrite) and marketplace dirs
- split Go usecases by domain and move notifications/payments to infrastructure
- reorganize frontend pages into auth, dashboard and marketplace modules
- add Makefile, docker-compose.yml and architecture docs
2026-02-25 16:51:34 -03:00

61 lines
2 KiB
Markdown

# Frontend — SaveInMed Marketplace
React + Vite + TypeScript + Tailwind CSS
## Estrutura de `src/`
```
src/
├── assets/ → Logo, imagens estáticas
├── components/ → Componentes reutilizáveis
├── context/ → React Context (auth, tema) — estado global estável
├── hooks/ → Custom hooks
├── layouts/ → Layouts de página (Shell, DashboardLayout)
├── pages/ → Páginas organizadas por contexto e perfil
│ ├── auth/ → Login
│ ├── marketplace/ → Search, Cart, Checkout, Orders, OrderDetails
│ └── dashboard/
│ ├── admin/ → Painel administrativo (role admin)
│ ├── seller/ → Inventário, Produtos, Carteira, Equipe
│ ├── employee/ → Dashboard do colaborador
│ ├── delivery/ → Dashboard do entregador
│ ├── Company.tsx
│ └── MyProfile.tsx
├── services/ → Clientes HTTP por domínio
├── stores/ → Zustand (carrinho, filtros, UI global)
├── types/ → Tipos TypeScript compartilhados
└── utils/ → format, jwt, logger
```
## Importações absolutas
Utilize o alias `@/` (aponta para `src/`):
```tsx
// ✅ Correto
import { useAuth } from '@/context/AuthContext'
// ❌ Evitar (quebra ao mover o arquivo)
import { useAuth } from '../../context/AuthContext'
```
## Gerenciamento de estado
| Estado | Estratégia |
|--------|-----------|
| Auth (JWT, user) | Context API (`AuthContext`) |
| Tema claro/escuro | Context API (`ThemeContext`) |
| Carrinho | Zustand (`cartStore`) |
| Filtros de busca | Zustand / `usePersistentFilters` |
| Estado UI local | `useState` no componente |
> **Regra:** Context apenas para auth e tema. Tudo mais vai para Zustand.
## Scripts
```bash
pnpm dev # Dev server (proxy → :8214)
pnpm build # Build produção
pnpm test # Testes (Vitest)
pnpm lint # ESLint
```