Bill the three-year term, and quote its rate to the console

FeatureBillingService
Ya
31 Agosti 2026, 02:12 UTC
Mwandishi
Kamo
Ahadi ya
214fdff

BillingCycles gains TRIENNIAL, expressed to Stripe as three YEARs rather than thirty-six MONTHs so the renewal tracks the signup anniversary — the same reason ANNUAL is one year. monthsIn now delegates to the enum, which owns the number: it was stated here and twice more in SubscriptionService, where both copies had it backwards. **************** annualised via `12 / monthsIn(cycle)` charges per year. That is integer division, correct only while every cycle divides into a year — a three-year term makes it 12/36 = 0 and annualises every plan to nothing. The invariant is about the ratio of amount to months, so it is expressed that way now and holds for a cycle of any length. A new test also pins interval x intervalCount to monthsIn, so the Stripe recurrence cannot drift from the span it claims to charge for. PlanCatalogService quotes the third term to the self-serve billing console. A term with neither a price row nor a plan column reports null rather than borrowing the monthly rate: quoting month-to-month against a three-year commitment would undercharge by a third.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei