class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"User('{self.username}')"
class Room(db.Model): id = db.Column(db.Integer, primary_key=True) room_code = db.Column(db.String(4), unique=True, nullable=False) num_teams = db.Column(db.Integer) names_per = db.Column(db.Integer) users = db.relationship('User', backref='user', lazy=True) names_in_bowl = db.relationship('Names', backref='bowlnames', lazy=True) roundNo = db.Column(db.Integer) ct = db.Column(db.Integer) full_time = db.Column(db.Integer, nullable=False) time_remaining = db.Column(db.Integer, nullable=False) timer_started = db.Column(db.Boolean, nullable=False) game_started = db.Column(db.String(4), nullable=False) scorecard = db.Column(db.Boolean, nullable=False) def __repr__(self): return f'{self.room_code}, {self.users}'
class User(db.Model): uid = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(16), unique=True, nullable=False) x = db.Column(db.Integer, nullable=False) y = db.Column(db.Integer, nullable=False) shirt = db.Column(db.Integer, nullable=False) hair = db.Column(db.Integer, nullable=False) skin = db.Column(db.Integer, nullable=False) eyes = db.Column(db.Integer, nullable=False) pants = db.Column(db.Integer, nullable=False) shoes = db.Column(db.Integer, nullable=False) hair_accessory = db.Column(db.Integer, nullable=False) map_id = db.Column(db.String(80), nullable=False) last_login = db.Column(db.Integer, nullable=False) _bag = db.Column('bag', db.String(128), nullable=False, default='[]', server_default='[]') _settings = db.Column('settings', db.String(1024), nullable=False, default='{}', server_default='{}') def __repr__(self): return '<User %r>' % self.username @hybrid_property def bag(self): return json.loads(self._bag) @bag.setter def bag(self, b): self._bag = json.dumps(b) @hybrid_property def settings(self): return json.loads(self._settings) @settings.setter def settings(self, s): self._settings = json.dumps(s)
class Names(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(120), nullable=False) added_by = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) in_room = db.Column(db.Integer, db.ForeignKey('room.id'), nullable=False) # These show which team scored a point on the name rnd1 = db.Column(db.Integer) rnd2 = db.Column(db.Integer) rnd3 = db.Column(db.Integer)
class Game(db.Model): id = db.Column(db.Integer, primary_key=True) date_created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) first_player_id = db.Column(db.Integer, db.ForeignKey('user.id')) second_player_id = db.Column(db.Integer, db.ForeignKey('user.id')) status = db.Column(db.Integer, nullable=False, default=0) settings = db.Column(db.String(1000)) state = db.Column(db.String(1000)) def __repr__(self): status = ['open', 'active', 'finished'][self.status] player_1 = load_user(self.first_player_id).username player_2 = User.query.filter_by(id=self.second_player_id).first() if player_2: return f"{player_1} vs {player_2.username}, {status} ({self.date_created}))" else: return f"{player_1}, {status} ({self.date_created}))"
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), nullable=False) team = db.Column(db.Integer) namesadded = db.relationship('Names', backref='names', lazy=True) room_id = db.Column(db.Integer, db.ForeignKey('room.id'), nullable=False) play_order = db.Column(db.Integer) in_play = db.Column(db.Boolean, nullable=False) def __repr__(self): return f'{self.username}, {self.team}, {self.room_id}'