Two hardening fixes for the paid first month: - FirstMonthCheckoutDiscount throws when the paid first month is enabled but STRIPE_FIRST_MONTH_COUPON_ID is unset, instead of silently charging every new customer the full price with no discount. - Guard workspace store() with the same active-subscription check create() already applies, so a direct POST can't bootstrap a second billable workspace and inflate checkout quantity past the fixed first-month coupon. |
||
|---|---|---|
| .. | ||
| Controllers | ||
| Middleware | ||
| Requests | ||
| Resources | ||