Add TicketDetails, CompanyInfo, ContactInfo, ConfigItem, TicketNote, RelatedTicket, and TicketContext models in schemas/psa_context.py for structured ticket context enrichment used by AI prompt injection. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
69 lines
1.4 KiB
Python
69 lines
1.4 KiB
Python
"""Pydantic schemas for PSA ticket context enrichment."""
|
|
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class TicketDetails(BaseModel):
|
|
id: int
|
|
summary: str
|
|
status: str
|
|
priority: str
|
|
board: str
|
|
sla: str | None = None
|
|
date_entered: datetime
|
|
resources: str | None = None
|
|
|
|
|
|
class CompanyInfo(BaseModel):
|
|
id: int
|
|
name: str
|
|
site: str | None = None
|
|
address: str | None = None
|
|
phone: str | None = None
|
|
type: str | None = None
|
|
territory: str | None = None
|
|
|
|
|
|
class ContactInfo(BaseModel):
|
|
name: str
|
|
email: str | None = None
|
|
phone: str | None = None
|
|
title: str | None = None
|
|
|
|
|
|
class ConfigItem(BaseModel):
|
|
device_identifier: str
|
|
type: str | None = None
|
|
os_type: str | None = None
|
|
serial_number: str | None = None
|
|
ip_address: str | None = None
|
|
model_number: str | None = None
|
|
|
|
|
|
class TicketNote(BaseModel):
|
|
text: str
|
|
member: str | None = None
|
|
date_created: datetime
|
|
internal_analysis_flag: bool = False
|
|
|
|
|
|
class RelatedTicket(BaseModel):
|
|
id: int
|
|
summary: str
|
|
status: str
|
|
priority: str
|
|
board: str
|
|
|
|
|
|
class TicketContext(BaseModel):
|
|
ticket: TicketDetails
|
|
company: CompanyInfo
|
|
contact: ContactInfo | None = None
|
|
configurations: list[ConfigItem] = []
|
|
notes: list[TicketNote] = []
|
|
related_tickets: list[RelatedTicket] = []
|
|
fetched_at: datetime
|