from pydantic import BaseModel, Field from typing import Optional from enum import IntEnum class TagKind(IntEnum): ProjectGroup = 1 ProjectData = 2 ProjectMember = 3 ProjectDiscussionTopic = 4 Project = 5 Ticket = 6 class TagRequest(BaseModel): tag: str = Field(..., max_length=128) kind: TagKind ref: Optional[str] = Field(default=None, max_length=36) primary_color: Optional[str] = Field(default=None, max_length=8) secondary_color: Optional[str] = Field(default=None, max_length=8) class TagRequestUpdate(BaseModel): tag: str = Field(..., max_length=128) kind: TagKind ref: Optional[str] = Field(default=None, max_length=36) primary_color: Optional[str] = Field(default=None, max_length=8) secondary_color: Optional[str] = Field(default=None, max_length=8) class TagRefRequest(BaseModel): ref: str = Field(..., max_length=64) sub_ref: Optional[str] = Field(default=None, max_length=1024)