From 5affa16505b17517ab636fcc565417a655f64e29 Mon Sep 17 00:00:00 2001 From: Thomas Peetz Date: Sat, 11 Jan 2025 19:00:58 +0100 Subject: [PATCH] add tysc schema --- qt/database/base.py | 2 +- qt/database/media.py | 6 +- qt/database/metadata.py | 6 +- qt/database/tysc.py | 68 +++++++++++++++++++ .../de/thpeetz/kontor/tysc/data/Team.java | 1 - 5 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 qt/database/tysc.py diff --git a/qt/database/base.py b/qt/database/base.py index fb74a49..9339e51 100644 --- a/qt/database/base.py +++ b/qt/database/base.py @@ -1,7 +1,7 @@ +from sqlalchemy import Column, String, DateTime, Integer from sqlalchemy.orm import DeclarativeBase, relationship, sessionmaker class Base(DeclarativeBase): pass - diff --git a/qt/database/media.py b/qt/database/media.py index ebebc57..621fdce 100644 --- a/qt/database/media.py +++ b/qt/database/media.py @@ -1,5 +1,5 @@ -from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String -from sqlalchemy.orm import relationship +from sqlalchemy import Boolean, Column, DateTime, Integer, String +from sqlalchemy.dialects.mysql import BIT from database.base import Base @@ -13,7 +13,7 @@ class MediaFile(Base): cloud_link = Column(String(255)) file_name = Column(String(255)) path = Column(String(255)) - review = Column(Boolean, default=True) + review = Column(BIT(1), default=True) title = Column(String(255)) url = Column(String(255)) should_download = Column(Boolean, default=True) diff --git a/qt/database/metadata.py b/qt/database/metadata.py index 2fd0af7..e1b9084 100644 --- a/qt/database/metadata.py +++ b/qt/database/metadata.py @@ -1,4 +1,5 @@ from sqlalchemy import Column, String, ForeignKey, DateTime, Integer, Boolean +from sqlalchemy.dialects.mysql import BIT from sqlalchemy.orm import relationship from database import Base @@ -34,8 +35,8 @@ class MetaDataColumn(Base): table = relationship("MetaDataTable", back_populates="table_columns") column_label = Column(String(255)) filter_label = Column(String(255)) - is_shown = Column(Boolean) - show_filter = Column(Boolean) + is_shown = Column(BIT(1)) + show_filter = Column(BIT(1)) def __repr__(self): if self.column_name is None: @@ -45,4 +46,3 @@ class MetaDataColumn(Base): def __str__(self): return f'{self.column_name}({self.id})' - diff --git a/qt/database/tysc.py b/qt/database/tysc.py new file mode 100644 index 0000000..e78ff17 --- /dev/null +++ b/qt/database/tysc.py @@ -0,0 +1,68 @@ +from sqlalchemy import Boolean, Column, DateTime, Integer, String, ForeignKey +from sqlalchemy.dialects.mysql import BIT +from sqlalchemy.orm import relationship + +from database.base import Base + + +class Sport(Base): + __tablename__ = "sport" + id = Column(String, primary_key=True) + created_date = Column(DateTime) + last_modified_date = Column(DateTime) + version = Column(Integer) + name = Column(String(255)) + teams = relationship("Team") + positions = relationship("FieldPosition") + + +class Team(Base): + __tablename__ = "team" + id = Column(String, primary_key=True) + created_date = Column(DateTime) + last_modified_date = Column(DateTime) + version = Column(Integer) + name = Column(String(255)) + short_name = Column(String(255)) + sport_id = Column(String, ForeignKey("sport.id")) + sport = relationship("Sport", back_populates="positions") + roosters = relationship("Rooster") + + +class FieldPosition(Base): + __tablename__ = "field_position" + id = Column(String, primary_key=True) + created_date = Column(DateTime) + last_modified_date = Column(DateTime) + version = Column(Integer) + name = Column(String(255)) + short_name = Column(String(255)) + sport_id = Column(String, ForeignKey("sport.id")) + sport = relationship("Sport", back_populates="positions") + roosters = relationship("Rooster") + + +class Player(Base): + __tablename__ = "player" + id = Column(String, primary_key=True) + created_date = Column(DateTime) + last_modified_date = Column(DateTime) + version = Column(Integer) + first_name = Column(String(255)) + last_name = Column(String(255)) + roosters = relationship("Rooster") + + +class Rooster(Base): + __tablename__ = "rooster" + id = Column(String, primary_key=True) + created_date = Column(DateTime) + last_modified_date = Column(DateTime) + version = Column(Integer) + year = Column(Integer) + team_id = Column(String, ForeignKey("team.id")) + team = relationship("Team", back_populates="roosters") + player_id = Column(String, ForeignKey("player.id")) + player = relationship("Player", back_populates="roosters") + position_id = Column(String, ForeignKey("field_position.id")) + position = relationship("roosters") diff --git a/springboot/src/main/java/de/thpeetz/kontor/tysc/data/Team.java b/springboot/src/main/java/de/thpeetz/kontor/tysc/data/Team.java index b61fdd2..353da78 100644 --- a/springboot/src/main/java/de/thpeetz/kontor/tysc/data/Team.java +++ b/springboot/src/main/java/de/thpeetz/kontor/tysc/data/Team.java @@ -1,7 +1,6 @@ package de.thpeetz.kontor.tysc.data; import java.util.List; -import java.util.Objects; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;