Update routes/subscription.py
Browse files- routes/subscription.py +7 -3
routes/subscription.py
CHANGED
@@ -880,13 +880,17 @@ async def create_price(
|
|
880 |
new_price_id = price.id
|
881 |
logger.info(f"✅ New price created: {new_price_id}")
|
882 |
|
883 |
-
# 🔹 7. Se já houver um price_id, cancelar assinaturas ativas
|
884 |
if existing_price_id:
|
885 |
subscriptions = stripe.Subscription.list(status="active")
|
886 |
for sub in subscriptions.auto_paging_iter():
|
887 |
if sub["items"]["data"][0]["price"]["id"] == existing_price_id:
|
888 |
-
|
889 |
-
|
|
|
|
|
|
|
|
|
890 |
|
891 |
# 🔹 8. Atualizar Supabase com o novo price_id e valores adicionais
|
892 |
update_data = {
|
|
|
880 |
new_price_id = price.id
|
881 |
logger.info(f"✅ New price created: {new_price_id}")
|
882 |
|
883 |
+
# 🔹 7. Se já houver um price_id, cancelar e modificar assinaturas ativas com o novo preço
|
884 |
if existing_price_id:
|
885 |
subscriptions = stripe.Subscription.list(status="active")
|
886 |
for sub in subscriptions.auto_paging_iter():
|
887 |
if sub["items"]["data"][0]["price"]["id"] == existing_price_id:
|
888 |
+
# Atualiza o price_id antes de cancelar a assinatura
|
889 |
+
stripe.Subscription.modify(sub.id, items=[{
|
890 |
+
"id": sub["items"]["data"][0]["id"],
|
891 |
+
"price": new_price_id
|
892 |
+
}], cancel_at_period_end=True)
|
893 |
+
logger.info(f"🔹 Subscription {sub.id} set to cancel at period end and updated with new price {new_price_id}.")
|
894 |
|
895 |
# 🔹 8. Atualizar Supabase com o novo price_id e valores adicionais
|
896 |
update_data = {
|