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")