Feat: User Relationships and Session Members.

This commit is contained in:
2026-02-28 19:53:50 +00:00
parent c7db290aaf
commit e8e9a02e7b
73 changed files with 3818 additions and 571 deletions

View File

@@ -14,6 +14,7 @@ import lib.argument_validation as av
from extensions import db
from helpers.helper_app import Helper_App
# external
from datetime import datetime
from dataclasses import dataclass
from typing import ClassVar
from sqlalchemy import bindparam
@@ -74,6 +75,8 @@ class MTG_Game(SQLAlchemy_ABC, Base):
game.active = av.input_bool(query_row[9], cls.FLAG_ACTIVE, _m)
game.created_on = query_row[10]
game.created_by_user_id = query_row[11]
game.updated_last_on = query_row[12]
game.updated_last_by_user_id = query_row[13]
return game
@classmethod
@@ -91,8 +94,16 @@ class MTG_Game(SQLAlchemy_ABC, Base):
game.starting_life = json.get(cls.FLAG_STARTING_LIFE, 40)
game.end_on = json.get(cls.FLAG_END_ON, None)
game.active = av.input_bool(json.get(cls.FLAG_ACTIVE, True), cls.FLAG_ACTIVE, _m)
game.created_on = json.get(cls.FLAG_CREATED_ON, None)
_created_on = json.get(Base.FLAG_CREATED_ON, None)
if isinstance(_created_on, str):
_created_on = datetime.strptime(_created_on, '%a, %d %b %Y %H:%M:%S %Z')
game.created_on = _created_on
game.created_by_user_id = json.get(Base.ATTR_USER_ID, None)
_updated_last_on = json.get(Base.FLAG_UPDATED_LAST_ON, None)
if isinstance(_updated_last_on, str):
_updated_last_on = datetime.strptime(_updated_last_on, '%a, %d %b %Y %H:%M:%S %Z')
game.updated_last_on = _updated_last_on
game.updated_last_by_user_id = json.get(Base.FLAG_UPDATED_LAST_BY_USER_ID, None)
return game
def to_json(self):
@@ -109,7 +120,9 @@ class MTG_Game(SQLAlchemy_ABC, Base):
, self.FLAG_END_ON: self.end_on
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
, Base.ATTR_USER_ID: self.created_by_user_id
, self.FLAG_CREATED_BY_USER_ID: self.created_by_user_id
, self.FLAG_UPDATED_LAST_ON: self.updated_last_on
, self.FLAG_UPDATED_LAST_BY_USER_ID: self.updated_last_by_user_id
}
return as_json
@@ -127,7 +140,9 @@ class MTG_Game(SQLAlchemy_ABC, Base):
{self.FLAG_STARTING_LIFE}: {self.starting_life}
{self.FLAG_ACTIVE}: {self.active}
{self.FLAG_CREATED_ON}: {self.created_on}
{Base.ATTR_USER_ID}: {self.created_by_user_id}
{self.FLAG_CREATED_BY_USER_ID}: {self.created_by_user_id}
{self.FLAG_UPDATED_LAST_ON}: {self.updated_last_on}
{self.FLAG_UPDATED_LAST_BY_USER_ID}: {self.updated_last_by_user_id}
)
'''