Add Event and PlayerEvent models

master
John Montagu, the 4th Earl of Sandvich 2024-11-19 10:46:45 -08:00
parent 436359594b
commit 22040f47a0
Signed by: sandvich
GPG Key ID: 9A39BE37E602B22D
3 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,36 @@
"""Add PlayerEvent models
Revision ID: 131efbdd7af4
Revises: 1fc9a051a0a6
Create Date: 2024-11-19 10:16:34.289124
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '131efbdd7af4'
down_revision = '1fc9a051a0a6'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('team_discord_integrations', schema=None) as batch_op:
batch_op.alter_column('webhook_url',
existing_type=sa.VARCHAR(length=255),
nullable=True)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('team_discord_integrations', schema=None) as batch_op:
batch_op.alter_column('webhook_url',
existing_type=sa.VARCHAR(length=255),
nullable=False)
# ### end Alembic commands ###

View File

@ -0,0 +1,23 @@
from datetime import datetime
from sqlalchemy.orm import mapped_column, relationship
from sqlalchemy.orm.attributes import Mapped
from sqlalchemy.types import TIMESTAMP, Integer, String, Text
from sqlalchemy.sql import func
from sqlalchemy_utc import UtcDateTime
import app_db
class Event(app_db.BaseModel):
__tablename__ = "events"
id: Mapped[int] = mapped_column(Integer, autoincrement=True, primary_key=True)
name: Mapped[str] = mapped_column(String(255), nullable=False)
description: Mapped[str] = mapped_column(Text, nullable=True)
start_time: Mapped[datetime] = mapped_column(UtcDateTime, nullable=False)
team_id: Mapped[int] = mapped_column(Integer, nullable=False)
created_at: Mapped[datetime] = mapped_column(TIMESTAMP, server_default=func.now())
team: Mapped["Team"] = relationship("Team", back_populates="events")
from models.team import Team

View File

@ -0,0 +1,18 @@
from sqlalchemy.orm import mapped_column, relationship
from sqlalchemy.orm.attributes import Mapped
from sqlalchemy.orm.properties import ForeignKey
import app_db
class PlayerEvent(app_db.BaseModel):
__tablename__ = "players_events"
event_id: Mapped[int] = mapped_column(ForeignKey("events.id"), primary_key=True)
player_id: Mapped[int] = mapped_column(ForeignKey("players.steam_id"), primary_key=True)
event: Mapped["Event"] = relationship("Event", back_populates="players")
player: Mapped["Player"] = relationship("Player", back_populates="events")
from models.event import Event
from models.player import Player