34 lines
971 B
Python
34 lines
971 B
Python
|
|
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)
|