feat: command palette, PSA ticket context, session-to-flow converter #108
68
backend/app/schemas/psa_context.py
Normal file
68
backend/app/schemas/psa_context.py
Normal 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
|
||||||
Reference in New Issue
Block a user