From 7dbbb27228e03bff31f6b092c22f8b1d31f6d1a2 Mon Sep 17 00:00:00 2001 From: outruncolors <78451621+outruncolors@users.noreply.github.com> Date: Fri, 16 Sep 2022 14:10:45 -0500 Subject: [PATCH] Remove winnings column from user and replace with a calculated value (#356) * Remove winnings column from user and replace with a calculated value * Handle case for no games played * Idiomatic --- files/classes/user.py | 11 ++++++++++- sql/20220916-remove-winnings-column.sql | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 sql/20220916-remove-winnings-column.sql diff --git a/files/classes/user.py b/files/classes/user.py index a174eff70..1b19ea8cd 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -1,9 +1,11 @@ from sqlalchemy.orm import deferred, aliased +from sqlalchemy.sql import func from secrets import token_hex import pyotp from files.helpers.discord import remove_user from files.helpers.media import * from files.helpers.const import * +from files.classes.casino_game import Casino_Game from files.helpers.twentyone import get_active_twentyone_game_state from files.helpers.sorting_and_time import * from .alts import Alt @@ -58,7 +60,6 @@ class User(Base): marseyawarded = Column(Integer) rehab = Column(Integer) longpost = Column(Integer) - winnings = Column(Integer, default=0) unblockable = Column(Boolean) bird = Column(Integer) email = deferred(Column(String)) @@ -925,3 +926,11 @@ class User(Base): @lazy def active_blackjack_game(self): return json.dumps(get_active_twentyone_game_state(self)) + + @property + @lazy + def winnings(self): + from_casino = g.db.query(func.sum(Casino_Game.winnings)).filter(Casino_Game.user_id == self.id).one()[0] + from_casino_value = from_casino or 0 + + return from_casino_value + self.total_lottery_winnings \ No newline at end of file diff --git a/sql/20220916-remove-winnings-column.sql b/sql/20220916-remove-winnings-column.sql new file mode 100644 index 000000000..cf698ff5f --- /dev/null +++ b/sql/20220916-remove-winnings-column.sql @@ -0,0 +1 @@ +alter table users drop column winnings; \ No newline at end of file