Files
AnchorOS/PRD.md
Marco Gallegos d27354fd5a feat: Add kiosk management, artist selection, and schedule management
- Add KiosksManagement component with full CRUD for kiosks
- Add ScheduleManagement for staff schedules with break reminders
- Update booking flow to allow artist selection by customers
- Add staff_services API for assigning services to artists
- Update staff management UI with service assignment dialog
- Add auto-break reminder when schedule >= 8 hours
- Update availability API to filter artists by service
- Add kiosk management to Aperture dashboard
- Clean up ralphy artifacts and logs
2026-01-21 13:02:06 -06:00

317 lines
9.4 KiB
Markdown

# PRD — AnchorOS
**Codename: Adela**
## 1. Objetivo
AnchorOS es un sistema operativo para salones de belleza orientado a agenda, pagos, membresías e invitados, con reglas estrictas de tiempo, seguridad y automatización.
---
## 2. Principios del Sistema
* UTC-first en todo el backend.
* UUID como identificador primario interno.
* Short ID solo para referencia humana.
* Automatismos auditables.
* PRD como única fuente de verdad.
---
## 3. Roles y Membresías
### 3.1 Tiers
* Free
* Gold
* Black
* VIP
### 3.2 Tier Gold — Beneficios
* Acceso prioritario a agenda.
* Beneficios financieros definidos en pricing.
* Invitaciones semanales.
### 3.3 Ecosistema de Exclusividad (Invitaciones)
* Cada cuenta Tier Gold tiene **5 invitaciones semanales**.
* Las invitaciones **se resetean cada semana** (Lunes 00:00 UTC).
* El reseteo es automático mediante:
* Supabase Edge Function **o**
* Cron Job externo.
* El proceso debe ser:
* Idempotente.
* Auditado en `audit_logs`.
### 3.4 Jerarquía de Roles
* **Admin**: Acceso total. Puede ver PII de clientes y hacer ajustes.
* **Manager**: Acceso operacional. Puede ver PII de clientes y hacer ajustes.
* **Staff**: Nivel de coordinación. Puede ver PII de clientes y hacer ajustes.
* **Artist**: Nivel de ejecución. **Solo puede ver nombre y notas** del cliente. No ve email ni phone.
* **Kiosk**: Acceso limitado para dispositivos táctiles. No puede acceder a PII de clientes.
* **Customer**: Nivel más bajo. Solo puede ver sus propios datos.
---
## 4. Gestión de Tiempo y Zonas Horarias
* **Todos los timestamps se almacenan en UTC**.
* `locations.timezone` define la zona local del salón.
* Conversión a hora local:
* Solo en frontend.
* Solo en notificaciones (WhatsApp / Email).
* Backend, reglas de negocio y validaciones **operan exclusivamente en UTC**.
---
## 5. Agenda y Bookings
### 5.1 Identificadores
* Cada booking tiene:
* `id` (UUID, primario).
* `short_id` (6 caracteres alfanuméricos).
### 5.2 Short ID — Reglas
* Se genera antes de persistir el booking.
* Debe verificarse unicidad.
* Si existe colisión:
* Reintentar generación hasta ser único.
* El Short ID:
* Es referencia de pago.
* Es identificador operativo.
* **No sustituye** el UUID.
---
## 6. Pagos
* Stripe como proveedor principal con webhooks para eventos de pago.
* El Short ID se utiliza como referencia visible para clientes.
* UUID se mantiene interno para integridad de datos.
* Lógica de depósitos dinámicos: $200 fijo vs 50% del servicio según timing.
* Sistema automático de penalizaciones por no-show con posibilidad de waivers.
* Soporte para múltiples métodos de pago en POS (efectivo, tarjeta, transferencias, giftcards, membresías).
---
## 7. Auditoría
* Toda acción automática o crítica debe registrarse en `audit_logs`.
* Incluye:
* Reseteo de invitaciones.
* Cambios de estado de bookings.
* Eventos de pago.
---
## 8. Límites de los Agentes de IA
* Ningún agente puede modificar reglas aquí descritas.
* Toda implementación debe alinearse estrictamente a este PRD.
---
## 9. Estado del Documento
Este PRD es la fuente única de verdad funcional del sistema AnchorOS y refleja el estado actual de implementación.
---
## 10. Tecnologías Utilizadas
### Frontend
- **Next.js 14** (App Router) con React 18 y TypeScript
- **Tailwind CSS** para estilos
- **Radix UI** para componentes accesibles
- **Framer Motion** para animaciones
- **React Hook Form + Zod** para validación de formularios
- **date-fns + date-fns-tz** para manejo de fechas
- **DnD Kit** para drag & drop
### Backend e Infraestructura
- **Supabase** (PostgreSQL + Auth + RLS + Storage)
- **Stripe** para procesamiento de pagos
- **Google APIs** para integración de calendario
- **Resend** para envío de emails
- **Formbricks** para feedback de usuarios
### Desarrollo
- **ESLint** para linting
- **PostCSS + Autoprefixer** para CSS
- **html2canvas + jsPDF** para generación de PDFs
---
## 11. Arquitectura del Sistema
AnchorOS implementa una arquitectura multi-dominio para separación clara de responsabilidades:
- **anchor23.mx**: Portal administrativo principal
- **booking.anchor23.mx**: Sistema de reservas públicas
- **aperture.anchor23.mx**: Dashboard operativo (Aperture HQ)
- **kiosk.anchor23.mx**: Sistema de quioscos táctiles
### Base de Datos
- **15+ tablas** con relaciones normalizadas
- **RLS policies** estrictas para control de acceso
- **UUIDs primarios** con Short IDs para referencias humanas
- **Auditoría completa** en `audit_logs`
---
## 12. Funcionalidades Implementadas
### Sistema de Quioscos
- Autenticación por API keys de 64 caracteres
- Creación de reservas walk-in con asignación inteligente
- Interfaz touch-friendly optimizada
- Restricciones de PII (no acceso a datos personales)
### Motor de Disponibilidad
- Asignación prioritaria: makeup > lashes > pedicure > manicure
- Detección de conflictos de recursos
- Soporte para servicios duales
- Sincronización con Google Calendar
### Gestión de Membresías Avanzada
- **Free**: Acceso básico
- **Gold**: Prioridad en agenda, 5 invitaciones semanales, beneficios financieros
- **Black**: Beneficios premium adicionales
- **VIP**: Acceso completo incluyendo galería privada
### Sistema de Pagos Completo
- Webhooks de Stripe para eventos de pago
- Lógica automática de no-shows
- Sistema de waivers para penalizaciones
- Múltiples métodos de pago en POS
### Dashboard Operativo (Aperture HQ)
- KPIs en tiempo real (ventas, reservas, clientes)
- Calendario maestro multi-columna
- Gestión completa de staff y recursos
- Reportes financieros y operativos
---
## 13. Estado Actual del Proyecto
**Nivel de Completitud: ~97%**
### Fortalezas
- Arquitectura sólida con separación clara de dominios
- Seguridad de primer nivel con RLS y auditoría completa
- Núcleo listo para producción (pagos, reservas, dashboards)
- Diseño escalable con soporte multi-ubicación
- Documentación exhaustiva (80+ archivos con JSDoc)
### Calidad Técnica
- Código bien estructurado con TypeScript
- Pruebas automatizadas en proceso
- Integraciones robustas (Stripe, Google Calendar)
- UI/UX optimizada para diferentes dispositivos
---
## 14. Trabajo Pendiente (3%)
### Mejoras Opcionales en Calendar Maestro
- Redimensionamiento de bloques (drag en el borde inferior)
- Vistas semanales/mensuales adicionales
### The Vault (Opcional)
- Almacenamiento privado de fotos para clientes VIP
### Transferencias Cross-Location (Opcional)
- Movimiento de staff entre ubicaciones
---
## 15. Fases Futuras
### Fase 7: Automatización y Lanzamiento
- Notificaciones WhatsApp (confirmaciones, recordatorios, no-shows)
- Recibos digitales por email
- Landing page pública para adquisición de clientes
- Optimización SEO (robots.txt, sitemap.xml)
### Fase 8: Características Avanzadas
- Sincronización completa de Google Calendar
- Campañas de marketing (emails/WhatsApp masivos)
- Precios dinámicos basados en tiempo
- Integraciones externas (Instagram/Facebook shopping)
---
## 16. Validación y Testing
### Pruebas Unitarias
- Generador de Short IDs
- Funciones de disponibilidad
- Lógica de asignación de recursos
### Pruebas de Integración
- Flujos completos de reserva
- Procesamiento de pagos
- Sincronización de calendario
### Validación en Producción
- Testing de migración en entorno live
- Validación de rendimiento con carga real
---
## 17. Roadmap de Desarrollo
### Fase 1: Infraestructura Core ✅
- [x] Configurar estructura del proyecto con timestamps UTC en backend
- [x] Implementar UUID como claves primarias para todas las entidades
- [x] Agregar generación de Short ID con verificación de unicidad
- [x] Crear control de acceso basado en roles (Admin, Manager, Staff, Artist, Customer, Kiosk)
- [x] Implementar manejo de zonas horarias (UTC en backend, local en frontend)
- [x] Agregar logging de auditoría para acciones automáticas
### Fase 2: Sistema de Bookings y Agenda ✅
- [x] Construir sistema de bookings con funcionalidad de agenda
- [x] Implementar motor de disponibilidad con asignación inteligente de recursos
- [x] Integrar Google Calendar para sincronización bidireccional
- [x] Soporte para servicios de doble capacidad (2 artistas)
### Fase 3: Sistema de Pagos ✅
- [x] Integrar pagos con Stripe usando short ID como referencia
- [x] Implementar lógica de depósitos dinámicos ($200 vs 50%)
- [x] Sistema de penalizaciones por no-show con waivers
### Fase 4: Dashboard Aperture HQ (100% completado)
- [x] Dashboard principal con KPIs y métricas operativas
- [x] Calendar Maestro con vista multi-columna y drag & drop
- [x] Gestión de staff y recursos (CRUD completo)
- [x] Sistema de comisiones y nómina
- [x] Reportes diarios de cierre (PDF)
- [x] Creación de citas desde slots vacíos en calendario
- [ ] Mejoras opcionales en calendario (resize de bloques, vista semanal/mensual)
### Fase 5: Gestión de Clientes y Lealtad ✅
- [x] Crear niveles de membresía (Free, Gold, Black, VIP) con beneficios
- [x] Sistema CRM con búsqueda fonética y notas técnicas
- [x] Implementar sistema de invitaciones para tier Gold (5 semanales, reseteables)
- [x] Sistema de puntos de lealtad independientes de tiers
- [x] Galería de fotos restringida a tiers premium
### Fase 6: Finanzas y Reportes ✅
- [x] Sistema POS con múltiples métodos de pago
- [x] Reportes de rendimiento por staff
- [x] Seguimiento de gastos operativos
- [x] Analytics financieros (ingresos, gastos, utilidades)