from enum import Enum, unique from typing import Optional, List, Union, Any from pydantic import BaseModel from datetime import datetime, date from Schemas.UserSchemas import UserInfo @unique class DailyTypeEnum(Enum): 董监高日报 = "董监高日报" 运行日报 = "运行日报" 部门子公司日报 = "部门子公司日报" 监管和同业动态 = "监管和同业动态" 行业信息专题分析 = "行业信息专题分析" # 经营情况 = "经营情况" 财务营收 = "财务营收" 动态 = "动态" class DailyExportToPdfReq(BaseModel): day: date class CommentInfo(BaseModel): id: Optional[int] daily_id: Optional[int] user_email: Optional[str] content: Optional[str] user: Optional[UserInfo] create_time: Optional[datetime] class DailyInfo(BaseModel): id: Optional[int] type: Optional[DailyTypeEnum] fill_user: Optional[str] sign_name: Optional[str] title: Optional[str] department: Optional[int] user: Optional[UserInfo] required_auth: Optional[str] post: Optional[int] content: Optional[str] file_md: Optional[str] sub_type: Optional[str] comments: Optional[List[CommentInfo]] daily_time: Optional[datetime] create_time: Optional[datetime] update_time: Optional[datetime] class DailyGetReq(BaseModel): id: int pass class DailyGetRes(DailyInfo): pass class DailyChangeReq(BaseModel): id: int type: Optional[DailyTypeEnum] fill_user: Optional[str] sign_name: Optional[str] title: Optional[str] department: Optional[int] required_auth: Optional[str] post: Optional[int] content: Optional[str] sub_type: Optional[str] daily_time: Optional[datetime] file_md: Optional[str] create_time: Optional[datetime] update_time: Optional[datetime] class DailyChangeRes(DailyInfo): pass class DailyQuery(BaseModel): id: Optional[int] type: Optional[DailyTypeEnum] fill_user: Optional[str] sign_name: Optional[str] # name: Optional[str] title: Optional[str] # department_list: Optional[int] department: Optional[Union[int, List[int]]] required_auth: Optional[Union[int, List[int]]] post: Optional[int] content: Optional[str] daily_time: Optional[Union[List[Union[int, None]],Any]] create_time: Optional[List[Union[int, None]]] update_time: Optional[List[Union[int, None]]] sub_type: Optional[str] page_size: Optional[int] page: Optional[int] fill_user_name:Optional[str] class DailyQueryRes(BaseModel): items: List[DailyInfo] count: int pass class DailyAddReq(BaseModel): type: DailyTypeEnum fill_user: Optional[str] department: Optional[int] required_auth: Optional[str] sign_name: Optional[str] content: Optional[str] post: Optional[int] daily_time: Optional[datetime] sub_type: Optional[str] file_md: Optional[str] title: Optional[str] class DailyAddRes(DailyInfo): pass class DailyDeleteReq(BaseModel): id: int class DailyDeleteRes(BaseModel): msg: str state: int