feat: Add demo users and trial logic uniformity

This commit is contained in:
2026-09-23 12:42:07 +05:30
parent a3e430cb67
commit 2488311661
3 changed files with 59 additions and 51 deletions

View File

@@ -248,17 +248,17 @@ def login(payload: LoginPayload, session: Session = Depends(get_session)):
import bcrypt
# Allow demo/admin mock logic to still work if needed
# demo@pragativeer.com → Neha Verma (AI Coach demo account)
NEHA_UUID = "33333333-3333-3333-3333-333333333333"
# demo@pragativeer.com → Aarav (AI Coach demo account)
DEMO_UUID = "11111111-1111-1111-1111-111111111111"
if payload.email == "demo@pragativeer.com" and payload.password == "Pv9#kL2$mQ8!vX4@":
import uuid as _uuid
demo_user = session.get(models.User, _uuid.UUID(NEHA_UUID))
demo_user = session.get(models.User, _uuid.UUID(DEMO_UUID))
if not demo_user:
# Fallback: look for any demo-tagged user
demo_user = session.exec(select(models.User).where(
(models.User.email == "demo@pragativeer.com") | (models.User.name == "Neha Verma")
(models.User.email == "demo@pragativeer.com") | (models.User.name == "Aarav")
)).first()
token_id = str(demo_user.id) if demo_user else NEHA_UUID
token_id = str(demo_user.id) if demo_user else DEMO_UUID
access_token = create_access_token(data={"sub": token_id})
return {"success": True, "role": "user", "token": access_token, "user_id": token_id}
if payload.email == "admin@pragativeer.com" and payload.password == "Pv9#kL2$mQ8!vX4@":
@@ -683,52 +683,52 @@ def get_referral_dashboard(user_id: UUID, session: Session = Depends(get_session
# --- USERS & DEMO PROFILES ---
DEMO_DEFINITIONS = {
UUID("b0e17378-864d-439e-8806-708dc48a891b"): {
"name": "Rahul Sharma",
"email": "rahul.demo@pragativeer.com",
"phone": "9999999999",
UUID("11111111-1111-1111-1111-111111111111"): {
"name": "Aarav",
"email": "aarav.jee@pragativeer.com",
"phone": "9999999991",
"student_class": models.ClassEnum.TWELFTH,
"medium": models.MediumEnum.ENGLISH,
"target_exam": models.ExamEnum.JEE_MAIN,
"city": "New Delhi",
"state": "Delhi",
"school": "Delhi Public School, R.K. Puram",
"school": "Delhi Public School",
"tier": models.TierEnum.AI_COACH,
"streak_count": 6,
"longest_streak": 6,
},
UUID("33333333-3333-3333-3333-333333333333"): {
"name": "Neha Verma",
"email": "neha.demo@pragativeer.com",
"phone": "9999999997",
UUID("22222222-2222-2222-2222-222222222222"): {
"name": "Neha",
"email": "neha.neet@pragativeer.com",
"phone": "9999999992",
"student_class": models.ClassEnum.TWELFTH,
"medium": models.MediumEnum.ENGLISH,
"target_exam": models.ExamEnum.JEE_MAIN,
"target_exam": models.ExamEnum.NEET,
"city": "New Delhi",
"state": "Delhi",
"school": "Modern School, Barakhamba Road",
"school": "Modern School",
"tier": models.TierEnum.AI_COACH,
"streak_count": 15,
"longest_streak": 25,
},
UUID("22222222-2222-2222-2222-222222222222"): {
"name": "Priya Singh",
"email": "priya.demo@pragativeer.com",
"phone": "9999999996",
UUID("33333333-3333-3333-3333-333333333333"): {
"name": "Rohan",
"email": "rohan.jeeneet@pragativeer.com",
"phone": "9999999993",
"student_class": models.ClassEnum.TWELFTH,
"medium": models.MediumEnum.ENGLISH,
"target_exam": models.ExamEnum.NEET,
"target_exam": models.ExamEnum.JEE_MAIN, # Defaulting to JEE_MAIN in DB
"city": "Lucknow",
"state": "Uttar Pradesh",
"school": "City Montessori School",
"tier": models.TierEnum.PRO,
"tier": models.TierEnum.AI_COACH,
"streak_count": 42,
"longest_streak": 42,
},
UUID("11111111-1111-1111-1111-111111111111"): {
"name": "Amit Kumar",
"email": "amit.demo@pragativeer.com",
"phone": "9999999995",
UUID("44444444-4444-4444-4444-444444444444"): {
"name": "Amit",
"email": "amit.free@pragativeer.com",
"phone": "9999999994",
"student_class": models.ClassEnum.ELEVENTH,
"medium": models.MediumEnum.ENGLISH,
"target_exam": models.ExamEnum.JEE_MAIN,
@@ -781,7 +781,7 @@ def switch_user_endpoint(id: str, session: Session = Depends(get_session)):
"usr_01": "11111111-1111-1111-1111-111111111111",
"usr_02": "22222222-2222-2222-2222-222222222222",
"usr_03": "33333333-3333-3333-3333-333333333333",
"usr_04": "b0e17378-864d-439e-8806-708dc48a891b",
"usr_04": "44444444-4444-4444-4444-444444444444",
}
target_id_str = mapping.get(id, id)
try: