@besales/robokassa-sdk 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,7 @@ import { RobokassaPaymentClient } from '@besales/robokassa-sdk';
22
22
  const client = new RobokassaPaymentClient({
23
23
  baseUrl: 'https://payments.example.com',
24
24
  apiKey: process.env.PAYMENT_SERVICE_API_KEY!, // глобальный ключ
25
- clientApiKey: process.env.PAYMENT_SERVICE_CLIENT_KEY!, // ключ клиента
25
+ clientApiKey: process.env.PAYMENT_SERVICE_CLIENT_API_KEY!, // ключ клиента
26
26
  });
27
27
 
28
28
  // Одноразовый платёж
@@ -63,10 +63,39 @@ client.subscriptions.getById(id)
63
63
  client.subscriptions.cancel(id, userId)
64
64
  client.subscriptions.pause(id, userId)
65
65
  client.subscriptions.resume(id, userId)
66
+ client.subscriptions.changePlan(id, userId, input)
67
+ client.subscriptions.clearScheduledPlanChange(id, userId)
66
68
  ```
67
69
 
68
70
  Если `clientApiKey` не передан в конструктор, вызов методов с `auth: 'client'` бросит ошибку.
69
71
 
72
+ ## Мультиклиентская Модель
73
+
74
+ Один payment service может хранить данные многих клиентов одновременно.
75
+
76
+ Это значит:
77
+ - `Client` — это внешний сервис;
78
+ - `Product` и `SubscriptionPlan` принадлежат конкретному `clientName`;
79
+ - наличие тарифов у клиента `A` ничего не говорит о наличии тарифов у клиента `B`.
80
+
81
+ Практический вывод:
82
+ - если у вашего backend `PAYMENT_SERVICE_CLIENT_NAME=beprompt`, то вам нужны планы именно для `beprompt`;
83
+ - планы клиента `12astro` не будут “общими” и не закроют каталог для `beprompt`.
84
+
85
+ Рекомендуемый сценарий:
86
+ 1. Создать `Client` для внешнего сервиса.
87
+ 2. Создать `Product` и/или `SubscriptionPlan` с тем же `clientName`.
88
+ 3. Сохранить remote `planId` во внешнем сервисе.
89
+
90
+ Если вы строите каталог подписок, фильтруйте планы по `clientName`:
91
+
92
+ ```typescript
93
+ const { data: plans } = await client.plans.list({
94
+ clientName: process.env.PAYMENT_SERVICE_CLIENT_NAME!,
95
+ isActive: true,
96
+ });
97
+ ```
98
+
70
99
  ## Модули
71
100
 
72
101
  ### Клиенты (clients)
@@ -143,6 +172,16 @@ const result = await client.plans.delete('plan-id');
143
172
  // result.deleted или result.deactivated
144
173
  ```
145
174
 
175
+ Удаление работает так:
176
+ - если у плана нет подписок, он удаляется физически;
177
+ - если у плана уже есть подписки, сервис не удаляет его физически, а деактивирует (`isActive=false`).
178
+
179
+ Если нужно просто убрать тариф из каталога, обычно безопаснее сделать:
180
+
181
+ ```typescript
182
+ await client.plans.update('plan-id', { isActive: false });
183
+ ```
184
+
146
185
  ### Платежи (payments)
147
186
 
148
187
  ```typescript
@@ -197,11 +236,43 @@ await client.subscriptions.pause('sub-id', 'user-id', 2); // на 2 месяца
197
236
  // Возобновить (требует clientApiKey)
198
237
  await client.subscriptions.resume('sub-id', 'user-id');
199
238
 
239
+ // Немедленный апгрейд на более дорогой тариф (требует clientApiKey)
240
+ const upgrade = await client.subscriptions.changePlan('sub-id', 'user-id', {
241
+ newPlanId: 'plan-pro',
242
+ applyAt: 'immediately',
243
+ });
244
+
245
+ if (upgrade.requiresPayment) {
246
+ // Для активации апгрейда нужна доплата
247
+ // redirect на upgrade.paymentLink
248
+ }
249
+
250
+ // Запланированный даунгрейд на конец периода (требует clientApiKey)
251
+ const scheduled = await client.subscriptions.changePlan('sub-id', 'user-id', {
252
+ newPlanId: 'plan-basic',
253
+ applyAt: 'end_of_period',
254
+ });
255
+
256
+ if (scheduled.isScheduled) {
257
+ console.log(
258
+ 'Переход запланирован на',
259
+ scheduled.subscription.scheduledPlanChangeAt
260
+ );
261
+ }
262
+
263
+ // Отменить запланированную смену тарифа (требует clientApiKey)
264
+ await client.subscriptions.clearScheduledPlanChange('sub-id', 'user-id');
265
+
200
266
  // Статистика
201
267
  const stats = await client.subscriptions.getStats();
202
268
  const cronStats = await client.subscriptions.getCronStats();
203
269
  ```
204
270
 
271
+ Правила `changePlan()`:
272
+ - `applyAt: 'immediately'` поддерживает только переход на план с большей ценой и возвращает `paymentLink` для доплаты;
273
+ - `applyAt: 'end_of_period'` поддерживает только переход на план с меньшей ценой и записывает `scheduledPlanId`/`scheduledPlanChangeAt`;
274
+ - смена между разными `interval` разрешена, решение принимается только по абсолютной цене нового плана.
275
+
205
276
  ### Health check
206
277
 
207
278
  ```typescript
@@ -242,7 +313,11 @@ app.post('/api/user/webhook', ...createExpressWebhookMiddleware({
242
313
  app.post('/api/user/subscription-webhook', ...createExpressWebhookMiddleware({
243
314
  apiKey: process.env.WEBHOOK_API_KEY!,
244
315
  onSubscription: async (payload) => {
245
- console.log('Подписка:', payload.subscriptionId, payload.status);
316
+ console.log('Подписка:', payload.subscriptionId, payload.status, payload.eventType);
317
+
318
+ if (payload.eventType === 'PLAN_CHANGED') {
319
+ await recalculateQuota(payload.userId, payload.planId, payload.previousPlanId);
320
+ }
246
321
 
247
322
  if (payload.status === 'CANCELLED') {
248
323
  await deactivateUser(payload.userId);
@@ -384,13 +459,22 @@ const client = new RobokassaPaymentClient({
384
459
  | `userId` | `string` | ID пользователя |
385
460
  | `status` | `string` | Статус: `ACTIVE`, `CANCELLED`, `PAUSED`, `EXPIRED` |
386
461
  | `planId` | `string` | ID тарифного плана |
462
+ | `scheduledPlanId` | `string \| null` | ID плана, на который запланирован переход |
463
+ | `scheduledPlanChangeAt` | `string \| null` | Дата автопереключения плана (ISO 8601) |
464
+ | `previousPlanId` | `string \| null` | Предыдущий план при `eventType = PLAN_CHANGED` |
387
465
  | `startDate` | `string` | Дата начала (ISO 8601) |
388
466
  | `endDate` | `string \| null` | Дата окончания |
467
+ | `nextBillingDate` | `string \| null` | Следующее списание |
389
468
  | `isActive` | `boolean` | Активна ли подписка |
390
469
  | `autoRenew` | `boolean` | Автопродление |
391
470
  | `language` | `string` | Язык |
471
+ | `eventType` | `'STATE_CHANGE' \| 'UPCOMING_BILLING' \| 'PLAN_CHANGED'` | Тип события webhook |
392
472
  | `robokassaCode` | `string` | Код Robokassa-конфигурации |
393
473
 
474
+ `PLAN_CHANGED` приходит при фактическом применении смены тарифа:
475
+ - сразу после успешной доплаты за `applyAt: 'immediately'`;
476
+ - после успешного списания нового периода для `applyAt: 'end_of_period'`.
477
+
394
478
  ## Лицензия
395
479
 
396
480
  Проприетарный. Только для внутреннего использования.
@@ -28,5 +28,5 @@ export type { Client, CreateClientInput, UpdateClientInput } from './types/clien
28
28
  export type { Product, CreateProductInput, UpdateProductInput } from './types/product.types';
29
29
  export type { SubscriptionPlan, CreatePlanInput, UpdatePlanInput, PlanListFilters, PlanListResponse, PlanDeleteResult, } from './types/plan.types';
30
30
  export type { CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
- export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
31
+ export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, ChangePlanApplyAt, ChangePlanInput, ChangePlanResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
10
10
  import { HttpClient } from '../http';
11
- import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth } from '../types/subscription.types';
11
+ import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, ChangePlanInput, ChangePlanResponse } from '../types/subscription.types';
12
12
  export declare class SubscriptionsModule {
13
13
  private readonly http;
14
14
  constructor(http: HttpClient);
@@ -50,5 +50,15 @@ export declare class SubscriptionsModule {
50
50
  * Требует clientApiKey в конструкторе
51
51
  */
52
52
  resume(id: string, userId: string): Promise<Subscription>;
53
+ /**
54
+ * Сменить тариф подписки.
55
+ * Требует clientApiKey в конструкторе.
56
+ */
57
+ changePlan(id: string, userId: string, input: ChangePlanInput): Promise<ChangePlanResponse>;
58
+ /**
59
+ * Отменить запланированную смену тарифа.
60
+ * Требует clientApiKey в конструкторе.
61
+ */
62
+ clearScheduledPlanChange(id: string, userId: string): Promise<Subscription>;
53
63
  }
54
64
  //# sourceMappingURL=subscriptions.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQhE"}
1
+ {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;OAGG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;;OAGG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQlF"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Двойная аутентификация:
6
6
  * - create/list/getStats/getCronStats/health → Global API Key
7
- * - getById/cancel/pause/resume → Client API Key
7
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
8
8
  *
9
9
  * @module modules/subscriptions
10
10
  */
@@ -109,6 +109,33 @@ class SubscriptionsModule {
109
109
  auth: 'client',
110
110
  });
111
111
  }
112
+ /**
113
+ * Сменить тариф подписки.
114
+ * Требует clientApiKey в конструкторе.
115
+ */
116
+ async changePlan(id, userId, input) {
117
+ return this.http.request({
118
+ method: 'POST',
119
+ path: `/api/subscriptions/${encodeURIComponent(id)}/change-plan`,
120
+ body: {
121
+ userId,
122
+ ...input,
123
+ },
124
+ auth: 'client',
125
+ });
126
+ }
127
+ /**
128
+ * Отменить запланированную смену тарифа.
129
+ * Требует clientApiKey в конструкторе.
130
+ */
131
+ async clearScheduledPlanChange(id, userId) {
132
+ return this.http.request({
133
+ method: 'POST',
134
+ path: `/api/subscriptions/${encodeURIComponent(id)}/clear-scheduled-change`,
135
+ body: { userId },
136
+ auth: 'client',
137
+ });
138
+ }
112
139
  }
113
140
  exports.SubscriptionsModule = SubscriptionsModule;
114
141
  //# sourceMappingURL=subscriptions.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAcH,MAAa,mBAAmB;IAC9B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,6BAA6B;IAE7B;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAA6B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6B;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,OAAgE;YACvE,GAAG,EAAE,IAAI,EAAE,kBAAkB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YAC1C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAE7B;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACpD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,MAAc,EAAE,mBAA4B;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAC1D,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACrC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;CACF;AA5GD,kDA4GC"}
1
+ {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface Subscription {
20
20
  username?: string | null;
21
21
  status: SubscriptionStatus;
22
22
  planId: string;
23
+ scheduledPlanId?: string | null;
24
+ scheduledPlanChangeAt?: string | null;
23
25
  plan?: SubscriptionPlan;
24
26
  startDate: string;
25
27
  endDate?: string | null;
@@ -38,7 +40,7 @@ export interface Subscription {
38
40
  export interface CreateSubscriptionInput {
39
41
  /** UUID пользователя */
40
42
  userId: string;
41
- /** UUID плана */
43
+ /** ID плана */
42
44
  planId: string;
43
45
  username?: string;
44
46
  /** URL редиректа при успешной оплате */
@@ -101,4 +103,15 @@ export interface SubscriptionHealth {
101
103
  status: string;
102
104
  [key: string]: unknown;
103
105
  }
106
+ export type ChangePlanApplyAt = 'immediately' | 'end_of_period';
107
+ export interface ChangePlanInput {
108
+ newPlanId: string;
109
+ applyAt: ChangePlanApplyAt;
110
+ }
111
+ export interface ChangePlanResponse {
112
+ subscription: Subscription;
113
+ paymentLink?: string;
114
+ requiresPayment: boolean;
115
+ isScheduled: boolean;
116
+ }
104
117
  //# sourceMappingURL=subscription.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,5 @@
9
9
  export { validateWebhookApiKey, parsePaymentWebhook, parseSubscriptionWebhook, } from './handler';
10
10
  export { createExpressWebhookMiddleware } from './express';
11
11
  export { robokassaWebhookPlugin } from './fastify';
12
- export type { PaymentWebhookPayload, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
12
+ export type { PaymentWebhookPayload, SubscriptionWebhookEventType, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -30,17 +30,22 @@ export interface PaymentWebhookPayload {
30
30
  recurringToken?: string | null;
31
31
  }
32
32
  /** Payload webhook изменения подписки (POST {apiUrl}/api/user/subscription-webhook) */
33
+ export type SubscriptionWebhookEventType = 'STATE_CHANGE' | 'UPCOMING_BILLING' | 'PLAN_CHANGED';
33
34
  export interface SubscriptionWebhookPayload {
34
35
  subscriptionId: string;
35
36
  userId: string;
36
37
  status: string;
37
38
  planId: string;
39
+ scheduledPlanId?: string | null;
40
+ scheduledPlanChangeAt?: string | null;
41
+ previousPlanId?: string | null;
38
42
  startDate: string;
39
43
  endDate: string | null;
40
44
  nextBillingDate?: string | null;
41
45
  isActive: boolean;
42
46
  autoRenew: boolean;
43
47
  language: string;
48
+ eventType: SubscriptionWebhookEventType;
44
49
  /** Код Robokassa-конфигурации (для мультикассы) */
45
50
  robokassaCode: string;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,4BAA4B,CAAC;IACxC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
@@ -28,5 +28,5 @@ export type { Client, CreateClientInput, UpdateClientInput } from './types/clien
28
28
  export type { Product, CreateProductInput, UpdateProductInput } from './types/product.types';
29
29
  export type { SubscriptionPlan, CreatePlanInput, UpdatePlanInput, PlanListFilters, PlanListResponse, PlanDeleteResult, } from './types/plan.types';
30
30
  export type { CreatePaymentInput, CreatePaymentResponse, UpdatePaymentInput, } from './types/payment.types';
31
- export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
31
+ export type { Subscription, SubscriptionStatus, SubscriptionInterval, PaymentStatus, CreateSubscriptionInput, CreateSubscriptionResponse, ChangePlanApplyAt, ChangePlanInput, ChangePlanResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, } from './types/subscription.types';
32
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG7F,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
10
10
  import { HttpClient } from '../http';
11
- import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth } from '../types/subscription.types';
11
+ import type { Subscription, CreateSubscriptionInput, CreateSubscriptionResponse, SubscriptionListFilters, SubscriptionListResponse, SubscriptionStats, CronStats, SubscriptionHealth, ChangePlanInput, ChangePlanResponse } from '../types/subscription.types';
12
12
  export declare class SubscriptionsModule {
13
13
  private readonly http;
14
14
  constructor(http: HttpClient);
@@ -50,5 +50,15 @@ export declare class SubscriptionsModule {
50
50
  * Требует clientApiKey в конструкторе
51
51
  */
52
52
  resume(id: string, userId: string): Promise<Subscription>;
53
+ /**
54
+ * Сменить тариф подписки.
55
+ * Требует clientApiKey в конструкторе.
56
+ */
57
+ changePlan(id: string, userId: string, input: ChangePlanInput): Promise<ChangePlanResponse>;
58
+ /**
59
+ * Отменить запланированную смену тарифа.
60
+ * Требует clientApiKey в конструкторе.
61
+ */
62
+ clearScheduledPlanChange(id: string, userId: string): Promise<Subscription>;
53
63
  }
54
64
  //# sourceMappingURL=subscriptions.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQhE"}
1
+ {"version":3,"file":"subscriptions.module.d.ts","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQhF;;;OAGG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAShF,mCAAmC;IAC7B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,qCAAqC;IAC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAOxC,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAS3C;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQhD;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;;OAIG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5F;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS/D;;;OAGG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;;OAGG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQlF"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Двойная аутентификация:
5
5
  * - create/list/getStats/getCronStats/health → Global API Key
6
- * - getById/cancel/pause/resume → Client API Key
6
+ * - getById/cancel/pause/resume/changePlan/clearScheduledPlanChange → Client API Key
7
7
  *
8
8
  * @module modules/subscriptions
9
9
  */
@@ -106,5 +106,32 @@ export class SubscriptionsModule {
106
106
  auth: 'client',
107
107
  });
108
108
  }
109
+ /**
110
+ * Сменить тариф подписки.
111
+ * Требует clientApiKey в конструкторе.
112
+ */
113
+ async changePlan(id, userId, input) {
114
+ return this.http.request({
115
+ method: 'POST',
116
+ path: `/api/subscriptions/${encodeURIComponent(id)}/change-plan`,
117
+ body: {
118
+ userId,
119
+ ...input,
120
+ },
121
+ auth: 'client',
122
+ });
123
+ }
124
+ /**
125
+ * Отменить запланированную смену тарифа.
126
+ * Требует clientApiKey в конструкторе.
127
+ */
128
+ async clearScheduledPlanChange(id, userId) {
129
+ return this.http.request({
130
+ method: 'POST',
131
+ path: `/api/subscriptions/${encodeURIComponent(id)}/clear-scheduled-change`,
132
+ body: { userId },
133
+ auth: 'client',
134
+ });
135
+ }
109
136
  }
110
137
  //# sourceMappingURL=subscriptions.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,OAAO,mBAAmB;IAC9B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,6BAA6B;IAE7B;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,IAA6B;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA6B;YACnD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,OAAgE;YACvE,GAAG,EAAE,IAAI,EAAE,kBAAkB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YAC1C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,2BAA2B;SAClC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAE7B;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACpD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,MAAc,EAAE,mBAA4B;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAC1D,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;YACrC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe;YACrC,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,SAAS;YAC3D,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"subscriptions.module.js","sourceRoot":"","sources":["../../../src/modules/subscriptions.module.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export interface Subscription {
20
20
  username?: string | null;
21
21
  status: SubscriptionStatus;
22
22
  planId: string;
23
+ scheduledPlanId?: string | null;
24
+ scheduledPlanChangeAt?: string | null;
23
25
  plan?: SubscriptionPlan;
24
26
  startDate: string;
25
27
  endDate?: string | null;
@@ -38,7 +40,7 @@ export interface Subscription {
38
40
  export interface CreateSubscriptionInput {
39
41
  /** UUID пользователя */
40
42
  userId: string;
41
- /** UUID плана */
43
+ /** ID плана */
42
44
  planId: string;
43
45
  username?: string;
44
46
  /** URL редиректа при успешной оплате */
@@ -101,4 +103,15 @@ export interface SubscriptionHealth {
101
103
  status: string;
102
104
  [key: string]: unknown;
103
105
  }
106
+ export type ChangePlanApplyAt = 'immediately' | 'end_of_period';
107
+ export interface ChangePlanInput {
108
+ newPlanId: string;
109
+ applyAt: ChangePlanApplyAt;
110
+ }
111
+ export interface ChangePlanResponse {
112
+ subscription: Subscription;
113
+ paymentLink?: string;
114
+ requiresPayment: boolean;
115
+ isScheduled: boolean;
116
+ }
104
117
  //# sourceMappingURL=subscription.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscription.types.d.ts","sourceRoot":"","sources":["../../../src/types/subscription.types.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,5 @@
9
9
  export { validateWebhookApiKey, parsePaymentWebhook, parseSubscriptionWebhook, } from './handler';
10
10
  export { createExpressWebhookMiddleware } from './express';
11
11
  export { robokassaWebhookPlugin } from './fastify';
12
- export type { PaymentWebhookPayload, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
12
+ export type { PaymentWebhookPayload, SubscriptionWebhookEventType, SubscriptionWebhookPayload, PaymentWebhookHandler, SubscriptionWebhookHandler, WebhookConfig, } from './types';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC"}
@@ -30,17 +30,22 @@ export interface PaymentWebhookPayload {
30
30
  recurringToken?: string | null;
31
31
  }
32
32
  /** Payload webhook изменения подписки (POST {apiUrl}/api/user/subscription-webhook) */
33
+ export type SubscriptionWebhookEventType = 'STATE_CHANGE' | 'UPCOMING_BILLING' | 'PLAN_CHANGED';
33
34
  export interface SubscriptionWebhookPayload {
34
35
  subscriptionId: string;
35
36
  userId: string;
36
37
  status: string;
37
38
  planId: string;
39
+ scheduledPlanId?: string | null;
40
+ scheduledPlanChangeAt?: string | null;
41
+ previousPlanId?: string | null;
38
42
  startDate: string;
39
43
  endDate: string | null;
40
44
  nextBillingDate?: string | null;
41
45
  isActive: boolean;
42
46
  autoRenew: boolean;
43
47
  language: string;
48
+ eventType: SubscriptionWebhookEventType;
44
49
  /** Код Robokassa-конфигурации (для мультикассы) */
45
50
  robokassaCode: string;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/webhooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GACpC,cAAc,GACd,kBAAkB,GAClB,cAAc,CAAC;AAEnB,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,4BAA4B,CAAC;IACxC,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iCAAiC;AACjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,kCAAkC;AAClC,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,kCAAkC;IAClC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besales/robokassa-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "SDK клиент для Robokassa Payment Microservice (server-side only)",
5
5
  "author": "Vlad Petlyuk",
6
6
  "license": "ISC",