# Sistemax Mobile (Flutter)

App movil oficial conectada a `api/mobile/v1`.

## Estado real (2026-05-06)

- Flutter instalado: `3.41.9`.
- Calidad: `flutter analyze` sin issues.
- Pruebas: `flutter test` 3/3 OK.
- Cobertura funcional aproximada: ver [docs/ROADMAP.md](docs/ROADMAP.md) (~92% operativo farmacia).

## Ejecutar local

```bash
cd mobile
flutter pub get
flutter run
```

## Build Android release

Play exige **AAB (App Bundle)**, no APK.

1. Crear archivo `mobile/android/key.properties` desde `mobile/android/key.properties.example`.
2. Completar credenciales reales de keystore (`storeFile` con ruta **absoluta**, fuera del repo).
3. Generar build:

```bash
cd mobile
flutter build appbundle --release
```

**Sin `key.properties` el build de release directamente falla** (no cae a firma `debug`): un
release nunca debe firmarse con la clave de debug, porque Play lo rechaza recién al subirlo.
El build de `--debug` no se ve afectado por esto.

## Estado Fase 1 (cierre)

- Multi-establecimiento mobile v1: implementado (selector de sucursal activa + endpoint session).
- Offline POS critico: implementado (cache local + cola de ventas + sync auto/manual).
- Pantalla de pendientes sync: implementada (`/pending-sync`).
- Push backend/token lifecycle: implementado (register + revoke endpoint).

## Pendiente para producción Android push

- Colocar `mobile/android/app/google-services.json` real del proyecto Firebase.
- Validar recepción real en foreground/background/terminated en dispositivo físico.

Detalle completo: [docs/ROADMAP.md](docs/ROADMAP.md)
