Files
pragativeer-v2/backend/growth.py

37 lines
1.2 KiB
Python

from sqlmodel import Session, select
from uuid import UUID
import uuid
from datetime import timedelta
import models
def generate_referral_link(user_id: UUID) -> str:
"""Generates a unique shortcode for the user to share."""
# Using a simple deterministic slice for the local sandbox
shortcode = str(user_id).split("-")[0]
return f"https://pragativeer.com/join/{shortcode}"
def process_referral_reward(referrer_id: UUID, new_user_id: UUID, session: Session):
"""
Grants both users 7 days of AI Coach access for free as per PRD Section 3.2.
"""
referrer = session.get(models.User, referrer_id)
new_user = session.get(models.User, new_user_id)
if referrer and new_user:
# Upgrade both to AI Coach
referrer.tier = models.TierEnum.AI_COACH
new_user.tier = models.TierEnum.AI_COACH
# Add 7 days to their trial/subscription end dates
from datetime import datetime
now = datetime.utcnow()
referrer.subscription_end = (referrer.subscription_end or now) + timedelta(days=7)
new_user.trial_end = now + timedelta(days=7)
session.add(referrer)
session.add(new_user)
session.commit()
return True
return False