dict-server/app/api/search_dict/search_schemas.py

40 lines
801 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]]
class ProverbSearchResponse(BaseModel):
proverb_text: str
chi_exp: str