Spaces:
Running
Running
imtrt004 commited on
Commit ·
96e8fa5
1
Parent(s): 915613c
fix: default to FREE tier if profile row missing, upsert on first upload
Browse files- 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 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|