feat: added tags for cards, aligned status headers

This commit is contained in:
2025-03-09 19:30:52 +04:00
parent 487174c4ff
commit 6030591e3c
17 changed files with 375 additions and 23 deletions

View File

@@ -7,6 +7,7 @@ from schemas.attribute import CardAttributeSchema
from schemas.base import BaseSchema, OkMessageSchema
from schemas.billing import CardBillRequestSchema
from schemas.board import BoardSchema
from schemas.card_tag import CardTagSchema
from schemas.client import ClientSchema
from schemas.group import CardGroupSchema
from schemas.marketplace import BaseMarketplaceSchema
@@ -41,6 +42,7 @@ class CardSummary(BaseSchema):
rank: int
base_marketplace: Optional[BaseMarketplaceSchema] = None
total_products: int
tags: list[CardTagSchema]
shipment_warehouse_id: Optional[int]
shipment_warehouse_name: Optional[str]
@@ -100,6 +102,7 @@ class BaseCardSchema(BaseSchema):
pallets: List[PalletSchema] = []
boxes: List[BoxSchema] = []
employees: List[CardEmployeesSchema] = []
tags: List[CardTagSchema] = []
class CardSchema(BaseCardSchema):
@@ -115,6 +118,7 @@ class CardGeneralInfoSchema(BaseSchemaWithAttributes):
board_id: int
status_id: int
client_id: Optional[int]
tags: List[str]
class ProductsAndServicesGeneralInfoSchema(BaseSchema):

53
schemas/card_tag.py Normal file
View File

@@ -0,0 +1,53 @@
from typing import Optional
from schemas.base import BaseSchema, OkMessageSchema
# region Entities
class BaseCardTagSchema(BaseSchema):
name: str
project_id: int
class CardTagSchema(BaseCardTagSchema):
id: int
# endregion
# region Requests
class CreateTagRequest(BaseSchema):
tag: BaseCardTagSchema
class UpdateTagRequest(BaseSchema):
tag: CardTagSchema
class SwitchTagRequest(BaseSchema):
tag_id: int
card_id: Optional[int] = None
group_id: Optional[int] = None
# endregion
# region Responses
class CreateTagResponse(OkMessageSchema):
pass
class UpdateTagResponse(OkMessageSchema):
pass
class DeleteTagResponse(OkMessageSchema):
pass
class SwitchTagResponse(OkMessageSchema):
pass
# endregion

View File

@@ -2,6 +2,7 @@ from typing import Optional
from schemas.attribute import AttributeSchema
from schemas.base import BaseSchema, OkMessageSchema
from schemas.card_tag import CardTagSchema
# region Entities
@@ -26,6 +27,7 @@ class ModuleSchema(BaseSchema):
class ProjectSchema(ProjectGeneralInfoSchema):
attributes: list[AttributeSchema]
modules: list[ModuleSchema]
tags: list[CardTagSchema]
class FullProjectSchema(ProjectSchema):

View File

@@ -32,6 +32,7 @@ class CommonProfitFilters(BaseSchema):
project_id: int
board_id: int
card_status_id: int
card_tag_id: int
manager_id: int
expense_tag_id: int
income_tag_id: int