feat: implement customer registration flow and business hours system

Major changes:
- Add customer registration with email/phone lookup (app/booking/registro)
- Add customers API endpoint (app/api/customers/route)
- Implement business hours for locations (mon-fri 10-7, sat 10-6, sun closed)
- Fix availability function type casting issues
- Add business hours utilities (lib/utils/business-hours.ts)
- Update Location type to include business_hours JSONB
- Add mock payment component for testing
- Remove Supabase auth from booking flow
- Fix /cita redirect path in booking flow

Database migrations:
- Add category column to services table
- Add business_hours JSONB column to locations table
- Fix availability functions with proper type casting
- Update get_detailed_availability to use business_hours

Features:
- Customer lookup by email or phone
- Auto-redirect to registration if customer not found
- Pre-fill customer data if exists
- Business hours per day of week
- Location-specific opening/closing times
This commit is contained in:
Marco Gallegos
2026-01-17 00:48:49 -06:00
parent 583a25a6f6
commit e3c4f30648
7 changed files with 455 additions and 88 deletions

211
docs/site_requirements.md Normal file
View File

@@ -0,0 +1,211 @@
# Anchor:23 — Site Requirements
Documento de ejecución para OpenCode / Codex.
Define identidad visual, estructura del sitio, copy y reglas de implementación.
---
## 1. Objetivo del sitio
* Representar a Anchor:23 como concepto de belleza de ultra lujo.
* Comunicar exclusividad basada en estándar, no en aspiración.
* Separar marca institucional de sistemas operativos (booking / kiosk).
* Convertir sin presión: membresía y cita.
---
## 2. Arquitectura de dominios
* `anchor23.mx` — Sitio institucional
* `booking.anchor23.mx` — Sistema de reservas (The Boutique)
* `kiosk.anchor23.mx` — UI táctil en sucursal
El sitio **anchor23.mx** no contiene lógica compleja.
Es contenido, marca y narrativa.
---
## 3. Paleta de Color
### Base
* Bone White `#F6F1EC` — fondo principal
* Soft Cream `#EFE7DE` — bloques y secciones
* Mocha Taupe `#B8A89A` — íconos y divisores
* Deep Earth `#6F5E4F` — botones primarios
* Charcoal Brown `#3F362E` — texto principal / footer
Reglas:
* Sin colores saturados
* Sin gradientes
* Sin sombras duras
---
## 4. Tipografía
### Headings
* Serif editorial sobria
* Ejemplos: The Seasons, Canela
### Body / UI
* Sans neutral
* Ejemplos: Inter, DM Sans
Reglas:
* Mucho espacio
* Jerarquía estricta
* Peso visual contenido
---
## 5. Layout
* Grid amplio
* Márgenes generosos
* Ritmo vertical lento
* Espacio negativo dominante
Nunca:
* UI densa
* Animaciones llamativas
* Efectos innecesarios
---
## 6. Header
### Navegación
* Inicio
* Nosotros
* Servicios
* Membresías
CTA principal:
* Solicitar Membresía
---
## 7. Landing Page
### Hero
**Título**
ANCHOR:23
**Subtítulo**
Belleza anclada en exclusividad
**Texto**
Un estándar exclusivo de lujo y precisión.
**CTAs**
* Ver servicios
* Solicitar cita
---
### Fundamento
**Título**
Fundamento
**Subtítulo**
Nada sólido nace del caos
**Texto**
Anchor:23 nace de la unión de dos creativos que creen en el lujo no como promesa, sino como estándar.
Aquí, lo excepcional es norma: una experiencia exclusiva y coherente, diseñada para quienes entienden que el verdadero lujo está en la precisión, no en el exceso.
---
### Servicios Exclusivos (Preview)
#### Spa de Alta Gama
Sauna y spa excepcionales, diseñados para el rejuvenecimiento y el equilibrio.
#### Arte y Manicure de Precisión
Estilización y técnica donde el detalle define el resultado.
#### Peinado y Maquillaje de Lujo
Transformaciones discretas y sofisticadas para ocasiones selectas.
CTA:
* Ver todos los servicios
---
### Testimonios
Título:
Testimonios
Ejemplos:
* "La atención al detalle define el lujo real." — Gabriela M.
* "Exclusivo sin ser pretencioso." — Lorena T.
CTA:
* Solicitar Membresía
---
## 8. Footer
Contenido:
* Marca y ciudad
* Links: Nosotros, Servicios, Contacto
* Legal: Privacy Policy, Legal
* Teléfono y correo
---
## 9. Páginas internas
### /servicios
* Listado completo
* CTA a booking.anchor23.mx
### /historia
* Origen de Anchor
* Significado de : y 23
### /contacto
* Formulario
* Datos de contacto
### /franchises
* Modelo: una sucursal por ciudad
* No franquicia masiva
---
## 10. Principios de ejecución
* HTML semántico
* CSS limpio
* JS mínimo
* Accesibilidad básica
* Performance sobre efectos
El sitio debe sentirse silencioso, sólido y permanente.