feat: add PSA ticket context Pydantic schemas (Task 6)

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>
This commit is contained in:
chihlasm
2026-03-16 01:04:58 -04:00
parent b5de60e6d5
commit b8ca23d00d

View File

@@ -0,0 +1,68 @@
"""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