from __future__ import annotations from typing import Any from pydantic import BaseModel, Field class FileRecord(BaseModel): id: str filename: str mime_type: str bytes: int uri: str sha256: str created_at: int class ConversationRecord(BaseModel): id: str created_at: int updated_at: int active_asset_id: str | None = None active_view_type: str | None = None most_recent_chart_asset_id: str | None = None most_recent_document_asset_id: str | None = None last_referenced_asset_id: str | None = None last_referenced_property: str | None = None class ResponseRecord(BaseModel): id: str conversation_id: str previous_response_id: str | None = None request_json: dict[str, Any] response_json: dict[str, Any] created_at: int class VisualAssetRecord(BaseModel): id: str conversation_id: str source_turn_id: str | None = None source_file_id: str | None = None upload_order: int sha256: str original_uri: str mime_type: str width: int height: int aliases: list[str] = Field(default_factory=list) created_at: int class VisualViewRecord(BaseModel): id: str asset_id: str sha256: str view_type: str lens_name: str lens_version: str parameters_hash: str status: str payload_json: dict[str, Any] confidence: float provenance_json: list[dict[str, Any]] = Field(default_factory=list) created_at: int updated_at: int