urban-investment-research/Mods/BasicInformation/Schemas.py

63 lines
1.8 KiB
Python

from pydantic import BaseModel
from typing import List, Optional
from .Mods.CompanyIndexMain.Schemas import CompanyIndexMainInfo
from .Mods.CompanyBaseInfo.Schemas import CompanyBaseInfoInfo
from .Mods.CompanyPlusProperty.Schemas import CompanyPlusPropertyInfo
from .Mods.CompanyControl.Schemas import CompanyControlInfo
from Utils.SqlAlchemyUtils import QueryParam
from .Mods.CompanySearchMain.Schemas import CompanySearchMainInfo
class CompanyAllInfo(BaseModel):
company_id: int
company_index_main: Optional[CompanyIndexMainInfo]
company_base_info: Optional[CompanyBaseInfoInfo]
company_plus_property: Optional[CompanyPlusPropertyInfo]
company_control: Optional[CompanyControlInfo]
company_search_main: Optional[CompanySearchMainInfo]
# company_equity_penetration: Optional[CompanyEquityPenetration]
class CompanyAllInfoQueryParams(BaseModel):
company_index_main: Optional[List[QueryParam]]
company_base_info: Optional[List[QueryParam]]
company_plus_property: Optional[List[QueryParam]]
company_control: Optional[List[QueryParam]]
company_search_main: Optional[List[QueryParam]]
# company_equity_penetration: Optional[List[QueryParam]]
# company_shareholder: Optional[List[QueryParam]]
page: int
page_size: int
class CompanyAllInfoQueryReq(CompanyAllInfoQueryParams):
pass
class CompanyAllInfoQueryRes(BaseModel):
count: int
items: List[CompanyAllInfo]
class AutoCreateCompanyReq(BaseModel):
company_name: str
administrative_level: str
background: str
importance: str
industry: int
province: int
city: int
area: int
class AutoCreateCompanyRes(BaseModel):
pass
class CompanySearchReq(BaseModel):
company_name: str
class CompanySearchRes(BaseModel):
company_name_list: List[str]