human hand off bug

This commit is contained in:
debu-2 2026-10-06 18:27:06 +05:30
parent 223f846782
commit 6e7a0b9539
22 changed files with 1040 additions and 336 deletions

View file

@ -1,5 +1,4 @@
from datetime import datetime, timezone
from datetime import date
from datetime import date, datetime, timezone
from typing import Literal
from uuid import UUID
@ -313,6 +312,7 @@ class HandoffConversationSummary(BaseModel):
external_subject: str
external_sender: str
human_email: str
human_name: str = ""
status: str
status_label: str
current_owner: str
@ -488,6 +488,7 @@ class ThreadSummary(BaseModel):
class ThreadPage(BaseModel):
items: list[ThreadSummary]
next_cursor: str | None = None
total: int = 0
class ThreadRead(BaseModel):
@ -591,3 +592,18 @@ class DnsSetupResponse(BaseModel):
def utc_now() -> datetime:
return datetime.now(timezone.utc)
def as_utc(value: datetime) -> datetime:
if value.tzinfo is None:
return value.replace(tzinfo=timezone.utc)
return value.astimezone(timezone.utc)
def utc_iso(value: datetime) -> str:
return as_utc(value).isoformat().replace("+00:00", "Z")
def parse_api_datetime(value: str) -> datetime:
parsed = datetime.fromisoformat(value.replace("Z", "+00:00"))
return as_utc(parsed)