Files
localesp/docs/03-decisions.md
2026-05-20 14:05:55 +02:00

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.