hamster-tools/hamstertools/db.py

62 lines
1.3 KiB
Python
Raw Normal View History

2023-10-27 23:42:30 +00:00
import logging
from peewee import SqliteDatabase, Model, CharField, DateField, ForeignKeyField
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
from textual.logging import TextualHandler
2023-10-27 18:32:16 +00:00
2023-10-27 23:42:30 +00:00
logger = logging.getLogger('peewee')
logger.addHandler(TextualHandler())
logger.setLevel(logging.DEBUG)
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
db = SqliteDatabase(None)
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class HamsterCategory(Model):
name = CharField()
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'categories'
2023-10-27 18:32:16 +00:00
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class HamsterActivity(Model):
name = CharField()
category = ForeignKeyField(HamsterCategory, backref='activities')
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'activities'
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class HamsterFact(Model):
activity = ForeignKeyField(HamsterActivity, backref='facts')
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'facts'
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class KimaiCustomer(Model):
name = CharField()
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'kimai_customers'
2023-10-27 03:04:30 +00:00
2023-10-27 15:28:46 +00:00
2023-10-27 23:42:30 +00:00
class KimaiProject(Model):
name = CharField()
customer = ForeignKeyField(KimaiCustomer, backref='projects')
2023-10-27 15:28:46 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'kimai_projects'
2023-10-27 15:28:46 +00:00
2023-10-27 23:42:30 +00:00
class KimaiActivity(Model):
name = CharField()
project = ForeignKeyField(KimaiProject, backref='activities')
2023-10-27 03:04:30 +00:00
2023-10-27 23:42:30 +00:00
class Meta:
database = db
table_name = 'kimai_activities'