66 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Optional
 | 
						|
 | 
						|
from schemas.base import BaseSchema, OkMessageSchema
 | 
						|
 | 
						|
 | 
						|
# region Entities
 | 
						|
 | 
						|
class CardTagColorSchema(BaseSchema):
 | 
						|
    id: int
 | 
						|
    color: str
 | 
						|
    background_color: str
 | 
						|
    label: str
 | 
						|
 | 
						|
 | 
						|
class BaseCardTagSchema(BaseSchema):
 | 
						|
    name: str
 | 
						|
    project_id: int
 | 
						|
    tag_color_id: int
 | 
						|
 | 
						|
 | 
						|
class CardTagSchema(BaseCardTagSchema):
 | 
						|
    id: int
 | 
						|
    tag_color: CardTagColorSchema
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
 | 
						|
class GetTagColorsResponse(BaseSchema):
 | 
						|
    colors: list[CardTagColorSchema]
 | 
						|
 | 
						|
# endregion
 |