diff --git a/packages/graphql/api/subscriptions.ts b/packages/graphql/api/subscriptions.ts index ded79d6..084b892 100644 --- a/packages/graphql/api/subscriptions.ts +++ b/packages/graphql/api/subscriptions.ts @@ -44,6 +44,22 @@ export class SubscriptionsService extends BaseService { // Получаем пользователя и проверяем бан const { customer } = await this.checkIsBanned(); + // Проверяем, не использовал ли пользователь уже пробный период + const { subscription: existingSubscription } = await this.getSubscription({ + telegramId: customer.telegramId, + }); + if (existingSubscription) { + // Проверяем, есть ли в истории успешная пробная подписка + const hasUsedTrial = existingSubscription.subscriptionHistories?.some( + (item) => + item?.period === GQL.Enum_Subscriptionhistory_Period.Trial && + item?.state === GQL.Enum_Subscriptionhistory_State.Success, + ); + if (hasUsedTrial) { + throw new Error('Пробный период уже был использован'); + } + } + // Получаем цены подписки для определения длительности пробного периода const { subscriptionPrices } = await this.getSubscriptionPrices({ isActive: true }); if (!subscriptionPrices) throw new Error('Subscription prices not found');