fix: trail related bugs + general design improvements

This commit is contained in:
swve 2023-12-14 16:41:28 +01:00
parent 53f40f3f34
commit 5b3c2fab24
17 changed files with 128 additions and 71 deletions

View file

@ -46,8 +46,12 @@ class TrailRunRead(BaseModel):
course_id: int = Field(default=None, foreign_key="course.id")
org_id: int = Field(default=None, foreign_key="organization.id")
user_id: int = Field(default=None, foreign_key="user.id")
# course object
course: dict
# timestamps
creation_date: str
update_date: str
# number of activities in course
course_total_steps: int
steps: list[TrailStep]
pass

View file

@ -2,6 +2,8 @@ from enum import Enum
from typing import Optional
from sqlalchemy import JSON, Column
from sqlmodel import Field, SQLModel
from sqlalchemy import BigInteger, Column, ForeignKey
from sqlmodel import Field, SQLModel
class TrailStepTypeEnum(str, Enum):
@ -17,7 +19,9 @@ class TrailStep(SQLModel, table=True):
grade: str
data: dict = Field(default={}, sa_column=Column(JSON))
# foreign keys
trailrun_id: int = Field(default=None, foreign_key="trailrun.id")
trailrun_id: int = Field(
sa_column=Column(BigInteger, ForeignKey("trailrun.id", ondelete="CASCADE"))
)
trail_id: int = Field(default=None, foreign_key="trail.id")
activity_id: int = Field(default=None, foreign_key="activity.id")
course_id: int = Field(default=None, foreign_key="course.id")