| |
|
|
| import logging |
| from collections import defaultdict |
|
|
| logging.basicConfig(level=logging.INFO) |
|
|
| |
| USER_REVENUE = defaultdict(list) |
|
|
| class RevenueTracker: |
| def __init__(self): |
| self.revenue_data = USER_REVENUE |
|
|
| def log_affiliate_click(self, user_id: str, app_title: str, earning: float = 0.30): |
| found = False |
| for app in self.revenue_data[user_id]: |
| if app[0] == app_title: |
| app[1] += 1 |
| app[2] += earning |
| found = True |
| break |
| if not found: |
| self.revenue_data[user_id].append([app_title, 1, earning]) |
| logging.info(f"[💰] Click tracked: {user_id} - {app_title} +${earning:.2f}") |
|
|
| def get_user_earnings(self, user_id: str): |
| return [ |
| {"title": a[0], "clicks": a[1], "revenue": a[2]} |
| for a in self.revenue_data.get(user_id, []) |
| ] |
|
|
| |
| if __name__ == "__main__": |
| tracker = RevenueTracker() |
| tracker.log_affiliate_click("user_001", "WaveBot") |
| tracker.log_affiliate_click("user_001", "WaveBot") |
| tracker.log_affiliate_click("user_001", "EduHelper", 0.45) |
| print(tracker.get_user_earnings("user_001")) |
|
|