Spaces:
Sleeping
Sleeping
File size: 1,342 Bytes
369ed63 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
from enum import Enum
class Priority(str, Enum):
low = "low"
medium = "medium"
high = "high"
critical = "critical"
class Status(str, Enum):
open = "open"
ai_resolved = "ai_resolved"
agent_review = "agent_review"
closed = "closed"
class Category(str, Enum):
billing = "billing"
technical = "technical"
account = "account"
shipping = "shipping"
general = "general"
class TicketCreate(BaseModel):
customer_name: str
customer_email: str
subject: str
description: str
class TicketUpdate(BaseModel):
status: Optional[Status] = None
agent_notes: Optional[str] = None
resolution: Optional[str] = None
class Ticket(BaseModel):
id: str
customer_name: str
customer_email: str
subject: str
description: str
status: Status = Status.open
priority: Priority = Priority.medium
category: Category = Category.general
ai_resolution: Optional[str] = None
ai_confidence: Optional[float] = None
agent_notes: Optional[str] = None
resolution: Optional[str] = None
created_at: str = Field(default_factory=lambda: datetime.utcnow().isoformat())
updated_at: str = Field(default_factory=lambda: datetime.utcnow().isoformat())
|