Skip to content

Commit

Permalink
Merge branch 'backend-schemas-init' into backend
Browse files Browse the repository at this point in the history
  • Loading branch information
codEnjoyer committed Nov 13, 2023
2 parents 2c10bea + b8e84b1 commit b278f80
Show file tree
Hide file tree
Showing 8 changed files with 189 additions and 0 deletions.
24 changes: 24 additions & 0 deletions backend/src/game/levels/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from uuid import UUID

from pydantic import BaseModel, ConfigDict


class __LevelBase(BaseModel):
module_id: UUID
name: str

model_config = ConfigDict(from_attributes=True)


class LevelRead(__LevelBase):
id: UUID
is_accomplished: bool


class LevelCreate(__LevelBase):
pass


class LevelUpdate(__LevelBase):
module_id: UUID | None
name: str | None
21 changes: 21 additions & 0 deletions backend/src/game/map/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from uuid import UUID

from pydantic import BaseModel, ConfigDict


class __MapBase(BaseModel):
name: str

model_config = ConfigDict(from_attributes=True)


class MapRead(__MapBase):
id: UUID


class MapCreate(__MapBase):
pass


class MapUpdate(__MapBase):
name: str | None
25 changes: 25 additions & 0 deletions backend/src/game/modules/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from uuid import UUID

from pydantic import BaseModel, ConfigDict


class __ModuleBase(BaseModel):
previous_module_id: UUID
next_module_id: UUID
name: str

model_config = ConfigDict(from_attributes=True)


class ModuleRead(__ModuleBase):
id: UUID


class ModuleCreate(__ModuleBase):
pass


class ModuleUpdate(__ModuleBase):
previous_module_id: UUID | None
next_module_id: UUID | None
name: str | None
24 changes: 24 additions & 0 deletions backend/src/game/units/tasks/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from uuid import UUID

from pydantic import BaseModel, ConfigDict


class __TaskBase(BaseModel):
content: str
score_reward: int

model_config = ConfigDict(from_attributes=True)


class TaskRead(__TaskBase):
id: UUID
is_accomplished: bool


class TaskCreate(__TaskBase):
pass


class TaskUpdate(__TaskBase):
content: str | None
score_reward: int | None
47 changes: 47 additions & 0 deletions backend/src/game/units/theory/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
from uuid import UUID

from pydantic import BaseModel, ConfigDict
from pydantic_core import Url


# region Theory
class __TheoryBase(BaseModel):
theme: str
content: str

model_config = ConfigDict(from_attributes=True)


class TheoryRead(__TheoryBase):
id: UUID


class TheoryCreate(__TheoryBase):
pass


class TheoryUpdate(__TheoryBase):
theme: str | None
content: str | None


# endregion

class __TheoryVideoBase(BaseModel):
theory_id: UUID
url: Url

model_config = ConfigDict(from_attributes=True)


class TheoryVideoRead(__TheoryVideoBase):
id: UUID


class TheoryVideoCreate(__TheoryVideoBase):
pass


class TheoryVideoUpdate(__TheoryVideoBase):
theory_id: UUID | None
url: Url | None
15 changes: 15 additions & 0 deletions backend/src/users/employees/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import datetime as dt
from uuid import UUID

from pydantic import BaseModel, EmailStr, ConfigDict


class EmployeeRead(BaseModel):
id: UUID
tutor_id: UUID
name: str
last_name: str
email: EmailStr
hired_at: dt.date

model_config = ConfigDict(from_attributes=True)
21 changes: 21 additions & 0 deletions backend/src/users/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from datetime import datetime
from typing import Annotated

from fastapi_users.schemas import BaseUserCreate, BaseUserUpdate, BaseUser
from pydantic import Field


class __CustomUser:
username: Annotated[str, Field(min_length=3, max_length=50)]


class UserRead(BaseUser[int], __CustomUser):
registered_at: Annotated[datetime, Field(default_factory=datetime.now)]


class UserCreate(BaseUserCreate, __CustomUser):
pass


class UserUpdate(BaseUserUpdate, __CustomUser):
username: Annotated[str | None, Field(min_length=3, max_length=50, default=None)]
12 changes: 12 additions & 0 deletions backend/src/users/tutors/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from uuid import UUID

from pydantic import BaseModel, EmailStr, ConfigDict


class TutorRead(BaseModel):
id: UUID
name: str
last_name: str
email: EmailStr

model_config = ConfigDict(from_attributes=True)

0 comments on commit b278f80

Please sign in to comment.