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