52 lines
972 B
Python
52 lines
972 B
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, EmailStr, Field
|
|
|
|
|
|
class UserRegister(BaseModel):
|
|
email: EmailStr
|
|
password: str = Field(min_length=6, max_length=128)
|
|
|
|
|
|
class UserLogin(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class UserPublic(BaseModel):
|
|
id: int
|
|
email: str
|
|
rating: float
|
|
points: int
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class SessionPublic(BaseModel):
|
|
id: int
|
|
created_at: datetime
|
|
expires_at: datetime
|
|
is_active: bool
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class ExternalDataCreate(BaseModel):
|
|
source: str = Field(min_length=1, max_length=128)
|
|
payload: dict | str
|
|
points_delta: int = 0
|
|
rating_delta: float = 0.0
|
|
|
|
|
|
class ExternalDataPublic(BaseModel):
|
|
id: int
|
|
source: str
|
|
payload: str
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|