# Registro de decisiones Lista corta y cronológica de decisiones que merecen ser revisadas más adelante. Formato ADR ligero. ## D-001: SPA de una sola página **Contexto**: el uso principal es ver un mapa y unos detalles. **Decisión**: una sola página, sin router. El formulario es un panel/modal en la misma vista. **Consecuencia**: si en el futuro hay vistas adicionales (estadísticas, perfil del negocio en URL propia), habrá que introducir React Router. Reevaluar cuando aparezca el segundo caso de uso navegable. ## D-002: Capa de servicios **Decisión**: todo acceso a datos pasa por `src/services/businessRepository.js`. **Razón**: cumplir Dependency Inversion (SOLID). Los componentes no saben si los datos vienen de un mock, de Supabase o de un JSON. **Consecuencia**: cambiar de proveedor es modificar un único archivo. ## D-003: Modelo de datos mínimo Campos del negocio: - `id` (string) - `name` (string) - `category` (string) - `address` (string) - `description` (string) - `contact` (string, opcional) - `lat` (number) - `lng` (number) - `status` (`pending` | `approved` | `rejected`) - `createdAt` (ISO string) Sin slugs, sin fotos, sin tags. Reevaluar tras feedback de la comunidad. ## D-004: Sin autenticación en el prototipo **Razón**: el visitante no necesita cuenta. El moderador opera en el panel del backend. **Reevaluar si**: aparecen casos de uso que requieran identidad (favoritos, edición por el dueño del negocio). ## D-005: Idioma El prototipo está en español, sin i18n. Si la organización quiere expandirse, añadir `react-i18next` cuando exista una segunda lengua real, no antes. ## D-006: Mock de datos en el prototipo El repositorio entregado usa un mock en memoria con varios negocios de ejemplo. La organización debe decidir el backend antes de pasar a producción. La interfaz del repositorio (`getApproved`, `submit`) está pensada para mapearse 1:1 a Supabase u otro BaaS.