Documentation Index
Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Descripción
El módulo Property gestiona el detalle completo de propiedades, disponibilidad, reportes de calificación e issues. Incluye propiedades propias y públicas (para intercambio y alquiler).- Ubicación:
src/modules/property/
Screens
| Screen | Ruta | Descripción |
|---|---|---|
PropertyDetailsScreen | /property/[id] | Detalle completo de la propiedad con galería, amenidades y accesos |
ArrivalReviewScreen | /property/arrival-review | Revision de llegada (usa SurveyScreen slug="arrival-review") |
RatingReportScreen | /property/rating-report | Reporte de calificaciones e issues de la propiedad |
La ruta
/property/arrival-review usa el motor genérico de encuestas del módulo Surveys con
slug="arrival-review" y scopeType="booking". La implementación custom anterior
(ArrivalReviewForm) fue eliminada. Ver Surveys para detalles del motor.API Endpoints
| Método | Path | Descripción |
|---|---|---|
GET | /properties/{id} | Detalle de propiedad (autenticado) |
GET | /properties/public/{id} | Detalle de propiedad pública (sin autenticación) |
GET | /properties/{id}/calendar | Disponibilidad y calendario de la propiedad |
GET | /bookings/exchange | Propiedades disponibles para intercambio |
GET | /bookings/rental | Propiedades disponibles para alquiler |
GET | /properties/public | Listado de propiedades públicas |
POST | /properties/issue | Reportar un issue en la propiedad |
GET | /properties/{id}/nps-results | Reporte de calificaciones de la propiedad |
GET | /properties/{id}/issues | Listado de issues (soporta filtro por status y paginación) |
Los endpoints de arrival-review y stay-review fueron migrados al módulo Surveys
(
/surveys/mobile/arrival-review, /surveys/mobile/stay-review). Ver
Surveys.Hooks
| Hook | Descripción |
|---|---|
useProperties() | Gestión de selección y listado de propiedades del usuario |
useProperty(propertyId) | Obtiene el detalle de una propiedad individual |
Tipos principales
Store
El módulo utilizausePropertyStore en Zustand para gestionar el estado de propiedades:
| Estado | Tipo | Descripción |
|---|---|---|
selectedProperty | Property | null | Propiedad actualmente seleccionada |
selectedPropertyId | string | null | ID de la propiedad seleccionada |
selectedPropertyType | string | null | Tipo de la propiedad seleccionada |
selectedPropertyRole | UserRoleType | null | Rol del usuario en la propiedad seleccionada |
ownedPropertiesList | PropertyList[] | Lista de propiedades propias del usuario |
properties | Property[] | Propiedades generales (para booking/exchange) |
Features
El módulo organiza funcionalidades complejas en sub-features:rating-report
Reporte de calificaciones con secciones de score, feedback de llegada, mantenimiento y
habitaciones. Hook:
useRatingReport.issues
Gestión de issues reportados con listado, detalle, filtro por status (active, pending, upgrade,
closed) y paginación. Hook:
useIssues.La feature
arrival-review fue migrada al módulo Surveys. La ruta /property/arrival-review
ahora renderiza SurveyScreen slug="arrival-review". El directorio features/arrival-review/ y
sus componentes custom (ArrivalReviewForm, ArrivalReviewCard, CommentInput, ProgressBar)
fueron eliminados.Componentes destacados
PropertyDetails
Vista completa de la propiedad con todas sus secciones: héroe, galería, características,
amenidades y accesos.
PropertyHero
Imagen principal de la propiedad con overlay de información básica.
PropertyGalleryModal
Modal de galería de imágenes a pantalla completa con navegación.
PropertyCard
Tarjeta resumen de propiedad para listados, con imagen, nombre y ubicación.
PropertiesFilter
Componente de filtrado de propiedades en listados.
PropertyLabels
Etiquetas visuales de la propiedad (tipo, estado, temporada).
- Propiedad autenticada
- Propiedad pública
El endpoint
GET /properties/{id} requiere autenticación y devuelve información completa
incluyendo accessInfo, parkings y bookings asociados. Los datos sensibles solo se muestran
según el userRole.