AI-support-ticket / models.py
AdityaSharma79's picture
Add files via upload
369ed63 unverified
Raw
History Blame Contribute Delete
1.34 kB
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())