1.9 KiB
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.