- Порезанный
- 20 апреля 2026 г. в 19:43 UTC
- Автор
- Kamo
- Обещать
- 620164f
- PlatformAdminController at /api/billing/platform (классовый уровень @PlatformAdminOnly) - GET/orgs, GET/orgs/{orgId} - POST/orgs/{orgId}/grants, PATCH |DELETE/orgs/{orgId}/grants/{subId} - GET/планы (включает в себя isPublic=false) GET/события - PlatformAdminService: грант создает COMP SubscriptionRecord, отменяет предыдущие активные Исполнитель: SubscriptionEvent **************************** 5s Идемпотенция - @PlatformAdminOnly + HandlerInterceptor: разрешите активную работу в режиме бога (TeamMember.isOrganizationOwner AND Organization.isTopLevel, перечитайте из DB) - SubscriptionRenewalScheduler: отделение COMP отменяется по истечении срока действия (COMP EXPIRED) И никогда не звонит Стрип - BillingAdminService: агрегация MRR/ARR исключает платежMethod=COMP - Длинные идентификаторы, открытые в виде струн (CockroachDB unique rowid precision)