Outils pour utilisateurs

Outils du site


ujusum:3-codage:1-repository:3-spec-open-api

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
ujusum:3-codage:1-repository:3-spec-open-api [2026/06/08 00:56] adminujusum:3-codage:1-repository:3-spec-open-api [2026/06/08 00:59] (Version actuelle) admin
Ligne 7828: Ligne 7828:
 ---- ----
  
-====== Étape suivante ======+====== Phase 3-A.10 — OpenAPI Revenue Management & Business Intelligence ======
  
-===== Phase 3-A.10 =====+===== Objectif =====
  
-OpenAPI Revenue Management & Business Intelligence+Construire la couche décisionnelle avancée de la plateforme. 
 + 
 +Cette phase couvre :
  
 <code> <code>
-Pricing Rules+Sprint 10
  
-Dynamic Prices+Reporting & Business Intelligence
  
-Revenue Forecasts+Sprint 13
  
-Revenue Simulations+Prévisions IA
  
-Competitor Snapshots+Sprint 17
  
-Market Demand+Revenue Management
  
-Dashboards+Sprint 20
  
-Analytics+Enterprise Analytics
 </code> </code>
  
-Cette phase couvrira :+Elle permet :
  
 <code> <code>
-Sprint 10+Tarification dynamique
  
-Reporting & BI+Yield Management
  
-Sprint 13+Prévisions
  
-Prévisions IA+Simulations
  
-Sprint 17+Benchmark concurrence
  
-Revenue Management+KPI avancés 
 + 
 +Pilotage financier
 </code> </code>
  
-et ajoutera environ :+---- 
 + 
 +====== Tags OpenAPI ====== 
 + 
 +<code yaml> 
 +tags: 
 + 
 +  - name: PricingRules 
 + 
 +  - name: DynamicPrices 
 + 
 +  - name: RevenueForecasts 
 + 
 +  - name: RevenueSimulations 
 + 
 +  - name: CompetitorSnapshots 
 + 
 +  - name: MarketDemand 
 + 
 +  - name: Dashboards 
 + 
 +  - name: Analytics 
 +</code> 
 + 
 +---- 
 + 
 +====== Pricing Rules ====== 
 + 
 +===== PricingRule ===== 
 + 
 +<code yaml> 
 +PricingRule: 
 + 
 +  type: object 
 + 
 +  properties: 
 + 
 +    id: 
 +      type: string 
 +      format: uuid 
 + 
 +    code: 
 +      type: string 
 + 
 +    name: 
 +      type: string 
 + 
 +    priority: 
 +      type: integer 
 + 
 +    active: 
 +      type: boolean 
 + 
 +    conditions: 
 +      type: object 
 + 
 +    actions: 
 +      type: object 
 +</code> 
 + 
 +---- 
 + 
 +===== Endpoints =====
  
 <code> <code>
-80 endpoints supplémentaires+GET    /pricing-rules 
 + 
 +POST   /pricing-rules 
 + 
 +GET    /pricing-rules/{id} 
 + 
 +PATCH  /pricing-rules/{id} 
 + 
 +DELETE /pricing-rules/{id}
 </code> </code>
  
 +----
 +
 +===== Activation =====
 +
 +<code>
 +POST /pricing-rules/{id}/enable
 +
 +POST /pricing-rules/{id}/disable
 +</code>
 +
 +----
 +
 +===== Simulation =====
 +
 +<code>
 +POST /pricing-rules/{id}/simulate
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +Occupation > 80%
 +
 +
 +
 ++15%
 +
 +----------------
 +
 +Weekend
 +
 +
 +
 ++10%
 +
 +----------------
 +
 +Haute saison
 +
 +
 +
 ++25%
 +</code>
 +
 +----
 +
 +====== Dynamic Prices ======
 +
 +===== DynamicPrice =====
 +
 +<code yaml>
 +DynamicPrice:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    propertyId:
 +      type: string
 +
 +    pricingDate:
 +      type: string
 +      format: date
 +
 +    basePrice:
 +      type: number
 +
 +    adjustedPrice:
 +      type: number
 +
 +    demandFactor:
 +      type: number
 +
 +    competitorFactor:
 +      type: number
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /dynamic-prices
 +
 +GET /dynamic-prices/{id}
 +</code>
 +
 +----
 +
 +===== Calcul =====
 +
 +<code>
 +POST /dynamic-prices/calculate
 +</code>
 +
 +----
 +
 +===== Recalcul =====
 +
 +<code>
 +POST /dynamic-prices/recalculate
 +</code>
 +
 +----
 +
 +===== Recherche =====
 +
 +<code>
 +GET /dynamic-prices
 +
 +?propertyId=xxx
 +
 +?from=2026-07-01
 +
 +?to=2026-07-31
 +</code>
 +
 +----
 +
 +====== Revenue Forecasts ======
 +
 +===== RevenueForecast =====
 +
 +<code yaml>
 +RevenueForecast:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    propertyId:
 +      type: string
 +
 +    forecastPeriodStart:
 +      type: string
 +      format: date
 +
 +    forecastPeriodEnd:
 +      type: string
 +      format: date
 +
 +    expectedRevenue:
 +      type: number
 +
 +    expectedOccupancy:
 +      type: number
 +
 +    confidenceLevel:
 +      type: number
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /revenue-forecasts
 +
 +GET /revenue-forecasts/{id}
 +</code>
 +
 +----
 +
 +===== Génération =====
 +
 +<code>
 +POST /revenue-forecasts/generate
 +</code>
 +
 +----
 +
 +===== Prévisions =====
 +
 +<code>
 +7 jours
 +
 +30 jours
 +
 +90 jours
 +
 +180 jours
 +
 +365 jours
 +</code>
 +
 +----
 +
 +====== Revenue Simulations ======
 +
 +===== RevenueSimulation =====
 +
 +<code yaml>
 +RevenueSimulation:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    projectedRevenue:
 +      type: number
 +
 +    projectedOccupancy:
 +      type: number
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /revenue-simulations
 +
 +POST   /revenue-simulations
 +
 +GET    /revenue-simulations/{id}
 +
 +DELETE /revenue-simulations/{id}
 +</code>
 +
 +----
 +
 +===== Exécuter =====
 +
 +<code>
 +POST /revenue-simulations/{id}/run
 +</code>
 +
 +----
 +
 +===== Comparer =====
 +
 +<code>
 +POST /revenue-simulations/compare
 +</code>
 +
 +----
 +
 +===== Exemple =====
 +
 +<code>
 +Prix +10%
 +
 +
 +
 +Occupation -3%
 +
 +
 +
 +CA +6%
 +</code>
 +
 +----
 +
 +====== Competitor Snapshots ======
 +
 +===== CompetitorSnapshot =====
 +
 +<code yaml>
 +CompetitorSnapshot:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    propertyId:
 +      type: string
 +
 +    competitorName:
 +      type: string
 +
 +    nightlyRate:
 +      type: number
 +
 +    occupancy:
 +      type: number
 +
 +    snapshotDate:
 +      type: string
 +      format: date
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /competitor-snapshots
 +
 +GET /competitor-snapshots/{id}
 +
 +POST /competitor-snapshots/import
 +</code>
 +
 +----
 +
 +===== Benchmark =====
 +
 +<code>
 +GET /competitor-snapshots/benchmark
 +</code>
 +
 +----
 +
 +===== Réponse =====
 +
 +<code yaml>
 +CompetitorBenchmark:
 +
 +  type: object
 +
 +  properties:
 +
 +    marketAverage:
 +      type: number
 +
 +    propertyAverage:
 +      type: number
 +
 +    variance:
 +      type: number
 +</code>
 +
 +----
 +
 +====== Market Demand ======
 +
 +===== MarketDemand =====
 +
 +<code yaml>
 +MarketDemand:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    regionCode:
 +      type: string
 +
 +    demandIndex:
 +      type: number
 +
 +    occupancyIndex:
 +      type: number
 +
 +    averageDailyRate:
 +      type: number
 +
 +    demandDate:
 +      type: string
 +      format: date
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /market-demand
 +
 +GET /market-demand/{id}
 +</code>
 +
 +----
 +
 +===== Tendances =====
 +
 +<code>
 +GET /market-demand/trends
 +</code>
 +
 +----
 +
 +===== Prévisions =====
 +
 +<code>
 +GET /market-demand/forecast
 +</code>
 +
 +----
 +
 +====== Revenue Dashboard ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /revenue/dashboard
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +RevPAR
 +
 +ADR
 +
 +Occupancy Rate
 +
 +Revenue
 +
 +Forecast Accuracy
 +
 +Average Stay
 +
 +Cancellation Rate
 +</code>
 +
 +----
 +
 +===== Réponse =====
 +
 +<code yaml>
 +RevenueDashboard:
 +
 +  type: object
 +
 +  properties:
 +
 +    revenue:
 +      type: number
 +
 +    occupancyRate:
 +      type: number
 +
 +    averageDailyRate:
 +      type: number
 +
 +    revPar:
 +      type: number
 +</code>
 +
 +----
 +
 +====== Property Analytics ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/properties/{id}
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +Occupation
 +
 +Revenus
 +
 +Tarif moyen
 +
 +Réservations
 +
 +Annulations
 +</code>
 +
 +----
 +
 +====== Owner Analytics ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/owners/{id}
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +Revenus
 +
 +Biens
 +
 +Occupation
 +
 +Commissions
 +
 +Paiements
 +</code>
 +
 +----
 +
 +====== Reservation Analytics ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/reservations
 +</code>
 +
 +----
 +
 +===== Filtres =====
 +
 +<code>
 +from
 +
 +to
 +
 +propertyId
 +
 +ownerId
 +</code>
 +
 +----
 +
 +====== Financial Analytics ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/financial
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +Revenue
 +
 +Facturation
 +
 +Paiements
 +
 +Remboursements
 +
 +Commissions
 +</code>
 +
 +----
 +
 +====== Forecast Analytics ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/forecast
 +</code>
 +
 +----
 +
 +===== Réponse =====
 +
 +<code yaml>
 +ForecastAnalytics:
 +
 +  type: object
 +
 +  properties:
 +
 +    next30Days:
 +      type: number
 +
 +    next90Days:
 +      type: number
 +
 +    next365Days:
 +      type: number
 +</code>
 +
 +----
 +
 +====== Exports ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /analytics/export
 +</code>
 +
 +----
 +
 +===== Formats =====
 +
 +<code>
 +CSV
 +
 +XLSX
 +
 +PDF
 +
 +JSON
 +</code>
 +
 +----
 +
 +===== Paramètres =====
 +
 +<code>
 +dashboard
 +
 +from
 +
 +to
 +
 +format
 +</code>
 +
 +----
 +
 +====== IA & Revenue Management ======
 +
 +===== Suggestions =====
 +
 +<code>
 +GET /revenue/recommendations
 +</code>
 +
 +----
 +
 +===== Types =====
 +
 +<code>
 +PRICE_INCREASE
 +
 +PRICE_DECREASE
 +
 +PROMOTION
 +
 +MINIMUM_STAY
 +
 +AVAILABILITY_OPTIMIZATION
 +</code>
 +
 +----
 +
 +===== Validation =====
 +
 +<code>
 +POST /revenue/recommendations/{id}/accept
 +
 +POST /revenue/recommendations/{id}/reject
 +</code>
 +
 +----
 +
 +====== Reporting Exécutif ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /executive/dashboard
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +CA Total
 +
 +CA Prévisionnel
 +
 +Taux Occupation
 +
 +Top Biens
 +
 +Top Agences
 +
 +Top Propriétaires
 +
 +Taux Conversion
 +</code>
 +
 +----
 +
 +====== Permissions RBAC ======
 +
 +===== Revenue =====
 +
 +<code>
 +revenue.read
 +
 +revenue.manage
 +
 +revenue.forecast
 +
 +revenue.simulate
 +</code>
 +
 +----
 +
 +===== Analytics =====
 +
 +<code>
 +analytics.read
 +
 +analytics.export
 +</code>
 +
 +----
 +
 +===== Reporting =====
 +
 +<code>
 +reporting.read
 +
 +reporting.executive
 +</code>
 +
 +----
 +
 +====== Volume API ======
 +
 +Cette phase ajoute :
 +
 +<code>
 +≈ 82 endpoints
 +
 +≈ 32 schémas
 +
 +≈ 8 tags Swagger
 +</code>
 +
 +----
 +
 +====== Cumul OpenAPI ======
 +
 +Après Phase 3-A.10 :
 +
 +<code>
 +≈ 677 endpoints
 +
 +≈ 235 schémas
 +
 +≈ 77 tags
 +</code>
 +
 +----
 +
 +====== Phase 3-A.11 — OpenAPI Security, Compliance & Enterprise ======
 +
 +===== Objectif =====
 +
 +Construire la couche Enterprise Security de la plateforme.
 +
 +Cette phase couvre :
 +
 +<code>
 +Sprint 19
 +
 +Gouvernance & Conformité
 +
 +Enterprise Security
 +
 +RGPD
 +
 +ISO 27001
 +
 +SOC2
 +
 +OWASP ASVS
 +</code>
 +
 +Elle permet :
 +
 +<code>
 +MFA
 +
 +SSO
 +
 +Consentements
 +
 +RGPD
 +
 +Gestion des risques
 +
 +Classification des données
 +
 +Politiques de sécurité
 +
 +Incidents
 +
 +Audits
 +</code>
 +
 +----
 +
 +====== Tags OpenAPI ======
 +
 +<code yaml>
 +tags:
 +
 +  - name: MFA
 +
 +  - name: Identity
 +
 +  - name: Sessions
 +
 +  - name: Consents
 +
 +  - name: Privacy
 +
 +  - name: Risks
 +
 +  - name: SecurityIncidents
 +
 +  - name: ComplianceAudits
 +
 +  - name: DataClassification
 +
 +  - name: RetentionPolicies
 +
 +  - name: SecurityPolicies
 +</code>
 +
 +----
 +
 +====== MFA ======
 +
 +===== MfaConfiguration =====
 +
 +<code yaml>
 +MfaConfiguration:
 +
 +  type: object
 +
 +  properties:
 +
 +    enabled:
 +      type: boolean
 +
 +    method:
 +      $ref: '#/components/schemas/MfaMethod'
 +
 +    backupCodesRemaining:
 +      type: integer
 +</code>
 +
 +----
 +
 +===== MfaMethod =====
 +
 +<code yaml>
 +MfaMethod:
 +
 +  type: string
 +
 +  enum:
 +
 +    - TOTP
 +
 +    - EMAIL
 +
 +    - SMS
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET  /security/mfa
 +
 +POST /security/mfa/enable
 +
 +POST /security/mfa/verify
 +
 +POST /security/mfa/disable
 +
 +POST /security/mfa/regenerate-backup-codes
 +</code>
 +
 +----
 +
 +===== QR Code =====
 +
 +<code>
 +GET /security/mfa/qrcode
 +</code>
 +
 +----
 +
 +====== Identity & SSO ======
 +
 +===== IdentityProvider =====
 +
 +<code yaml>
 +IdentityProvider:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    providerType:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    enabled:
 +      type: boolean
 +</code>
 +
 +----
 +
 +===== Types =====
 +
 +<code>
 +SAML
 +
 +OIDC
 +
 +AZURE_AD
 +
 +OKTA
 +
 +AUTH0
 +
 +KEYCLOAK
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /identity/providers
 +
 +POST   /identity/providers
 +
 +GET    /identity/providers/{id}
 +
 +PATCH  /identity/providers/{id}
 +
 +DELETE /identity/providers/{id}
 +</code>
 +
 +----
 +
 +===== SAML =====
 +
 +<code>
 +POST /identity/saml/configuration
 +
 +POST /identity/saml/test
 +</code>
 +
 +----
 +
 +===== OIDC =====
 +
 +<code>
 +POST /identity/oidc/configuration
 +
 +POST /identity/oidc/test
 +</code>
 +
 +----
 +
 +====== Sessions ======
 +
 +===== ActiveSession =====
 +
 +<code yaml>
 +ActiveSession:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    ipAddress:
 +      type: string
 +
 +    country:
 +      type: string
 +
 +    userAgent:
 +      type: string
 +
 +    createdAt:
 +      type: string
 +      format: date-time
 +
 +    lastActivityAt:
 +      type: string
 +      format: date-time
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /sessions
 +
 +GET /sessions/{id}
 +
 +DELETE /sessions/{id}
 +
 +DELETE /sessions/revoke-all
 +</code>
 +
 +----
 +
 +====== Consents ======
 +
 +===== Consent =====
 +
 +<code yaml>
 +Consent:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    consentType:
 +      type: string
 +
 +    granted:
 +      type: boolean
 +
 +    grantedAt:
 +      type: string
 +      format: date-time
 +
 +    version:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Consent Types =====
 +
 +<code>
 +GDPR
 +
 +COOKIES
 +
 +EMAIL_MARKETING
 +
 +SMS_MARKETING
 +
 +PROFILING
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /consents
 +
 +POST   /consents
 +
 +GET    /consents/{id}
 +
 +DELETE /consents/{id}
 +</code>
 +
 +----
 +
 +===== Historique =====
 +
 +<code>
 +GET /users/{id}/consents
 +</code>
 +
 +----
 +
 +====== Privacy ======
 +
 +===== Export RGPD =====
 +
 +<code>
 +POST /privacy/export
 +</code>
 +
 +----
 +
 +===== Request =====
 +
 +<code yaml>
 +PrivacyExportRequest:
 +
 +  type: object
 +
 +  properties:
 +
 +    format:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Formats =====
 +
 +<code>
 +ZIP
 +
 +JSON
 +
 +PDF
 +</code>
 +
 +----
 +
 +===== Droit à l'effacement =====
 +
 +<code>
 +POST /privacy/erase
 +</code>
 +
 +----
 +
 +===== Droit à la rectification =====
 +
 +<code>
 +POST /privacy/rectify
 +</code>
 +
 +----
 +
 +===== Droit à la limitation =====
 +
 +<code>
 +POST /privacy/restrict-processing
 +</code>
 +
 +----
 +
 +===== Registre traitements =====
 +
 +<code>
 +GET /privacy/processing-register
 +</code>
 +
 +----
 +
 +====== Risk Management ======
 +
 +===== Risk =====
 +
 +<code yaml>
 +Risk:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    title:
 +      type: string
 +
 +    probability:
 +      type: integer
 +
 +    impact:
 +      type: integer
 +
 +    score:
 +      type: integer
 +
 +    level:
 +      $ref: '#/components/schemas/RiskLevel'
 +</code>
 +
 +----
 +
 +===== RiskLevel =====
 +
 +<code yaml>
 +RiskLevel:
 +
 +  type: string
 +
 +  enum:
 +
 +    - LOW
 +
 +    - MEDIUM
 +
 +    - HIGH
 +
 +    - CRITICAL
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /risk-management/risks
 +
 +POST   /risk-management/risks
 +
 +GET    /risk-management/risks/{id}
 +
 +PATCH  /risk-management/risks/{id}
 +
 +DELETE /risk-management/risks/{id}
 +</code>
 +
 +----
 +
 +===== Évaluation =====
 +
 +<code>
 +POST /risk-management/risks/{id}/evaluate
 +</code>
 +
 +----
 +
 +===== Traitement =====
 +
 +<code>
 +POST /risk-management/risks/{id}/mitigate
 +</code>
 +
 +----
 +
 +====== Security Incidents ======
 +
 +===== SecurityIncident =====
 +
 +<code yaml>
 +SecurityIncident:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    title:
 +      type: string
 +
 +    severity:
 +      type: string
 +
 +    status:
 +      type: string
 +
 +    detectedAt:
 +      type: string
 +      format: date-time
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /security-incidents
 +
 +POST   /security-incidents
 +
 +GET    /security-incidents/{id}
 +
 +PATCH  /security-incidents/{id}
 +</code>
 +
 +----
 +
 +===== Workflow =====
 +
 +<code>
 +Detected
 +
 +
 +
 +Qualified
 +
 +
 +
 +Investigating
 +
 +
 +
 +Resolved
 +
 +
 +
 +Closed
 +</code>
 +
 +----
 +
 +===== Détection =====
 +
 +<code>
 +POST /security-incidents/detect
 +</code>
 +
 +----
 +
 +====== Compliance Audits ======
 +
 +===== ComplianceAudit =====
 +
 +<code yaml>
 +ComplianceAudit:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    auditType:
 +      type: string
 +
 +    status:
 +      type: string
 +
 +    executedAt:
 +      type: string
 +      format: date-time
 +</code>
 +
 +----
 +
 +===== Types =====
 +
 +<code>
 +GDPR
 +
 +ISO27001
 +
 +SOC2
 +
 +NIS2
 +
 +OWASP
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /compliance-audits
 +
 +POST   /compliance-audits
 +
 +GET    /compliance-audits/{id}
 +
 +PATCH  /compliance-audits/{id}
 +</code>
 +
 +----
 +
 +===== Rapport =====
 +
 +<code>
 +GET /compliance-audits/{id}/report
 +</code>
 +
 +----
 +
 +====== Data Classification ======
 +
 +===== DataClassification =====
 +
 +<code yaml>
 +DataClassification:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    entityType:
 +      type: string
 +
 +    classification:
 +      $ref: '#/components/schemas/DataSensitivity'
 +</code>
 +
 +----
 +
 +===== DataSensitivity =====
 +
 +<code yaml>
 +DataSensitivity:
 +
 +  type: string
 +
 +  enum:
 +
 +    - PUBLIC
 +
 +    - INTERNAL
 +
 +    - CONFIDENTIAL
 +
 +    - RESTRICTED
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /data-classification
 +
 +POST   /data-classification
 +
 +PATCH  /data-classification/{id}
 +</code>
 +
 +----
 +
 +====== Retention Policies ======
 +
 +===== RetentionPolicy =====
 +
 +<code yaml>
 +RetentionPolicy:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    entityType:
 +      type: string
 +
 +    retentionPeriodDays:
 +      type: integer
 +
 +    archiveEnabled:
 +      type: boolean
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /retention-policies
 +
 +POST   /retention-policies
 +
 +PATCH  /retention-policies/{id}
 +
 +DELETE /retention-policies/{id}
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +AuditLogs      3650 jours
 +
 +Contracts      3650 jours
 +
 +Consents       1825 jours
 +
 +Sessions        365 jours
 +
 +Notifications    90 jours
 +</code>
 +
 +----
 +
 +====== Security Policies ======
 +
 +===== SecurityPolicy =====
 +
 +<code yaml>
 +SecurityPolicy:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    code:
 +      type: string
 +
 +    configuration:
 +      type: object
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /security/policies
 +
 +PUT /security/policies
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +Password Policy
 +
 +Session Duration
 +
 +MFA Required
 +
 +Allowed Countries
 +
 +API Rate Limits
 +</code>
 +
 +----
 +
 +====== Security Dashboard ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /security/dashboard
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +MFA Enabled Users
 +
 +Active Sessions
 +
 +Open Risks
 +
 +Security Incidents
 +
 +Compliance Score
 +
 +Audit Success Rate
 +</code>
 +
 +----
 +
 +====== Enterprise Monitoring ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /security/monitoring
 +</code>
 +
 +----
 +
 +===== Détections =====
 +
 +<code>
 +Impossible Travel
 +
 +Privilege Escalation
 +
 +Mass Export
 +
 +Brute Force
 +
 +Suspicious Login
 +</code>
 +
 +----
 +
 +====== Permissions RBAC ======
 +
 +===== Security =====
 +
 +<code>
 +security.read
 +
 +security.manage
 +
 +security.audit
 +</code>
 +
 +----
 +
 +===== Compliance =====
 +
 +<code>
 +compliance.read
 +
 +compliance.manage
 +
 +compliance.audit
 +</code>
 +
 +----
 +
 +===== Privacy =====
 +
 +<code>
 +privacy.read
 +
 +privacy.export
 +
 +privacy.erase
 +</code>
 +
 +----
 +
 +====== Volume API ======
 +
 +Cette phase ajoute :
 +
 +<code>
 +≈ 94 endpoints
 +
 +≈ 35 schémas
 +
 +≈ 11 tags Swagger
 +</code>
 +
 +----
 +
 +====== Cumul OpenAPI ======
 +
 +Après Phase 3-A.11 :
 +
 +<code>
 +≈ 771 endpoints
 +
 +≈ 270 schémas
 +
 +≈ 88 tags
 +</code>
 +
 +----
 +
 +====== Phase 3-A.12 — OpenAPI Internationalisation, Multi-sites & Enterprise Release ======
 +
 +===== Objectif =====
 +
 +Finaliser le contrat API Enterprise 4.0.
 +
 +Cette phase couvre :
 +
 +<code>
 +Sprint 15
 +
 +Multi-sites & Réseau
 +
 +Sprint 20
 +
 +Internationalisation
 +
 +Release Enterprise 4.0
 +</code>
 +
 +Elle permet :
 +
 +<code>
 +Multi-langues
 +
 +Multi-devises
 +
 +Multi-fuseaux horaires
 +
 +Multi-régions
 +
 +Multi-sites
 +
 +Marque blanche
 +
 +Réseaux d'agences
 +
 +Licences Enterprise
 +</code>
 +
 +----
 +
 +====== Tags OpenAPI ======
 +
 +<code yaml>
 +tags:
 +
 +  - name: Countries
 +
 +  - name: Currencies
 +
 +  - name: Languages
 +
 +  - name: Timezones
 +
 +  - name: CurrencyRates
 +
 +  - name: Translations
 +
 +  - name: Regions
 +
 +  - name: Sites
 +
 +  - name: WhiteLabel
 +
 +  - name: EnterpriseLicenses
 +</code>
 +
 +----
 +
 +====== Countries ======
 +
 +===== Country =====
 +
 +<code yaml>
 +Country:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +      format: uuid
 +
 +    isoCode:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    currencyCode:
 +      type: string
 +
 +    languageCode:
 +      type: string
 +
 +    timezone:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /countries
 +
 +GET /countries/{id}
 +</code>
 +
 +----
 +
 +====== Currencies ======
 +
 +===== Currency =====
 +
 +<code yaml>
 +Currency:
 +
 +  type: object
 +
 +  properties:
 +
 +    code:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    symbol:
 +      type: string
 +
 +    decimals:
 +      type: integer
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /currencies
 +
 +GET /currencies/{code}
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +EUR
 +
 +USD
 +
 +GBP
 +
 +CHF
 +
 +CAD
 +
 +AED
 +</code>
 +
 +----
 +
 +====== Currency Rates ======
 +
 +===== CurrencyRate =====
 +
 +<code yaml>
 +CurrencyRate:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    baseCurrency:
 +      type: string
 +
 +    targetCurrency:
 +      type: string
 +
 +    exchangeRate:
 +      type: number
 +
 +    effectiveDate:
 +      type: string
 +      format: date
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /currency-rates
 +
 +POST /currency-rates/synchronize
 +</code>
 +
 +----
 +
 +===== Conversion =====
 +
 +<code>
 +POST /currencies/convert
 +</code>
 +
 +----
 +
 +===== Request =====
 +
 +<code yaml>
 +CurrencyConversionRequest:
 +
 +  type: object
 +
 +  properties:
 +
 +    amount:
 +      type: number
 +
 +    sourceCurrency:
 +      type: string
 +
 +    targetCurrency:
 +      type: string
 +</code>
 +
 +----
 +
 +====== Languages ======
 +
 +===== Language =====
 +
 +<code yaml>
 +Language:
 +
 +  type: object
 +
 +  properties:
 +
 +    code:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    locale:
 +      type: string
 +
 +    active:
 +      type: boolean
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /languages
 +
 +GET /languages/{code}
 +
 +PATCH /languages/{code}
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +fr-FR
 +
 +en-US
 +
 +en-GB
 +
 +es-ES
 +
 +it-IT
 +
 +de-DE
 +
 +nl-NL
 +</code>
 +
 +----
 +
 +====== Timezones ======
 +
 +===== Timezone =====
 +
 +<code yaml>
 +Timezone:
 +
 +  type: object
 +
 +  properties:
 +
 +    code:
 +      type: string
 +
 +    offset:
 +      type: string
 +
 +    label:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /timezones
 +
 +GET /timezones/{code}
 +</code>
 +
 +----
 +
 +====== Translations ======
 +
 +===== Translation =====
 +
 +<code yaml>
 +Translation:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    locale:
 +      type: string
 +
 +    namespace:
 +      type: string
 +
 +    translationKey:
 +      type: string
 +
 +    translationValue:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /translations
 +
 +POST   /translations
 +
 +PATCH  /translations/{id}
 +
 +DELETE /translations/{id}
 +</code>
 +
 +----
 +
 +===== Import =====
 +
 +<code>
 +POST /translations/import
 +</code>
 +
 +----
 +
 +===== Export =====
 +
 +<code>
 +GET /translations/export
 +</code>
 +
 +----
 +
 +====== Regions ======
 +
 +===== Region =====
 +
 +<code yaml>
 +Region:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    code:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    defaultCurrency:
 +      type: string
 +
 +    defaultLanguage:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /regions
 +
 +POST   /regions
 +
 +GET    /regions/{id}
 +
 +PATCH  /regions/{id}
 +
 +DELETE /regions/{id}
 +</code>
 +
 +----
 +
 +===== Exemples =====
 +
 +<code>
 +EUROPE
 +
 +NORTH_AMERICA
 +
 +MIDDLE_EAST
 +
 +ASIA_PACIFIC
 +</code>
 +
 +----
 +
 +====== Sites ======
 +
 +===== Site =====
 +
 +<code yaml>
 +Site:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    code:
 +      type: string
 +
 +    name:
 +      type: string
 +
 +    domain:
 +      type: string
 +
 +    active:
 +      type: boolean
 +
 +    defaultLanguage:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /sites
 +
 +POST   /sites
 +
 +GET    /sites/{id}
 +
 +PATCH  /sites/{id}
 +
 +DELETE /sites/{id}
 +</code>
 +
 +----
 +
 +===== Domaines =====
 +
 +<code>
 +POST /sites/{id}/domains
 +
 +DELETE /sites/{id}/domains/{domainId}
 +</code>
 +
 +----
 +
 +====== White Label ======
 +
 +===== WhiteLabelConfiguration =====
 +
 +<code yaml>
 +WhiteLabelConfiguration:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    logoUrl:
 +      type: string
 +
 +    faviconUrl:
 +      type: string
 +
 +    primaryColor:
 +      type: string
 +
 +    secondaryColor:
 +      type: string
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /white-label
 +
 +PUT /white-label
 +</code>
 +
 +----
 +
 +===== Personnalisation =====
 +
 +<code>
 +Theme
 +
 +Logo
 +
 +Emails
 +
 +Domaines
 +
 +SEO
 +</code>
 +
 +----
 +
 +====== Agency Network ======
 +
 +===== Endpoints =====
 +
 +<code>
 +GET /agency-network
 +
 +POST /agency-network/join
 +
 +POST /agency-network/share-property
 +</code>
 +
 +----
 +
 +===== Mutualisation =====
 +
 +<code>
 +Réservations inter-agences
 +
 +Catalogue mutualisé
 +
 +Reporting mutualisé
 +</code>
 +
 +----
 +
 +====== Enterprise Licenses ======
 +
 +===== EnterpriseLicense =====
 +
 +<code yaml>
 +EnterpriseLicense:
 +
 +  type: object
 +
 +  properties:
 +
 +    id:
 +      type: string
 +
 +    licenseKey:
 +      type: string
 +
 +    licenseType:
 +      type: string
 +
 +    validUntil:
 +      type: string
 +      format: date
 +
 +    maxUsers:
 +      type: integer
 +
 +    maxProperties:
 +      type: integer
 +</code>
 +
 +----
 +
 +===== Endpoints =====
 +
 +<code>
 +GET    /enterprise-licenses
 +
 +POST   /enterprise-licenses
 +
 +GET    /enterprise-licenses/{id}
 +
 +PATCH  /enterprise-licenses/{id}
 +</code>
 +
 +----
 +
 +===== Validation =====
 +
 +<code>
 +POST /enterprise-licenses/validate
 +</code>
 +
 +----
 +
 +====== Multi-Régions ======
 +
 +===== Déploiements =====
 +
 +<code>
 +GET /regions/deployments
 +</code>
 +
 +----
 +
 +===== Réponse =====
 +
 +<code>
 +EU-West
 +
 +US-East
 +
 +US-West
 +
 +Middle-East
 +
 +Asia-Pacific
 +</code>
 +
 +----
 +
 +====== Paramètres de Localisation ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /localization/settings
 +</code>
 +
 +----
 +
 +===== Réponse =====
 +
 +<code yaml>
 +LocalizationSettings:
 +
 +  type: object
 +
 +  properties:
 +
 +    defaultLanguage:
 +      type: string
 +
 +    defaultCurrency:
 +      type: string
 +
 +    defaultTimezone:
 +      type: string
 +</code>
 +
 +----
 +
 +====== Enterprise Dashboard ======
 +
 +===== Endpoint =====
 +
 +<code>
 +GET /enterprise/dashboard
 +</code>
 +
 +----
 +
 +===== KPI =====
 +
 +<code>
 +Sites actifs
 +
 +Pays actifs
 +
 +Langues actives
 +
 +Régions actives
 +
 +Licences
 +
 +Agences connectées
 +</code>
 +
 +----
 +
 +====== Permissions RBAC ======
 +
 +===== Internationalisation =====
 +
 +<code>
 +i18n.read
 +
 +i18n.manage
 +</code>
 +
 +----
 +
 +===== Multi-sites =====
 +
 +<code>
 +sites.read
 +
 +sites.manage
 +</code>
 +
 +----
 +
 +===== Enterprise =====
 +
 +<code>
 +enterprise.read
 +
 +enterprise.manage
 +
 +enterprise.license
 +</code>
 +
 +----
 +
 +====== Volume API ======
 +
 +Cette phase ajoute :
 +
 +<code>
 +≈ 88 endpoints
 +
 +≈ 28 schémas
 +
 +≈ 10 tags Swagger
 +</code>
 +
 +----
 +
 +====== Cumul Final OpenAPI ======
 +
 +Après Phase 3-A.12 :
 +
 +<code>
 +≈ 859 endpoints
 +
 +≈ 298 schémas
 +
 +≈ 98 tags Swagger
 +
 +≈ 110 domaines métier
 +
 +≈ 1 contrat API Enterprise complet
 +</code>
 +
 +----
 +
 +====== OpenAPI Enterprise 4.0 — TERMINÉ ======
 +
 +Le contrat fonctionnel couvre désormais :
 +
 +<code>
 +✓ Auth
 +
 +✓ Users
 +
 +✓ RBAC
 +
 +✓ Owners
 +
 +✓ Properties
 +
 +✓ Customers
 +
 +✓ Reservations
 +
 +✓ Contracts
 +
 +✓ Signatures
 +
 +✓ Payments
 +
 +✓ Invoices
 +
 +✓ CRM
 +
 +✓ Messaging
 +
 +✓ Marketing
 +
 +✓ Automation
 +
 +✓ AI
 +
 +✓ Knowledge Base
 +
 +✓ Governance
 +
 +✓ Administration
 +
 +✓ OTA
 +
 +✓ Channel Manager
 +
 +✓ Revenue Management
 +
 +✓ Analytics
 +
 +✓ Security
 +
 +✓ Compliance
 +
 +✓ Internationalisation
 +
 +✓ Multi-sites
 +
 +✓ Enterprise
 +</code>
 +
 +----
 +
 +====== Étape suivante recommandée ======
 +
 +Le travail de conception est désormais terminé.
 +
 +Le prochain livrable devrait être :
 +
 +===== Phase 4 =====
 +
 +Génération du code exécutable
 +
 +<code>
 +4-A  Prisma Schema final consolidé
 +
 +4-B  DTO NestJS générés
 +
 +4-C  SDK TypeScript généré
 +
 +4-D  Structure NestJS complète
 +
 +4-E  Structure NextJS complète
 +
 +4-F  Docker Compose
 +
 +4-G  GitHub Actions
 +
 +4-H  Helm Charts
 +
 +4-I  Terraform Infrastructure
 +
 +4-J  Monorepo final
 +</code>
  
 +À partir de ce point, on quitte la phase d'architecture pour entrer dans la phase d'industrialisation et de génération automatique du code source.
ujusum/3-codage/1-repository/3-spec-open-api.1780873018.txt.gz · Dernière modification : 2026/06/08 00:56 de admin

DokuWiki Appliance - Powered by TurnKey Linux