export type MessageRole = 'user' | 'assistant' | 'system';
export type TriagePhase = 'greeting' | 'gathering' | 'screening' | 'complete';
export type TriageUrgency = 'routine' | 'urgent' | 'emergency';
export type ConversationStatus = 'active' | 'completed' | 'abandoned';

export interface ChatMessage {
  id: string;
  conversationId: string;
  role: MessageRole;
  content: string;
  createdAt: string;
  metadata?: Record<string, unknown> | null;
}

export interface TriageParsed {
  message: string;
  phase: TriagePhase;
  suggestedReplies: string[];
  redFlags: string[];
  urgency: TriageUrgency | null;
  recommendedSpecialty: string | null;
  summary: string | null;
}

export interface TriageConversation {
  id: string;
  userId: string;
  status: ConversationStatus;
  locale: string;
  triageUrgency: TriageUrgency | null;
  recommendedSpecialty: string | null;
  redFlags: string[] | null;
  summary: string | null;
}

export interface StartResponse {
  conversation: TriageConversation;
  firstAssistantMessage: ChatMessage;
  parsed: TriageParsed;
}

export interface SendResponse {
  conversationId: string;
  status: ConversationStatus;
  message: ChatMessage;
  parsed: TriageParsed;
}
