Primer prototipo
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user