feat(ticket): add transfer, priority, lock/unlock, stats, message recording
All checks were successful
ci / ci (push) Successful in 44s
All checks were successful
ci / ci (push) Successful in 44s
- TransferButton: transfer ticket to another staff member - PriorityButton: set ticket priority (low/normal/high/urgent) - LockButton: lock/unlock ticket (toggle channel permissions) - StatsButton: show ticket info (category, user, claimed, priority, messages) - on_message listener: records all messages for transcript - TicketData: added locked, priority fields
This commit is contained in:
parent
4d1e265848
commit
e46c04fe98
3 changed files with 269 additions and 2 deletions
|
|
@ -9,6 +9,13 @@ class TicketStatus(str, Enum):
|
|||
CLOSED = "closed"
|
||||
|
||||
|
||||
class TicketPriority(str, Enum):
|
||||
LOW = "low"
|
||||
NORMAL = "normal"
|
||||
HIGH = "high"
|
||||
URGENT = "urgent"
|
||||
|
||||
|
||||
@dataclass
|
||||
class TicketCategory:
|
||||
id: str
|
||||
|
|
@ -54,6 +61,8 @@ class TicketData:
|
|||
closed_at: str | None = None
|
||||
closed_by: int | None = None
|
||||
claimed_by: int | None = None
|
||||
locked: bool = False
|
||||
priority: TicketPriority = TicketPriority.NORMAL
|
||||
messages: list[TicketMessage] = field(default_factory=list)
|
||||
reason: str = ""
|
||||
|
||||
|
|
@ -68,6 +77,8 @@ class TicketData:
|
|||
"closed_at": self.closed_at,
|
||||
"closed_by": self.closed_by,
|
||||
"claimed_by": self.claimed_by,
|
||||
"locked": self.locked,
|
||||
"priority": self.priority.value,
|
||||
"messages": [
|
||||
{
|
||||
"author_id": m.author_id,
|
||||
|
|
@ -86,6 +97,7 @@ class TicketData:
|
|||
def from_dict(cls, data: dict) -> TicketData:
|
||||
messages = [TicketMessage(**m) for m in data.pop("messages", [])]
|
||||
data["status"] = TicketStatus(data.get("status", "open"))
|
||||
data["priority"] = TicketPriority(data.get("priority", "normal"))
|
||||
data.pop("transcript_path", None)
|
||||
data.pop("rating", None)
|
||||
data.pop("feedback", None)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue