feat: modules and module-editor pages

This commit is contained in:
2025-10-25 12:11:48 +04:00
parent 62aeebf079
commit 281600c72d
16 changed files with 751 additions and 25 deletions

View File

@ -1,4 +1,8 @@
from schemas.base import BaseSchema
from typing import Optional
from schemas.attribute import ModuleAttributeSchema
from schemas.base import BaseSchema, BaseResponse
# region Entity
@ -15,11 +19,41 @@ class ModuleSchema(BaseSchema):
id: int
key: str
label: str
description: str
description: Optional[str]
is_built_in: bool
depends_on: list["ModuleSchema"]
tabs: list[ModuleTabSchema]
class ModuleWithAttributesSchema(ModuleSchema):
attributes: list[ModuleAttributeSchema]
class UpdateModuleCommonInfoSchema(BaseSchema):
label: str
description: Optional[str]
# endregion
# region Requests
class AddAttributeRequest(BaseSchema):
attribute_id: int
module_id: int
class DeleteAttributeRequest(BaseSchema):
attribute_id: int
module_id: int
class UpdateModuleCommonInfoRequest(BaseSchema):
entity: UpdateModuleCommonInfoSchema
# endregion
# region Response
@ -29,4 +63,28 @@ class GetAllModulesResponse(BaseSchema):
items: list[ModuleSchema]
class GetAllWithAttributesResponse(BaseSchema):
items: list[ModuleWithAttributesSchema]
class GetByIdWithAttributesResponse(BaseSchema):
entity: ModuleWithAttributesSchema
class UpdateModuleCommonInfoResponse(BaseResponse):
pass
class DeleteModuleResponse(BaseResponse):
pass
class AddAttributeResponse(BaseResponse):
pass
class DeleteAttributeResponse(BaseResponse):
pass
# endregion