# Kasy App

Flutter app com backend API REST — gerado pelo kasy.

---

## Como começar

```sh
flutter run          # detecta o dispositivo automaticamente
make run-ios         # iOS
make run-android     # Android
```

**Dispositivo físico via cabo**
- iOS: conecte o iPhone → confie neste computador → Xcode → Window → Devices → parear
- Android: Configurações → Opções do desenvolvedor → ativar depuração USB

**URL do backend** está configurada em `.vscode/launch.json` via `--dart-define=BACKEND_URL=...`.
Para atualizar a URL, edite diretamente esse arquivo.

---

## Chaves e credenciais

Este projeto usa dois tipos de credenciais. Entender a diferença evita confusão na hora de configurar.

### Chaves do app (ficam no projeto)

Ficam no `.vscode/launch.json` como variáveis de ambiente de build (`--dart-define`). O Flutter lê via `String.fromEnvironment()`. **Nunca vão para o servidor.**

| Variável | Módulo | Como obter |
|----------|--------|------------|
| `BACKEND_URL` | API REST | URL da sua API |
| `RC_TEST_KEY` | RevenueCat | Dashboard RevenueCat → Apps → Test Store (chave `test_`, vale iOS+Android, usada automaticamente em simulador) |
| `RC_IOS_PROD_KEY` | RevenueCat | Dashboard RevenueCat → Apps → App Store (chave `appl_`, usada automaticamente em iPhone físico) |
| `RC_ANDROID_PROD_KEY` | RevenueCat | Dashboard RevenueCat → Apps → Google Play (chave `goog_`, usada automaticamente em Android físico) |
| `SENTRY_DSN` | Sentry | Dashboard Sentry → Projeto → DSN |
| `MIXPANEL_TOKEN` | Mixpanel | Dashboard Mixpanel → Configurações → Token |

Para atualizar, edite o `.vscode/launch.json`.

---

## Internacionalização (i18n)

O app suporta **3 idiomas**: inglês (`en`), português (`pt`) e espanhol (`es`).

### Como o idioma é escolhido

```
App abre
  ├─ Tem idioma salvo pelo usuário? → usa o salvo
  └─ Não tem → lê o idioma do celular/browser
                ├─ É en, pt ou es? → usa esse idioma
                └─ Não é nenhum desses → usa o idioma padrão (base_locale)
```

### Mudar o idioma padrão (fallback)

**`slang.yaml`**
```yaml
base_locale: pt   # trocar aqui: en | pt | es
```

Depois rodar:
```sh
dart run slang
```

### Adicionar ou editar traduções

Os arquivos ficam em `lib/i18n/`:
- `en.i18n.json` — inglês
- `pt.i18n.json` — português
- `es.i18n.json` — espanhol

Após editar qualquer `.i18n.json`, sempre rodar `dart run slang`.

---

## Segurança

O `.gitignore` já exclui: `.env`, `.env.*`, `*.pem`, `*.keystore`.

Nunca comite credenciais no repositório.
