# belezaki! · Mobile (Expo + React Native)

App nativo iOS + Android dos donos/profissionais de salão. Stack idêntica à web — mesma API, mesmas regras.

## Stack

- **Expo SDK 51** + React Native 0.74
- **React Navigation 6** (stack + bottom tabs)
- **Zustand** (estado global) + **TanStack Query** (cache server)
- **Expo Secure Store** (sessão)
- **Expo Linear Gradient** (paleta dopamine)
- **TypeScript strict**

## Telas implementadas

| Tela | Rota | O que faz |
|---|---|---|
| Login | `/login` | E-mail + senha, sessão persistida em SecureStore |
| Dashboard | `/dashboard` | KPIs hoje + top serviços + sugestão IA |
| Agenda | `/agenda` | Date picker + lista visual de slots por status |
| Clientes | `/clientes` | Busca + lista com tier (Bronze→Diamante) |
| WhatsApp | `/whatsapp` | Inbox de conversa simples |
| Assistant | `/assistant` | Chat com belezaki! AI + sugestões |

## Rodar local

```bash
cd apps/mobile
pnpm install
pnpm start          # abre Metro bundler
# i = iOS sim, a = Android emulator, w = web
```

Pré-requisitos: Xcode (iOS) ou Android Studio (Android).

Pra rodar em device físico: instale **Expo Go** e escaneie o QR.

## Build de produção

```bash
# preview (TestFlight + APK interno)
pnpm build:ios
pnpm build:android

# produção (App Store + Play Store)
eas build --platform all --profile production
eas submit --platform all
```

Antes do primeiro build:
```bash
npx eas-cli login
npx eas-cli build:configure
```

## Estrutura

```
apps/mobile/
├── App.tsx                    # Root + navigation
├── app.json                   # Expo config
├── eas.json                   # Build profiles
├── babel.config.js
├── tsconfig.json
└── src/
    ├── lib/
    │   ├── api.ts             # Cliente HTTP (espelha web/lib/api)
    │   ├── store.ts           # Auth Zustand
    │   └── theme.ts           # Design tokens dopamine
    ├── components/
    │   ├── Logo.tsx
    │   └── ui.tsx             # Button, Input, Card, KPI
    └── screens/
        ├── Login.tsx
        ├── Dashboard.tsx
        ├── Agenda.tsx
        ├── Clientes.tsx
        ├── Whatsapp.tsx
        └── Assistant.tsx
```

## Próximos passos (sprint 27+)

- [ ] Push notifications (lembretes + WhatsApp)
- [ ] Câmera offline pra antes/depois (Prontuário)
- [ ] Modo offline com SQLite + sync na reconexão
- [ ] Comanda no app (atender cliente)
- [ ] Apple Wallet pass (cliente final)
- [ ] Widgets iOS 16+ (faturamento do dia)
- [ ] App Clip (booking sem instalar)

## Paleta visual

Idêntica à web: **dopamine purple** (`#a855f7` → `#d946ef` → `#ec4899`).
Background `#1F1B2E` (preto roxeado), surface `#1a0a2e`.

A logo é renderizada vetorialmente em `<Logo />` — gradiente em runtime via `expo-linear-gradient`.
