El panel de reservas
Lo que hace el panel del equipo anfitrión: el resumen, las páginas de la barra lateral, los ajustes de la empresa, las notificaciones y el inicio de sesión.
Para el paquete Full Stack
Páginas
Cada página existe en inglés bajo /en y en árabe bajo /ar. El panel se abre en /en/dashboard, después del inicio de sesión en /en/auth/login. Cada elemento de la barra lateral solo aparece cuando el administrador con sesión iniciada tiene su permiso.
| Elemento de la barra lateral | Ruta | Permiso | Qué hace |
|---|---|---|---|
| Resumen | /en/dashboard | overview.view | La ocupación y los ingresos de este mes, las llegadas y salidas de hoy, y lo que está pendiente. |
| Calendario | /en/dashboard/calendar | calendar.view | Un mes de noches, una fila por alojamiento, con el diálogo de fechas bloqueadas y el registro de bloqueos. |
| Reservas | /en/dashboard/bookings | bookings.view | Reservas con pestañas de estado, búsqueda y filtros, y una página por reserva. |
| Alojamientos | /en/dashboard/stays | stays.view | Los alojamientos con pestañas de estado, búsqueda y filtros, y el editor de alojamientos. |
| Consultas | /en/dashboard/inquiries | inquiries.view | Preguntas de los huéspedes desde el sitio web, con un panel de detalle. |
| Reseñas | /en/dashboard/reviews | reviews.view | Lo que los huéspedes escribieron tras una estancia; publica u oculta cada una. |
| Asistente de IA | /en/dashboard/ai-assistant | ai_chat.use | Un chat que responde con los datos de la empresa y actúa sobre ellos. |
| Ajustes | /en/dashboard/settings | Ninguno (cada pestaña tiene el suyo) | Empresa, Página de inicio, Destinos, Pagos, Perfil y Seguridad. |
| Gestión de administradores | /en/dashboard/admins-management | admins.view | Cuentas del equipo y sus roles. |
| Roles de administrador | /en/dashboard/admins-roles | roles.view | Roles y permisos. |
Una paleta de búsqueda en la barra superior encuentra páginas, alojamientos, reservas y consultas, y la campana guarda las notificaciones. Una página abierta por su dirección sin el permiso muestra en su lugar "No tienes acceso a esta página.", la misma negativa que da la API.
El resumen
- La ocupación, los ingresos y las reservas de este mes, las llegadas y salidas de hoy, y los huéspedes alojados, en la zona horaria de la empresa.
- Ingresos, reservas y ocupación mes a mes durante los últimos doce meses, los alojamientos principales, las reservas por estado y los países de los huéspedes.
- Las llegadas y salidas de hoy, las reservas pendientes, las últimas siete reservas, las últimas reseñas y las consultas abiertas, cada una con un enlace a su página.
- Cada cifra se calcula a partir de las reservas cuando la página la pide, así que nunca está desfasada respecto al calendario.
Reservas
- Un filtro para cada estado con su recuento, una búsqueda por referencia o nombre del huésped, y un rango de fechas de check-in, las más recientes primero, diez por página.
- Una página por reserva, en
/en/dashboard/bookings/<reference>: el alojamiento, el huésped, el desglose del precio, el pago, la cronología, una nota interna que el huésped nunca ve, y los pasos que puede dar: Confirmar, Registrar entrada, Completar y Cancelar. - Un paso que la reserva no puede dar ahora se muestra desactivado con su motivo, como una reserva con tarjeta cuyo pago no ha llegado, en lugar de ocultarse.
Ajustes
Los ajustes tienen seis pestañas. Perfil y Seguridad pertenecen al administrador con sesión iniciada; las demás necesitan un permiso para verlas y otro para guardar.
| Pestaña | Permiso | Qué define |
|---|---|---|
| Empresa | settings.view, settings.edit para guardar | El nombre, el eslogan y la descripción de la empresa en ambos idiomas, el correo electrónico, el teléfono y la línea de dirección de contacto, la moneda (USD), la zona horaria (America/New_York), las horas de check-in y check-out por defecto en una cuadrícula de media hora, y la firma de los mensajes a los huéspedes. |
| Página de inicio | settings.view, settings.edit para guardar | El alojamiento del hero del sitio web, los cuatro alojamientos destacados, en orden (solo alojamientos publicados), y las preguntas que responde la página de inicio, en ambos idiomas. |
| Destinos | destinations.view, y crear, editar o eliminar | El nombre, el eslogan y la descripción de cada zona en ambos idiomas, el slug, la fotografía de portada, el orden y si se muestra. Un destino que aún tiene alojamientos no se puede eliminar. |
| Pagos | settings.view, settings.edit para guardar | Si Stripe y PayPal están configurados en la API y si sus claves son de prueba o reales, si se usa el simulador, el interruptor del pago a la llegada y la política de cancelación que leen los huéspedes. |
| Perfil | Ninguno: cada administrador guarda el suyo | La foto, el nombre y apellido, el correo electrónico y el teléfono del administrador con sesión iniciada. La contraseña se cambia en Seguridad, no aquí. |
| Seguridad | Ninguno | La contraseña del administrador con sesión iniciada. |
Las claves de pago nunca se muestran ni se editan aquí: viven en el .env de la API. El logotipo de la marca tampoco se sube aquí: viene de los archivos de marca del proyecto.
Notificaciones
- Se avisa a todos los administradores que pueden ver reservas cuando se paga una reserva, ya la haya liquidado el webhook de Stripe o de PayPal, la captura de PayPal o el simulador; cuando una reserva con pago a la llegada espera a que el anfitrión la confirme; y cuando se cancela una reserva, con una frase que indica si la terminó el huésped, el equipo o una retención sin pagar que caducó. Una pregunta nueva avisa a todos los administradores que pueden ver consultas, y una reseña nueva a todos los que pueden ver reseñas.
- Llegan en directo, con un mensaje breve en pantalla, y la campana lista las 30 más recientes. Cada una se conserva 30 días, hasta que se lee o se quita.
- No se envía nada por correo: la plantilla no tiene servicio de correo.
- La conexión en directo usa
NEXT_PUBLIC_WEBSOCKET_BASE_URL, la dirección de la API sin/api, y la API la acepta desdeFRONTEND_URL. Una recarga siempre muestra las últimas filas; solo las actualizaciones en directo dependen de la conexión.
Inicio de sesión
- El formulario de inicio de sesión empieza vacío. Recordar este dispositivo mantiene la sesión después de cerrar el navegador, hasta que caduque el token de la API (siete días por defecto); desmárcalo y la sesión termina con el navegador o la pestaña.
- Un correo incorrecto y una contraseña incorrecta se leen igual, "Correo electrónico o contraseña no válidos", así que el formulario nunca dice a nadie qué direcciones tienen cuenta. Tras diez intentos fallidos en quince minutos desde una dirección, el formulario indica que lo intente de nuevo más tarde.
- Cuando la API rechaza una sesión (un token caducado o revocado), el panel cierra la sesión y abre la página de inicio de sesión. Un cambio en los roles de un administrador le llega mientras tiene la sesión iniciada.
- La página de inicio de sesión muestra cuántos alojamientos publica la empresa y cuántos destinos muestra, leídos de los
GET /api/staysyGET /api/destinationspúblicos de la API, junto a los idiomas que incluye el panel; mientras no se puede llegar a la API, muestra solo los idiomas. - La cabecera de la página lleva el logotipo de texto, "Volver al sitio web", el selector de idioma y el selector de tema Sistema, Claro y Oscuro; su pie lleva la línea de derechos de autor y un enlace a la página de privacidad del sitio web. El logotipo, "Volver al sitio web" y el enlace de privacidad abren
NEXT_PUBLIC_SITE_URL, y mientras esté vacío se omiten los dos enlaces y el logotipo no enlaza a ningún sitio.
Cómo encaja el código del panel
Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.
La estructura del código, y las recetas para añadir una página, una traducción y un servicio de API.