# Checklist go-live MallorcaTrabaja

## Seguridad

- [ ] `APP_ENV=production` y `APP_DEBUG=false`
- [ ] HTTPS activo en dominio publico
- [ ] Registro publico sin roles staff (`administrador`, `moderador`)
- [ ] Credenciales admin solo por seed o consola interna
- [ ] `php artisan config:cache` y `route:cache` en produccion

## Base de datos y procesos

- [ ] MySQL/MariaDB configurado en `.env`
- [ ] `php artisan migrate --force`
- [ ] Cron: `* * * * * php artisan schedule:run`
- [ ] Worker: `php artisan queue:work --tries=3` (cola `database`)

## Integraciones

- [ ] Stripe: `STRIPE_SECRET` (`sk_*`), `STRIPE_WEBHOOK_SECRET`, webhook apuntando a `/api/v1/payments/webhook`
- [ ] Stripe: `STRIPE_STRICT_LIVE=true` en produccion
- [ ] FCM: `FCM_PROJECT_ID` + `FCM_CREDENTIALS` (ver `docs/FIREBASE_SETUP.md`)
- [ ] CORS: `CORS_ALLOWED_ORIGINS` con dominios de app/web
- [ ] SMTP (opcional): ver `docs/EMAIL_OPTIONS.md`

## App movil

- [ ] Build con `--dart-define=API_BASE_URL=https://tu-dominio/api/v1`
- [ ] `--dart-define=SHARE_BASE_URL=https://tu-dominio`
- [ ] Firebase configurado si se requiere push
- [ ] APK/AAB firmado para release (sin cleartext en produccion)

## Verificacion final

- [ ] `cd backend && php artisan test`
- [ ] `cd backend && php artisan platform:readiness-check`
- [ ] `GET /api/v1/health` responde `ok`
- [ ] Flujo: registro -> login -> publicar -> buscar -> pagar servicio
- [ ] Panel admin `/admin/login` accesible solo para staff
