Files
avante-movil/src/config.ts
T
javierandClaude Opus 4.8 9bcc51e3b2 feat(android): app de campo móvil+tablet (UI, mapa, fotos, auto-sync, reconciliación)
Fase 0: config Android (package, permisos, orientación), eas.json (APK), deps
  nativas (react-native-maps, image-picker, location), app.config.js para la key
  de Google Maps por secreto EAS.
Fase 1: capa responsive (useLayout) + componente MasterDetail (dos paneles en
  tablet, navegación en móvil).
Fase 2: pantallas funcionales — detalle de proyecto con secciones Fases/Features/
  Incidencias, edición de progreso/estado, formulario de inspección dinámico
  desde plantilla, incidencias maestro-detalle (checklist + comentarios), alta de
  incidencia; gating por permisos Spatie.
Fase 3: fotos (cámara/galería) → cola de media, con miniaturas pendientes/sync.
Fase 4: mapa de features (Google Maps) con geometría GeoJSON y selección.
Fase 5: auto-sync (foreground/reconexión/intervalo, con candado) + reconciliación
  de creaciones offline (id temporal negativo → server_id, remapeo de FKs hijas).
Fase 6: revisión de conflictos/errores del outbox, indicadores y APK preview.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 18:30:44 +02:00

33 lines
1.2 KiB
TypeScript

/**
* Configuración de la app.
*
* BASE_URL: raíz de la API v1. En despliegue real apunta a `https://<host>/api/v1`.
* Ojo: desde un dispositivo físico/emulador "localhost" NO es la máquina de desarrollo:
* - Emulador Android: usa `http://10.0.2.2/...`
* - Dispositivo físico: usa la IP LAN del PC, p.ej. `http://192.168.1.50/...`
* Ajusta DEV_HOST a tu entorno o sobreescribe BASE_URL.
*/
const DEV_HOST = 'http://10.0.2.2/construprogress/public';
export const BASE_URL = `${DEV_HOST}/api/v1`;
/** Raíz del host (para resolver URLs relativas de media, p.ej. `/storage/...`). */
export const ORIGIN = DEV_HOST;
/** Convierte una url de media (posiblemente relativa) en absoluta. */
export function absoluteUrl(url?: string | null): string | undefined {
if (!url) return undefined;
if (/^https?:\/\//i.test(url)) return url;
return `${ORIGIN}${url.startsWith('/') ? '' : '/'}${url}`;
}
/** Se envía en cada petición como cabecera X-App-Version (ver protocolo §7). */
export const APP_VERSION = '1.0.0';
/** Nombre de la BD SQLite local. */
export const DB_NAME = 'avante.db';
/** Ability que el backend exige al token (ver brief §2). */
export const TOKEN_ABILITY = 'mobile-sync';