Implement session outcomes, step timing, and live timer fixes
This commit is contained in:
@@ -3,6 +3,8 @@ from typing import Optional, Any, Literal
|
||||
from uuid import UUID
|
||||
from pydantic import BaseModel, Field, validator
|
||||
|
||||
SessionOutcome = Literal["resolved", "escalated", "workaround", "unresolved"]
|
||||
|
||||
|
||||
class CustomStepSchema(BaseModel):
|
||||
"""Enhanced custom step with source tracking.
|
||||
@@ -28,6 +30,9 @@ class DecisionRecord(BaseModel):
|
||||
notes: Optional[str] = None
|
||||
automation_used: Optional[bool] = False
|
||||
timestamp: datetime
|
||||
entered_at: Optional[datetime] = None
|
||||
exited_at: Optional[datetime] = None
|
||||
duration_seconds: Optional[int] = Field(None, ge=0)
|
||||
attachments: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
@@ -57,6 +62,8 @@ class SessionResponse(BaseModel):
|
||||
custom_steps: list[dict[str, Any]] = Field(default_factory=list)
|
||||
started_at: datetime
|
||||
completed_at: Optional[datetime] = None
|
||||
outcome: Optional[SessionOutcome] = None
|
||||
outcome_notes: Optional[str] = None
|
||||
ticket_number: Optional[str] = None
|
||||
client_name: Optional[str] = None
|
||||
exported: bool
|
||||
@@ -77,6 +84,11 @@ class SessionExport(BaseModel):
|
||||
include_tree_info: bool = True
|
||||
|
||||
|
||||
class SessionComplete(BaseModel):
|
||||
outcome: SessionOutcome
|
||||
outcome_notes: Optional[str] = None
|
||||
|
||||
|
||||
class ScratchpadUpdate(BaseModel):
|
||||
scratchpad: str
|
||||
|
||||
|
||||
Reference in New Issue
Block a user