45 lines
884 B
Python
45 lines
884 B
Python
from typing import List, Optional
|
|
from pydantic import BaseModel, EmailStr, Field
|
|
from datetime import datetime
|
|
|
|
|
|
class FuzzyTerm(BaseModel):
|
|
term: str
|
|
core: List[float]
|
|
support: List[float]
|
|
left_nodes: List[List[float]]
|
|
right_nodes: List[List[float]]
|
|
|
|
|
|
class HistoryItem(BaseModel):
|
|
id: Optional[str] = Field(default=None, alias="_id")
|
|
name: str
|
|
created_at: datetime
|
|
results: List[FuzzyTerm]
|
|
|
|
|
|
class HistoryCreateRequest(BaseModel):
|
|
name: str
|
|
results: List[FuzzyTerm]
|
|
|
|
|
|
class UserCreate(BaseModel):
|
|
username: str
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class UserLogin(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class UserInDB(BaseModel):
|
|
id: Optional[str] = Field(default=None, alias="_id")
|
|
username: str
|
|
email: EmailStr
|
|
password_hash: str
|
|
token: Optional[str] = None
|
|
history: List[HistoryItem] = []
|
|
|