Skip to content

feat: suporte a assinaturas Chatbot nos webhooks Stripe#1020

Merged
Winzen merged 2 commits into
mainfrom
feat/stripe_chatbot
Apr 28, 2026
Merged

feat: suporte a assinaturas Chatbot nos webhooks Stripe#1020
Winzen merged 2 commits into
mainfrom
feat/stripe_chatbot

Conversation

@AldemirLucas
Copy link
Copy Markdown
Contributor

@AldemirLucas AldemirLucas commented Apr 28, 2026

O sistema de pagamento tratava todos os planos Stripe da mesma forma, sem distinguir entre BDPro e Chatbot. Isso impedia que um usuário tivesse assinaturas ativas de tipos diferentes e gerava comportamentos incorretos nos webhooks — como tentar remover um usuário do Google Group ao cancelar um plano Chatbot.

Principais mudanças

1. Nova função get_product_slug em webhooks.py

Extrai o slug do produto (code) a partir dos metadados da assinatura Stripe, consultando tanto subscription.plan.product quanto subscription.items como fallback. Retorna string vazia em caso de erro.

def get_product_slug(subscription_model=None, event=None, event_context: str = None) -> str:
    ...
    return djstripe_sub.plan.product.metadata.get("code", "")

2. Webhooks diferenciam plano BDPro de Chatbot

Os handlers handle_subscription, unsubscribe, pause_subscription e resume_subscription agora verificam is_chatbot_plan antes de agir:

  • Chatbot ativo/retomado → seta account.has_chatbot_access = True
  • Chatbot cancelado/pausado → seta account.has_chatbot_access = False
  • BDPro → comportamento anterior (add/remove do Google Group)

3. Múltiplas assinaturas ativas de tipos diferentes

A mutation CreateSubscription em graphql.py agora permite que um usuário tenha uma assinatura BDPro e uma Chatbot simultaneamente. O bloqueio só ocorre se já existir uma assinatura ativa do mesmo tipo:

if is_new_chatbot == is_existing_chatbot:
    return cls(errors=["Conta possui inscrição ativa para este tipo de plano"])

@AldemirLucas AldemirLucas requested a review from Winzen April 28, 2026 18:17
@AldemirLucas AldemirLucas self-assigned this Apr 28, 2026
@AldemirLucas AldemirLucas changed the title Feat/stripe chatbot Feat/stripe chatbot v1 Apr 28, 2026
@Winzen Winzen added the prod Indica que o Pull Request está com a branch de destino (base) apontando para main label Apr 28, 2026
@Winzen Winzen changed the title Feat/stripe chatbot v1 feat: suporte a assinaturas Chatbot nos webhooks Stripe Apr 28, 2026
@Winzen Winzen linked an issue Apr 28, 2026 that may be closed by this pull request
5 tasks
@Winzen Winzen merged commit bfff883 into main Apr 28, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prod Indica que o Pull Request está com a branch de destino (base) apontando para main

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: suporte a assinaturas Chatbot nos webhooks Stripe

2 participants