46 lines
1.0 KiB
Python
46 lines
1.0 KiB
Python
from pydantic import BaseModel, Field, EmailStr
|
|
from typing import Optional, List
|
|
|
|
class LoginPasswordRequest(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
class LoginResponse(BaseModel):
|
|
uid: str
|
|
id_token: str
|
|
|
|
class UserCreate(BaseModel):
|
|
email: EmailStr
|
|
password: str = Field(..., min_length=6)
|
|
full_name: str = Field(..., min_length=3)
|
|
|
|
class UserRecord(BaseModel):
|
|
uid: str
|
|
email: EmailStr
|
|
full_name: str
|
|
role: str = "member"
|
|
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
token_type: str = "bearer"
|
|
|
|
class Video(BaseModel):
|
|
id: str
|
|
file_path: str
|
|
person: str
|
|
game: Optional[str] = None
|
|
has_been_voted: bool = False
|
|
|
|
class VoteCreate(BaseModel):
|
|
decision: str
|
|
reason: List[str]
|
|
recommended_game: Optional[str] = None
|
|
timestamp: Optional[float] = None
|
|
|
|
class Vote(BaseModel):
|
|
id: str
|
|
video_id: str
|
|
user_id: str
|
|
decision: str
|
|
reason: str
|
|
recommended_game: Optional[str] = None |