diff options
author | Rasmus Luha <rasmus.luha@gmail.com> | 2022-02-06 13:41:11 +0200 |
---|---|---|
committer | Rasmus Luha <rasmus.luha@gmail.com> | 2022-02-06 13:41:11 +0200 |
commit | 6a6afdbe72c626b01245c9372c9d10be79789bb0 (patch) | |
tree | cfdb5aea7538296bad0105c813fce4cd33c19ef5 /app/schemas.py | |
parent | 5e19a0569288de21365c61b0db78639880732dd0 (diff) |
restrucurring the stucture of the folderstruture --> structure
Diffstat (limited to 'app/schemas.py')
-rw-r--r-- | app/schemas.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/app/schemas.py b/app/schemas.py new file mode 100644 index 0000000..439722c --- /dev/null +++ b/app/schemas.py @@ -0,0 +1,61 @@ +from pydantic import BaseModel, EmailStr +from pydantic.types import conint +from datetime import datetime +from typing import Optional + +class PostBase(BaseModel): + title: str + content: str + published: bool = True # Default True + +class PostCreate(PostBase): + pass + +# User Stuff + +class UserCreate(BaseModel): + email: EmailStr #Selleks vaja emaild-validator lib, mis tuli pip install fastapi[all]-iga koos. + password: str + +class UserOut(BaseModel): + id: int + email: EmailStr + created_at: datetime + + class Config: + orm_mode = True + + +class UserLogin(BaseModel): + email: EmailStr + password: str + + +class Token(BaseModel): + access_token: str + token_type: str + +class TokenData(BaseModel): + id: Optional[str] = None + + +## Response + +class Post(PostBase): + id: int + created_at: datetime + owner_id: int + owner: UserOut # Class alt poolt - see skeem, mille mis kehtib ka Get Useri puhul. + + class Config: # Selleks, et pydantic oskaks lugeda sqlalchemy type modelit mida talle et antakse + orm_mode = True + +class PostOut(BaseModel): + Post: Post + votes: int + + +class Vote(BaseModel): + post_id: int + dir: conint(le=1) #int that can be only 0 or 1 (and also negative, but that should be fine) + |