49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from datetime import datetime
|
|
from typing import Optional, Union
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class BaseCodegen(BaseModel):
|
|
name: Optional[str] = Field(description="名称")
|
|
author: Optional[str] = Field(description="作者", default='')
|
|
description: Optional[str] = Field(description="描述", default='')
|
|
version: Optional[str] = Field(description="版本", default='')
|
|
fields: Optional[Union[str, dict]] = Field(description="字段", default='{}')
|
|
relations: Optional[Union[str, dict]] = Field(description="关系", default='{}')
|
|
api: Optional[Union[str, dict]] = Field(description="API", default='{}')
|
|
menu: Optional[Union[str, dict]] = Field(description="菜单", default='{}')
|
|
|
|
|
|
class CodegenCreate(BaseCodegen):
|
|
name: str = Field(description="名称")
|
|
fields: str = Field(description="字段")
|
|
|
|
class CodegenUpdate(BaseModel):
|
|
id: int = Field(example=1)
|
|
name: str = Field(example="管理员")
|
|
desc: str = Field("", example="管理员角色")
|
|
|
|
|
|
class CodegenUpdateMenusApis(BaseModel):
|
|
id: int
|
|
menu_ids: list[int] = []
|
|
api_infos: list[dict] = []
|
|
|
|
|
|
class DatasourceInfo(BaseModel):
|
|
id: int = Field(..., description="ID")
|
|
tableName: Optional[str] = Field(..., description="名称")
|
|
tableComment: Optional[str] = Field(..., description="注释")
|
|
created_at: Optional[datetime]
|
|
updated_at: Optional[datetime]
|
|
|
|
|
|
class DatasourceCreate(DatasourceInfo):
|
|
tableName: str = Field(..., description="名称")
|
|
tableComment: str = Field(..., description="注释")
|
|
|
|
|
|
class DatasourceUpdate(DatasourceInfo):
|
|
id: int = Field(..., description="ID")
|