Add database models
This commit is contained in:
parent
b43ee8a39c
commit
ddbb884a43
44
GhostBallBot/database/models.py
Normal file
44
GhostBallBot/database/models.py
Normal file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright 2022 - c0de <c0de@c0de.dev>
|
||||
# Licensed under the MIT License (https://opensource.org/licenses/MIT)
|
||||
|
||||
import os
|
||||
import datetime
|
||||
|
||||
from peewee import *
|
||||
|
||||
# User can provide path to database, or it will be put next to models.py
|
||||
DATABASE = os.environ.get('database_path', os.getcwd() + '/ghostball.db')
|
||||
database = SqliteDatabase(DATABASE)
|
||||
|
||||
class BaseModel(Model):
|
||||
"""All of our models will inherit this class
|
||||
and use the same database connection"""
|
||||
|
||||
class Meta:
|
||||
database = database
|
||||
|
||||
class GameModel(BaseModel):
|
||||
|
||||
game_id = UUIDField(primary_key=True)
|
||||
server_id = UUIDField() # Unsure if this is actually a uuid
|
||||
|
||||
pitch_value = IntegerField(null=True)
|
||||
date_created = DateTimeField(default=datetime.datetime.now)
|
||||
|
||||
class GuessModel(BaseModel):
|
||||
|
||||
player_id = IntegerField(primary_key=True)
|
||||
game_id = ForeignKeyField(Game, backref="guesses")
|
||||
|
||||
player_name = CharField()
|
||||
guess = IntegerField()
|
||||
difference = IntegerField(null=True)
|
||||
|
||||
# TODO: Add unique constraint for player_id and game_id
|
||||
# ie: one guess per player allowed per game
|
||||
|
||||
|
||||
def create_models():
|
||||
with database:
|
||||
database.create_tables([Play, Guess])
|
Loading…
Reference in New Issue
Block a user