34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
"""
|
|
项目容量信息schema
|
|
只提供返回,不提供更新接口
|
|
"""
|
|
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
from typing import Optional, List
|
|
from ..common.base import BaseResponseWithID
|
|
|
|
|
|
class ProjectDetailKey(str, Enum):
|
|
"""项目子类类型枚举"""
|
|
PLAN_CONSTRUCTION = "plan_construction" # 计划在建容量
|
|
ACTUAL_CONSTRUCTION = "actual_construction" # 实际在建容量
|
|
PRODUCTION = "production" # 投产容量
|
|
ENSURE_PRODUCTION = "ensure_production" # 确保容量
|
|
CLIMB_PRODUCTION = "climb_production" # 登高容量
|
|
CHALLENGE_PRODUCTION = "challenge_production" # 揭榜容量
|
|
COMPLETE_INVESTMENT = "complete_investment" # 完成投资容量
|
|
|
|
|
|
class CapacityItem(BaseModel):
|
|
year: Optional[int] = Field(None, description='年')
|
|
date: Optional[str] = Field(None, description="日期,格式YYYY-MM-DD")
|
|
capacity: float = Field(..., description='容量')
|
|
is_audit: Optional[bool] = Field(False, description='是否可编辑')
|
|
|
|
|
|
class ProjectDetailProject(BaseResponseWithID):
|
|
project_id:str= Field(..., description="所属项目ID", examples=["project123"])
|
|
key: Optional[ProjectDetailKey] = Field(None, description='项目子类类型')
|
|
value: Optional[List[CapacityItem]] = Field(None, description='项目子类类型值')
|