diff --git a/backend/app/api/routes/events.py b/backend/app/api/routes/events.py index f4ec92c..4d8c026 100644 --- a/backend/app/api/routes/events.py +++ b/backend/app/api/routes/events.py @@ -256,7 +256,7 @@ def read_event_teams( module=PermissionModule.EVENT, part=PermissionPart.ADMIN, rights=(PermissionRight.READ | PermissionRight.MANGE_TEAMS), - ) and ( event and (event.user_has_right(user=current_user, rights=(PermissionRight.READ | PermissionRight.MANGE_TEAMS)))): + ) and ( event and (event.user_has_rights(user=current_user, rights=(PermissionRight.READ | PermissionRight.MANGE_TEAMS)))): raise HTTPException(status_code=400, detail="Not enough permissions") # Get list diff --git a/backend/app/core/db.py b/backend/app/core/db.py index 365a202..2170c5c 100644 --- a/backend/app/core/db.py +++ b/backend/app/core/db.py @@ -14,6 +14,9 @@ from app.models.user import ( User, UserCreate, ) +from app.models.apikey import ( + ApiKey, +) engine = create_engine(str(settings.SQLALCHEMY_DATABASE_URI)) diff --git a/backend/app/models/apikey.py b/backend/app/models/apikey.py index ce6649d..a264b7d 100644 --- a/backend/app/models/apikey.py +++ b/backend/app/models/apikey.py @@ -1,4 +1,5 @@ import random +from typing import TYPE_CHECKING, Optional from sqlmodel import Field, Relationship, Session, select @@ -7,7 +8,9 @@ from .base import ( BaseSQLModel, RowId, ) -from .user import User + +if TYPE_CHECKING: + from .user import User # region # API Keys for access ################################################### @@ -39,7 +42,7 @@ class ApiKey(mixin.RowId, ApiKeyBase, table=True): api_key: str = Field(unique=True, nullable=False, max_length=64) # --- back_populates links ------------------------------------------------- - user: User | None = Relationship(back_populates="api_keys") + user: "User" = Relationship(back_populates="api_keys") # --- CRUD actions --------------------------------------------------------- @staticmethod diff --git a/backend/app/models/event.py b/backend/app/models/event.py index 23b030c..1a0c6b5 100644 --- a/backend/app/models/event.py +++ b/backend/app/models/event.py @@ -49,7 +49,6 @@ class EventBase( mixin.Contact, mixin.StartEndDate, mixin.IsActive, - mixin.Contact, BaseSQLModel, ): pass @@ -72,7 +71,8 @@ class Event(mixin.RowId, EventBase, table=True): # --- back_populates links ------------------------------------------------- # --- many-to-many links --------------------------------------------------- - user_links: list[EventUserLink] = Relationship(back_populates="event") + user_links: list["EventUserLink"] = Relationship(back_populates="event") + team_links: list["EventTeam"] = Relationship(back_populates="event") # --- CRUD actions --------------------------------------------------------- @classmethod @@ -189,7 +189,7 @@ class EventTeam(mixin.RowId, EventTeamBase, table=True): ) # --- back_populates links ------------------------------------------------- - event: "Event" = Relationship(back_populates="team_links", cascade_delete=True) + event: "Event" = Relationship(back_populates="team_links")#, cascade_delete=True) # team: "ScoutingTeam" = Relationship(back_populates="event_links", cascade_delete=True) # --- CRUD actions --------------------------------------------------------- diff --git a/backend/app/models/mixin.py b/backend/app/models/mixin.py index 15d3212..58dd57a 100644 --- a/backend/app/models/mixin.py +++ b/backend/app/models/mixin.py @@ -91,3 +91,8 @@ class Canceled(BaseModel): canceled_reason: str | None = Field(default=None, nullable=True, max_length=1024) +class CheckInCheckOut(BaseModel): + checkin_at: datetime | None = Field(default=None, nullable=True) + checkout_at: datetime | None = Field(default=None, nullable=True) + +