learning_ai_common_plat/services
saravanakumardb1 3022e634b8 feat(billing): migrate to Stripe SDK v20 (API shape changes)
Bump stripe 17 -> 20 and adapt to the breaking API changes:
- PromotionCode: coupon moved under `promotion` ({ type: 'coupon', coupon }).
  mapPromo now reads p.promotion.coupon; create now passes
  promotion: { type: 'coupon', coupon: id } instead of a top-level coupon.
- Subscription.current_period_end removed (now per subscription item). Add
  getSubscriptionPeriodEnd() = max(items[].current_period_end) and use it in the
  customer.subscription.updated webhook handler.
- Update the promos route test fixture to the new promotion.coupon shape.

Verified: platform-service build (tsc) clean; promos (14) + stripe/subscriptions/
billing tests pass; full suite 1692/1692.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-31 04:00:13 -07:00
..
cowork-service chore(deps): bump @fastify/cors 10 -> 11 2026-05-31 03:44:54 -07:00
extraction-service chore(deps): bump @fastify/cors 10 -> 11 2026-05-31 03:44:54 -07:00
mcp-server chore(deps): bump @fastify/cors 10 -> 11 2026-05-31 03:44:54 -07:00
monitoring feat(monitoring): add VM Overview Grafana dashboard 2026-05-29 21:26:35 +00:00
platform-service feat(billing): migrate to Stripe SDK v20 (API shape changes) 2026-05-31 04:00:13 -07:00