2025-11-18 12:40:34 +07:00
|
|
|
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)
|
2025-12-02 04:38:34 +00:00
|
|
|
sub_ref: Optional[str] = Field(default=None, max_length=1024)
|