Aller au contenu

Administration Bricks

Contrôleur HTTP des actions d'administration sur les réservations de bricks (création, listing, confirmation, annulation). Source : bricks.controller.ts.

Tous les endpoints requièrent une session admin BetterAuth valide (AdminAuthGuard).

POST /administration/bricks/reservation

Crée une réservation de bricks pour un investisseur (par email) sur une property donnée. Le gift balance est mobilisé en priorité dans la limite du solde de l'investisseur. Trace l'action via AdminAction (RESERVE_BRICKS).

Source : bricks.controller.ts#L45.

Pré-conditions

  • L'investisseur doit exister (recherche par email, case-insensitive)
  • La property doit être dans un état permettant l'achat
  • Il doit rester suffisamment de bricks disponibles
  • L'investisseur ne doit pas avoir atteint le nombre max de réservations actives

Request body

{
  "amountToPurchase": 100,
  "propertyId": "uuid-of-property",
  "email": "investor@example.com"
}

Validé via createReservationPayload (depuis @bricks-common/api-communication-bricksoffice). amountToPurchase est en euros et doit être un multiple de 10.

Response

{
  "reservationId": "uuid-v7"
}

Erreurs

Code Statut Cause
customer-not-found 400 Aucun investisseur trouvé pour cet email
primary-purchase.property-not-purchasable 400 La property n'accepte pas d'achat (état)
primary-purchase.not-enough-bricks-left 400 Plus assez de bricks disponibles à l'achat
bricks-reservation-max-count-reach 400 L'investisseur a atteint le nombre max de réservations actives
primary-purchase.property-funding-ended 400 Le funding de la property est clôturé
property.spv.not-found 400 SPV de la property introuvable

GET /administration/bricks/reservation

Liste les réservations de bricks en attente de confirmation admin.

Source : bricks.controller.ts#L72.

Response

Tableau de réservations (ReservationsResponse depuis @bricks-common/api-communication-bricksoffice).

GET /administration/bricks/reservation/eligible-properties

Liste les properties éligibles à la création d'une réservation admin.

Source : bricks.controller.ts#L78.

Response

Tableau de properties éligibles (EligiblePropertiesResponse depuis @bricks-common/api-communication-bricksoffice).

PATCH /administration/bricks/reservation

Confirme ou annule une réservation existante. Si action === 'cancel', l'expiration est forcée à now (le state-watcher d'expiration libérera ensuite les bricks et remboursera le gift balance). Si action === 'confirm', la réservation est confirmée et l'achat primaire est exécuté. Trace l'action via AdminAction (PATCH_RESERVATION).

Source : bricks.controller.ts#L84.

Request body

{
  "reservationId": "uuid-v7",
  "action": "confirm"
}

Validé via updateReservationPayload (depuis @bricks-common/api-communication-bricksoffice). action doit être 'cancel' ou 'confirm'.

Response

204 No Content (le handler ne retourne rien en cas de succès).

Erreurs

Code Statut Cause
<error> 400 Erreur de confirmation propagée par confirmPrimaryPurchaseReservation (action confirm)

Liens