/**
 * Test context and data types
 */

export interface TestUser {
  username: string;
  password: string;
  character?: string;
}

export interface Quest {
  id?: string;
  title: string;
  description: string;
  status: 'Not Yet Begun' | 'The Road Goes Ever On...' | 'It Is Done' | 'The Shadow Falls';
  type: 'The Journey' | 'The Battle' | 'The Fellowship' | 'The Ring' | 'Dark Magic';
  priority?: 'Low' | 'Medium' | 'High';
  location?: string;
  assignedMember?: string;
  darkMagic?: boolean;
  characterQuote?: string;
}

export interface ChatMessage {
  character: 'frodo' | 'sam' | 'gandalf';
  message: string;
}

export interface ShopItem {
  id: string;
  name: string;
  basePrice: number;
  seller: string;
}

export interface Ware {
  id: string;
  name: string;
  description: string;
  price?: number;
}

export interface BargainingContext {
  seller: string;
  wares: Ware[];
  currentWare?: Ware;
  askingPrice?: number;
  userOffer?: number;
}

export interface NavigationTarget {
  route: string;
  query?: Record<string, any>;
}

export interface SuggestedAction {
  goal_type: string;
  target: NavigationTarget;
}
