Monétisation — Schéma et tables
orders
Objectif: représenter l’intention d’achat côté métier.
Champs clés:
iduser_iditem_type(actuel:listing_boost)item_id(id annonce)amount,currencystatus(pending,completed,failed,refunded)metadata
payments
Objectif: tracer la transaction provider.
Champs clés:
iduser_idorder_idprovider(stripe, futur:orange_money,mtn_momo)provider_transaction_idpayment_method_typeclient_secret(PaymentIntent)amount,currencystatus(pending,succeeded,failed,refunded)metadata
webhooks_log
Objectif: idempotence + audit webhook.
Champs clés:
event_id(unique)providerevent_typepayloadstatus(processing,processed,ignored,failed)processed_at
car_listings.featuredUntil
Objectif: stocker la fin de validité d’une mise en avant.
Règle d’activation actuelle:
- Le webhook met à jour:
isFeatured = truefeaturedUntil = now + durationDays
Relations clés
orders.user_id -> users.idpayments.user_id -> users.idpayments.order_id -> orders.id
Remarques d’évolution
- Ajouter éventuellement un enum DB pour
orders.statusetpayments.status. - Ajouter index si volumétrie augmente (
orders.user_id,payments.order_id,webhooks_log.event_id).