| |
|
|
| import os |
| import logging |
|
|
| logging.basicConfig(level=logging.INFO) |
|
|
| |
| class TokenManager: |
| def __init__(self, free_tier=True): |
| self.free_tier_enabled = free_tier |
| self.user_tokens = {} |
|
|
| def register_user(self, user_id: str): |
| if user_id not in self.user_tokens: |
| self.user_tokens[user_id] = 5 if self.free_tier_enabled else 0 |
| logging.info(f"[π³] Registered user '{user_id}' with {self.user_tokens[user_id]} tokens.") |
|
|
| def deduct_token(self, user_id: str) -> bool: |
| if self.user_tokens.get(user_id, 0) > 0: |
| self.user_tokens[user_id] -= 1 |
| logging.info(f"[π»] Deducted token from '{user_id}'. Remaining: {self.user_tokens[user_id]}") |
| return True |
| else: |
| logging.warning(f"[π«] No tokens left for '{user_id}'.") |
| return False |
|
|
| def add_tokens(self, user_id: str, amount: int): |
| self.user_tokens[user_id] = self.user_tokens.get(user_id, 0) + amount |
| logging.info(f"[β] Added {amount} tokens to '{user_id}'. Total: {self.user_tokens[user_id]}") |
|
|
| def check_balance(self, user_id: str) -> int: |
| return self.user_tokens.get(user_id, 0) |
|
|
| |
| if __name__ == "__main__": |
| tm = TokenManager() |
| tm.register_user("user_001") |
| print("Balance:", tm.check_balance("user_001")) |
| tm.deduct_token("user_001") |
| print("Balance:", tm.check_balance("user_001")) |
|
|