imtrt004 commited on
Commit
96e8fa5
·
1 Parent(s): 915613c

fix: default to FREE tier if profile row missing, upsert on first upload

Browse files
Files changed (1) hide show
  1. persistence/tier.py +12 -2
persistence/tier.py CHANGED
@@ -26,8 +26,18 @@ MSG_LIMIT: dict[Tier, int | None] = {Tier.FREE: 5, Tier.PRO: 100, Tier.SCHOLAR:
26
 
27
 
28
  def get_user_tier(user_id: str) -> Tier:
29
- r = _client().table("profiles").select("tier").eq("id", user_id).single().execute()
30
- return Tier(r.data.get("tier", "free"))
 
 
 
 
 
 
 
 
 
 
31
 
32
 
33
  def get_expiry(tier: Tier) -> datetime:
 
26
 
27
 
28
  def get_user_tier(user_id: str) -> Tier:
29
+ """Return user tier, defaulting to FREE if profile row doesn't exist yet."""
30
+ try:
31
+ r = _client().table("profiles").select("tier").eq("id", user_id).single().execute()
32
+ return Tier(r.data.get("tier", "free"))
33
+ except Exception:
34
+ # Profile row not yet created (new user or migration not run) — default to free
35
+ # and upsert a row so subsequent calls succeed
36
+ try:
37
+ _client().table("profiles").upsert({"id": user_id, "tier": "free"}).execute()
38
+ except Exception:
39
+ pass
40
+ return Tier.FREE
41
 
42
 
43
  def get_expiry(tier: Tier) -> datetime: