Skip to main content

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

ScreenRutaDescripción
PropertyDetailsScreen/property/[id]Detalle completo de la propiedad con galería, amenidades y accesos
ArrivalReviewScreen/property/arrival-reviewRevision de llegada (usa SurveyScreen slug="arrival-review")
RatingReportScreen/property/rating-reportReporte 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étodoPathDescripción
GET/properties/{id}Detalle de propiedad (autenticado)
GET/properties/public/{id}Detalle de propiedad pública (sin autenticación)
GET/properties/{id}/calendarDisponibilidad y calendario de la propiedad
GET/bookings/exchangePropiedades disponibles para intercambio
GET/bookings/rentalPropiedades disponibles para alquiler
GET/properties/publicListado de propiedades públicas
POST/properties/issueReportar un issue en la propiedad
GET/properties/{id}/nps-resultsReporte de calificaciones de la propiedad
GET/properties/{id}/issuesListado 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

HookDescripción
useProperties()Gestión de selección y listado de propiedades del usuario
useProperty(propertyId)Obtiene el detalle de una propiedad individual

Tipos principales

type Property = {
  id: string;
  name: string;
  type: string;
  coverImage?: string;
  description?: string;
  gallery: { path: string }[];
  score?: {
    value: number;
    ratings: number;
    scoreInfo?: string;
    showUrl?: boolean;
  };
  addressInfo: {
    address: string;
    city: string;
    country?: string;
    postalCode?: string;
    latitude: number;
    longitude: number;
    location: { id: string; name: string; picture: string };
  };
  guestManager?: GuestManager;
  characteristics: {
    bedrooms: number;
    bathrooms: number;
    beds: number;
    size?: number | null;
    capacity?: number;
    bathtubs?: number;
    price?: number;
  };
  amenities?: { slug: string; room: string }[];
  accessInfo?: { /* códigos de acceso, WiFi */ };
  parkings?: { /* dirección, spot, código */ }[];
  bookings?: Booking[];
  documents?: { slug: string; url: string }[];
  externalUrl?: string;
  userRole?: UserRoleType;
  matched?: boolean;
  keys?: { peak: number; high: number; mid: number; low: number };
};
No documentar valores reales de precios ni códigos de acceso. Solo documentar la estructura de los tipos. El campo accessInfo contiene datos sensibles (códigos, contraseñas WiFi) que se muestran únicamente al usuario autenticado con el rol correspondiente.

Store

El módulo utiliza usePropertyStore en Zustand para gestionar el estado de propiedades:
EstadoTipoDescripción
selectedPropertyProperty | nullPropiedad actualmente seleccionada
selectedPropertyIdstring | nullID de la propiedad seleccionada
selectedPropertyTypestring | nullTipo de la propiedad seleccionada
selectedPropertyRoleUserRoleType | nullRol del usuario en la propiedad seleccionada
ownedPropertiesListPropertyList[]Lista de propiedades propias del usuario
propertiesProperty[]Propiedades generales (para booking/exchange)
Ver State Management para detalles de la arquitectura de estado.

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).
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.