====== Sprint 18 — Distribution, OTA & Channel Manager ====== ===== Objectif du Sprint ===== Transformer la plateforme en véritable Channel Manager capable de diffuser automatiquement les biens sur les principaux canaux de réservation et de synchroniser les disponibilités, les tarifs et les réservations en temps réel. À l'issue du Sprint 18 : * Les biens sont publiés sur plusieurs plateformes * Les calendriers sont synchronisés * Les tarifs sont synchronisés * Les réservations sont synchronisées * Les surréservations sont évitées * Les gestionnaires pilotent tous les canaux depuis une seule interface Ce sprint constitue une étape stratégique majeure pour la commercialisation des biens. ---- ====== Vision Architecture ====== ===== Architecture cible ===== Plateforme ↓ Channel Manager ├── Airbnb ├── Booking.com ├── Vrbo / Abritel ├── Google Vacation Rentals ├── Expedia └── iCal ↓ Synchronisation ↓ Catalogue Central ---- ===== Source de vérité ===== La plateforme reste la source principale : Biens Tarifs Disponibilités Réservations Les OTA reçoivent les données synchronisées. ---- ====== Périmètre ====== ===== Modules concernés ===== ChannelManagerModule OTAModule DistributionModule AvailabilitySyncModule RateSyncModule ReservationSyncModule ICalModule ---- ====== User Stories ====== ===== US-1801 : Connecter un canal ===== **En tant qu'administrateur** Je souhaite connecter une plateforme OTA Afin de diffuser mes biens. ---- ===== Endpoint ===== POST /channels/connect ---- ===== Plateformes ===== Airbnb Booking.com Vrbo Expedia Google VR ---- ===== Données ===== Compte Clé API Identifiant OTA Configuration ---- ====== US-1802 : Consulter les canaux connectés ====== ===== Endpoint ===== GET /channels ---- ===== Informations ===== Canal Statut Dernière synchronisation Nombre biens publiés ---- ====== Distribution ====== ===== US-1803 : Publier un bien ===== ===== Endpoint ===== POST /distribution/properties/{id}/publish ---- ===== Étapes ===== Bien ↓ Transformation ↓ Mapping OTA ↓ Publication ---- ====== US-1804 : Dépublier un bien ====== ===== Endpoint ===== POST /distribution/properties/{id}/unpublish ---- ====== US-1805 : Gérer le mapping ===== ===== Exemple ===== Property.title ↓ Airbnb.name ↓ Booking.property_name ---- ====== Synchronisation Disponibilités ====== ===== US-1806 : Synchroniser les calendriers ===== ===== Endpoint ===== POST /sync/availability ---- ===== Déclencheurs ===== Nouvelle réservation Annulation Blocage calendrier Modification disponibilité ---- ====== US-1807 : Importer les réservations OTA ====== ===== Workflow ===== OTA ↓ Réservation ↓ Webhook ↓ Import ↓ Réservation locale ---- ===== Résultat ===== Réservation unique Blocage calendrier ---- ====== Synchronisation Tarifs ====== ===== US-1808 : Synchroniser les prix ===== ===== Endpoint ===== POST /sync/rates ---- ===== Sources ===== Tarif standard Revenue Management Tarifs saisonniers ---- ====== US-1809 : Appliquer des majorations OTA ====== ===== Exemple ===== Prix plateforme 100 € Booking +10 % ↓ 110 € ---- ===== Paramétrage ===== Par OTA Par bien Par période ---- ====== Gestion des réservations ====== ===== US-1810 : Import automatique ===== ===== Sources ===== Airbnb Booking Vrbo ---- ===== Contrôles ===== Doublons Disponibilités Paiements ---- ====== US-1811 : Synchronisation des annulations ====== ===== Workflow ===== OTA ↓ Annulation ↓ Mise à jour locale ↓ Libération calendrier ---- ====== Prévention des surréservations ====== ===== US-1812 : Verrouillage calendrier ===== ===== Objectif ===== Empêcher : Double réservation Conflits OTA Conflits manuels ---- ===== Stratégie ===== Lock pessimiste + Synchronisation immédiate ---- ====== iCal ====== ===== US-1813 : Export iCal ===== ===== Endpoint ===== GET /ical/properties/{id} ---- ===== Compatibilité ===== Google Calendar Apple Calendar Outlook Airbnb Booking ---- ====== US-1814 : Import iCal ===== ===== Endpoint ===== POST /ical/import ---- ====== Tableau de bord OTA ====== ===== US-1815 : Consulter les performances ===== ===== KPI ===== Réservations CA Occupation Canal Commission OTA ---- ===== Répartition ===== Airbnb Booking Vrbo Direct ---- ====== Gestion des commissions ====== ===== US-1816 : Calculer les commissions ===== ===== Exemple ===== Réservation 1 000 € Commission OTA 15 % ↓ 150 € ---- ===== Calcul ===== :contentReference[oaicite:0]{index=0} ---- ====== Modèle Prisma ====== ===== Channel ===== model Channel { id String @id @default(uuid()) code String @unique name String active Boolean } ---- ===== ChannelConnection ===== model ChannelConnection { id String @id @default(uuid()) tenantId String channelId String status String credentials Json } ---- ===== PropertyDistribution ===== model PropertyDistribution { id String @id @default(uuid()) propertyId String channelId String externalId String published Boolean } ---- ===== SyncExecution ===== model SyncExecution { id String @id @default(uuid()) channelId String syncType String status String startedAt DateTime completedAt DateTime? } ---- ===== ChannelReservation ===== model ChannelReservation { id String @id @default(uuid()) reservationId String channelId String externalReference String } ---- ====== Architecture Backend ====== src/modules/channel-manager ├── channels │ ├── distribution │ ├── availability-sync │ ├── rate-sync │ ├── reservation-sync │ ├── mappings │ └── ical ---- ====== Domain Services ====== ChannelService DistributionService AvailabilitySyncService RateSyncService ReservationSyncService IcalService ---- ====== Connecteurs OTA ====== ===== Airbnb ===== Airbnb Connector ---- ===== Booking.com ===== Booking Connector ---- ===== Vrbo ===== Vrbo Connector ---- ===== Expedia ===== Expedia Connector ---- ====== Événements métier ====== ===== PropertyPublished ===== PropertyPublished ---- ===== AvailabilitySynced ===== AvailabilitySynced ---- ===== ReservationImported ===== ReservationImported ---- ===== RateUpdated ===== RateUpdated ---- ====== Swagger ====== ===== Tags ===== Channels Distribution AvailabilitySync RateSync ReservationSync ICal ---- ===== Volume API ===== Environ : 40 endpoints ---- ====== Frontend ====== ===== Pages ===== /channel-manager /channel-manager/channels /channel-manager/distribution /channel-manager/sync /channel-manager/performance /channel-manager/mappings ---- ===== Composants ===== ChannelConnectionWizard DistributionManager SyncMonitor ChannelPerformanceDashboard MappingEditor ---- ====== Dashboard Channel Manager ====== ===== KPI ===== Biens publiés Réservations OTA CA OTA Commissions Synchronisations Erreurs ---- ====== Tests ====== ===== Unitaires ===== DistributionService AvailabilitySyncService RateSyncService ReservationSyncService ---- ===== Intégration ===== Réservation OTA ↓ Webhook ↓ Import ↓ Blocage calendrier ↓ Synchronisation ---- ===== E2E ===== Connexion Booking ↓ Publication bien ↓ Réservation OTA ↓ Import local ↓ Mise à jour disponibilité ↓ Synchronisation Airbnb ---- ====== Définition de terminé ====== Le Sprint 18 est terminé lorsque : * Airbnb connecté * Booking.com connecté * Vrbo connecté * iCal opérationnel * Synchronisation calendriers opérationnelle * Synchronisation tarifs opérationnelle * Synchronisation réservations opérationnelle * Prévention des surréservations opérationnelle * Swagger à jour * Tests verts * CI verte ---- ====== Livrables ====== * ChannelManagerModule * OTAModule * DistributionModule * AvailabilitySyncModule * RateSyncModule * ReservationSyncModule * ICalModule * DTO * Swagger * Tests * Migrations Prisma ---- ====== Bilan Release 3.4 ====== À l'issue du Sprint 18 : * Distribution multi-canaux * Synchronisation OTA * Gestion centralisée des disponibilités * Revenue Management connecté à la distribution * Réduction du risque de surréservation La plateforme devient un véritable PMS (Property Management System) couplé à un Channel Manager professionnel. ---- ====== Sprint suivant ====== ===== Sprint 19 — Gouvernance, Sécurité Avancée & Conformité ===== Objectif : Atteindre un niveau de sécurité, conformité et gouvernance compatible avec les exigences des grands comptes et des réseaux internationaux. Modules concernés : SecurityModule ComplianceModule DataGovernanceModule IdentityModule RiskManagementModule Fonctionnalités : * MFA * SSO SAML/OIDC * Gestion des consentements * RGPD avancé * Journalisation légale * Classification des données * Gestion des risques * Politiques de sécurité À l'issue du Sprint 19, la plateforme sera prête pour des déploiements entreprise (Enterprise).