Add sql models and domain models
This commit is contained in:
93
.gitignore
vendored
Normal file
93
.gitignore
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
.hypothesis/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# IPython Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
# dotenv
|
||||
.env
|
||||
|
||||
# virtualenv
|
||||
.venv/
|
||||
venv/
|
||||
ENV/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
.idea
|
||||
install.txt
|
||||
0
dsst/dsst_core/__init__.py
Normal file
0
dsst/dsst_core/__init__.py
Normal file
59
dsst/dsst_core/core.py
Normal file
59
dsst/dsst_core/core.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import datetime
|
||||
from dsst_core import models, sql
|
||||
|
||||
|
||||
class DSSTCore:
|
||||
def __init__(self):
|
||||
# Set DB Connection
|
||||
sql.create_tables()
|
||||
|
||||
@staticmethod
|
||||
def insert_player(model: models.Player):
|
||||
sql.Player.create(name=model.name, hex_id=model.hex_id)
|
||||
|
||||
@staticmethod
|
||||
def insert_enemy(enemy: models.Enemy):
|
||||
sql.Enemy.create(name=enemy.name)
|
||||
|
||||
@staticmethod
|
||||
def insert_drink(model: models.Drink):
|
||||
sql.Drink.create(name=model.name, vol=model.vol)
|
||||
|
||||
@staticmethod
|
||||
def insert_season(season: models.Season):
|
||||
sql.Season.create(number=season.number, game_name=season.game_name, start_date=season.start_date,
|
||||
end_date=season.end_date)
|
||||
|
||||
@staticmethod
|
||||
def insert_episode(episode: models.Episode):
|
||||
sql.Episode.update()
|
||||
|
||||
if __name__ == '__main__':
|
||||
core = DSSTCore()
|
||||
# Insert player
|
||||
# player = models.Player()
|
||||
# player.name = 'Marvin'
|
||||
# core.insert_player(player)
|
||||
|
||||
# Insert a Season
|
||||
# season = models.Season()
|
||||
# season.number = 1
|
||||
# season.game_name = 'Dark Souls'
|
||||
# season.start_date = datetime.date(2017, 1, 1)
|
||||
# core.insert_season(season)
|
||||
|
||||
# core.insert_drink(models.Drink({'name': 'Pfeffi', 'vol': 22.5}))
|
||||
|
||||
# core.insert_enemy(models.Enemy({'name': 'Newton'}))
|
||||
|
||||
# Insert an episode
|
||||
ep = models.Episode()
|
||||
ep.date = datetime.date(2017, 2, 5)
|
||||
ep.number = 1
|
||||
ep.seq_number = 1
|
||||
ep.players = [models.Player({'id': 1,}), models.Player({'id': 2})]
|
||||
ep.deaths = [models.Death({
|
||||
'player': 1,
|
||||
'enemy': 1,
|
||||
'penalty': 1,
|
||||
})]
|
||||
63
dsst/dsst_core/models.py
Normal file
63
dsst/dsst_core/models.py
Normal file
@@ -0,0 +1,63 @@
|
||||
class Season:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.game_name = arg.get('game_name')
|
||||
self.number = arg.get('number')
|
||||
self.start_date = arg.get('start_date')
|
||||
self.end_date = arg.get('end_date')
|
||||
|
||||
self.players = arg.get('players')
|
||||
self.enemies = arg.get('enemies')
|
||||
self.episodes = arg.get('episodes')
|
||||
|
||||
|
||||
class Episode:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.seq_number = arg.get('seq_number')
|
||||
self.number = arg.get('number')
|
||||
self.date = arg.get('date')
|
||||
|
||||
self.players = arg.get('players')
|
||||
self.enemies = arg.get('enemies')
|
||||
self.deaths = arg.get('deaths')
|
||||
self.victories = arg.get('victories')
|
||||
|
||||
|
||||
class GameEvent:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.player = arg.get('player')
|
||||
self.enemy = arg.get('enemy')
|
||||
self.info = arg.get('info')
|
||||
|
||||
|
||||
class Death(GameEvent):
|
||||
def __init__(self, arg={}):
|
||||
GameEvent.__init__(self, arg)
|
||||
self.penalty = arg.get('penalty')
|
||||
|
||||
|
||||
class Victory(GameEvent):
|
||||
def __init__(self, arg={}):
|
||||
GameEvent.__init__(self, arg)
|
||||
|
||||
|
||||
class Player:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.name = arg.get('name')
|
||||
self.hex_id = arg.get('hex_id')
|
||||
|
||||
|
||||
class Enemy:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.name = arg.get('name')
|
||||
|
||||
|
||||
class Drink:
|
||||
def __init__(self, arg={}):
|
||||
self.id = arg.get('id')
|
||||
self.name = arg.get('name')
|
||||
self.vol = arg.get('vol')
|
||||
116
dsst/dsst_core/sql.py
Normal file
116
dsst/dsst_core/sql.py
Normal file
@@ -0,0 +1,116 @@
|
||||
from peewee import *
|
||||
|
||||
connection = MySQLDatabase('dsst', user='dsst', password='dsst')
|
||||
|
||||
|
||||
class Season(Model):
|
||||
id = AutoField()
|
||||
number = IntegerField()
|
||||
game_name = CharField()
|
||||
start_date = DateField(null=True)
|
||||
end_date = DateField(null=True)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Episode(Model):
|
||||
id = AutoField()
|
||||
seq_number = IntegerField()
|
||||
number = CharField()
|
||||
date = DateTimeField(null=True)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Player(Model):
|
||||
id = AutoField()
|
||||
name = CharField()
|
||||
hex_id = CharField(null=True)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Drink(Model):
|
||||
id = AutoField()
|
||||
name = CharField()
|
||||
vol = DecimalField()
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Enemy(Model):
|
||||
id = AutoField()
|
||||
name = CharField()
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Death(Model):
|
||||
id = AutoField()
|
||||
info = CharField(null=True)
|
||||
player = ForeignKeyField(Player)
|
||||
enemy = ForeignKeyField(Enemy)
|
||||
penalty = ForeignKeyField(Drink)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class Victory(Model):
|
||||
id = AutoField()
|
||||
info = CharField(null=True)
|
||||
player = ForeignKeyField(Player)
|
||||
enemy = ForeignKeyField(Enemy)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class SeasonEpisode(Model):
|
||||
id = AutoField()
|
||||
season = ForeignKeyField(Season)
|
||||
episode = ForeignKeyField(Episode)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class EpisodePlayer(Model):
|
||||
id = AutoField()
|
||||
episode = ForeignKeyField(Episode,)
|
||||
player = ForeignKeyField(Player)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class EpisodeDeath(Model):
|
||||
id = AutoField()
|
||||
episode = ForeignKeyField(Episode)
|
||||
death = ForeignKeyField(Death)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
class EpisodeVictory(Model):
|
||||
id = AutoField()
|
||||
episode = ForeignKeyField(Episode)
|
||||
victory = ForeignKeyField(Victory)
|
||||
|
||||
class Meta:
|
||||
database = connection
|
||||
|
||||
|
||||
def create_tables():
|
||||
models = [Season, Episode, Player, Drink, Enemy, Death, Victory, SeasonEpisode, EpisodePlayer, EpisodeDeath,
|
||||
EpisodeVictory]
|
||||
for model in models:
|
||||
model.create_table()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user