Saltar al contenido principal

Configuración

Base path: /api/settings

GET /settings

Obtener toda la configuración.

Auth: Admin

Response: Objeto settings único (id=1). Los campos sensibles se enmascaran como "********".


PUT /settings

Actualizar configuración. Solo se actualizan los campos presentes en el body.

Auth: Admin

nota

Al poner purchase_orders_enabled en 0, internal_consumption_enabled también se pone en 0 automáticamente. Poner internal_consumption_enabled en 1 mientras purchase_orders_enabled es 0 devuelve un error 400.


Subir logo del salón.

Auth: Admin

Content-Type: multipart/form-data — campo logo, máx 5MB.


POST /settings/test-email

Enviar email de prueba para verificar configuración SMTP.

Auth: Admin

Request body: { "to": "test@example.com" }


Ubicaciones

Las ubicaciones se gestionan a través de una ruta separada en /api/locations (no bajo /api/settings).

GET/POST/PUT/DELETE bajo /api/locations y /api/locations/:id — requieren auth() o auth('admin').


Festivos / IVA

Endpoints CRUD estándar bajo /api/settings:

  • Festivos: GET/POST /settings/holidays, DELETE /settings/holidays/:id
  • Tipos de IVA: GET/POST /settings/vat-rates, PUT/DELETE /settings/vat-rates/:id

Horarios de apertura

Los horarios se configuran durante la instalación inicial (POST /api/auth/setup) y se almacenan en la tabla opening_hours. No existe un endpoint REST separado para modificarlos después de la instalación.


Funciones activables

General

ConfiguraciónPor defectoDescripción
swipe_actions_enabled1Gestos de deslizamiento (móvil)
haptic_feedback_enabled1Retroalimentación háptica (móvil)
longpress_contact_enabled1Mantener pulsado para llamar/escribir (móvil)
offline_mode_enabled1Caché offline para la app móvil
staff_personal_agenda_enabled1El empleado ve solo su propia agenda

Inventario y compras

ConfiguraciónPor defectoDescripción
purchase_orders_enabled1Pedidos de compra y proveedores. Si false, quantity_on_hand es editable directamente
internal_consumption_enabled1Pestaña de consumo interno. Requiere purchase_orders_enabled = true

Dashboard y análisis

ConfiguraciónPor defectoDescripción
daily_revenue_goal_enabled0Objetivo de ingresos diarios en el dashboard
daily_revenue_goal0Importe objetivo diario
revenue_forecast_enabled0Widget de previsión de ingresos
visit_frequency_alerts_enabled0Alerta cuando los clientes llevan mucho tiempo sin venir
visit_frequency_days42Umbral de días para alertas de frecuencia

CRM y marketing

ConfiguraciónPor defectoDescripción
followup_sequences_enabled0Secuencias de seguimiento automático tras citas
product_recommendations_enabled0Recomendaciones de productos
giftcard_qr_enabled0Códigos QR en emails de tarjetas regalo
seasonal_promotions_enabled0Promociones estacionales automáticas
bulk_campaigns_enabled0Campañas de email masivo
waitlist_position_enabled0Mostrar posición en lista de espera

Notificaciones

ConfiguraciónPor defectoDescripción
notify_salon_waitlist_join1Notificar al salón cuando alguien se une a la lista
notify_salon_slot_available1Notificar cuando hay un hueco disponible
noshow_email_enabled1Email al cobrar tarifa de no presentación
low_stock_email_enabled1Email de stock bajo
booking_request_notify_email1Email al admin para nueva solicitud de reserva (provisional)
booking_request_notify_push1Notificación push al admin para nueva solicitud de reserva (provisional)

Tarifas de no presentación

ConfiguraciónPor defectoDescripción
noshow_enabled0Cobro automático vía Stripe
noshow_fee_typepercentagepercentage o fixed
noshow_fee_value50Porcentaje (0-100) o importe fijo
noshow_min_amount0Importe mínimo de tarifa

Configuración de fidelidad

El programa de fidelidad se gestiona mediante una ruta separada en /api/loyalty. El flag loyalty_enabled está en la tabla loyalty_settings, no en la tabla principal settings.

GET /loyalty/settings — Obtener configuración de fidelidad.

PUT /loyalty/settings — Actualizar configuración de fidelidad. Auth: Admin