41 lines
820 B
Python
41 lines
820 B
Python
from typing import Literal, List, Union, Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from app.schemas.admin_schemas import PosEnumFr
|
|
|
|
|
|
class SearchRequest(BaseModel):
|
|
query: str
|
|
language: Literal['fr', 'jp']
|
|
sort: Literal['relevance', 'date'] = 'date'
|
|
order: Literal['asc', 'des'] = 'des'
|
|
|
|
class ProverbSearchRequest(BaseModel):
|
|
query: str
|
|
dict_language: Literal['fr', 'jp'] = "fr"
|
|
|
|
|
|
class SearchItemJp(BaseModel):
|
|
chi_exp: str
|
|
example: str
|
|
|
|
|
|
class SearchItemFr(BaseModel):
|
|
pos: PosEnumFr
|
|
chi_exp: str
|
|
eng_explanation: str
|
|
example: Optional[str]
|
|
|
|
|
|
class WordSearchResponse(BaseModel):
|
|
query: str
|
|
pos: list
|
|
contents: Union[List[SearchItemFr], List[SearchItemJp]]
|
|
hiragana : str
|
|
|
|
|
|
class ProverbSearchResponse(BaseModel):
|
|
proverb_text: str
|
|
chi_exp: str
|