38 lines
939 B
Python
38 lines
939 B
Python
from typing import Optional
|
|
from pydantic import BaseModel
|
|
from app.schemas.onboarding import CategoryContext, PatientContext
|
|
|
|
|
|
class StartVoiceOnboardingRequest(BaseModel):
|
|
patient: PatientContext
|
|
category: CategoryContext
|
|
language: str = "en-IN"
|
|
|
|
|
|
class StartVoiceOnboardingResponse(BaseModel):
|
|
success: bool
|
|
session_id: str
|
|
patient_id: str
|
|
category: CategoryContext
|
|
language: str
|
|
status: str
|
|
stage: str
|
|
greeting_text: str
|
|
audio_url: str
|
|
response_time_ms: Optional[float] = None
|
|
response_time_sec: Optional[float] = None
|
|
|
|
|
|
class VoiceTurnResponse(BaseModel):
|
|
success: bool
|
|
session_id: str
|
|
patient_transcript: str
|
|
ai_text: str
|
|
stage: str
|
|
completed: bool = False
|
|
audio_url: str
|
|
audio_base64: Optional[str] = None
|
|
suggested_specialty: Optional[dict] = None
|
|
response_time_ms: Optional[float] = None
|
|
response_time_sec: Optional[float] = None
|