export enum Phase {
  Input = 0,
  ProductAnalysis = 1,
  ICPDiscovery = 2,
  WhaleHunting = 3,
  Strategy = 4,
  AssetGeneration = 5,
  SalesEnablement = 6,
  LandingPage = 7,
  BusinessCase = 8,
  TechTranslator = 9,
}

export type Language = 'en' | 'de';
export type Theme = 'light' | 'dark';

export interface Message {
  role: 'user' | 'model';
  content: string;
}

export interface Phase1Data {
  features: string[];
  constraints: string[];
  conflictCheck: {
    hasConflict: boolean;
    details: string;
    relatedProduct?: string;
  };
  rawAnalysis: string;
  specs?: {
    metadata: {
      product_id: string;
      brand: string;
      model_name: string;
      category: string;
      manufacturer_url: string;
    };
    core_specs: {
      battery_runtime_min: number | null;
      charge_time_min: number | null;
      weight_kg: number | null;
      dimensions_cm: { l: number | null; w: number | null; h: number | null };
      max_slope_deg: number | null;
      ip_rating: string | null;
      climb_height_cm: number | null;
      navigation_type: string | null;
      connectivity: string[];
    };
    layers: {
      cleaning?: {
        fresh_water_l: number | null;
        dirty_water_l: number | null;
        area_performance_sqm_h: number | null;
        mop_pressure_kg: number | null;
      };
      service?: {
        max_payload_kg: number | null;
        number_of_trays: number | null;
        display_size_inch: number | null;
        ads_capable: boolean | null;
      };
      security?: {
        camera_types: string[];
        night_vision: boolean | null;
        gas_detection: string[];
        at_interface: boolean | null;
      };
    };
    extended_features: { feature: string; value: string; unit: string }[];
  };
}

export interface Phase2Data {
  icps: {
    name: string;
    rationale: string;
  }[];
  dataProxies: {
    target: string;
    method: string;
  }[];
}

export interface Phase3Data {
  whales: {
    industry: string;
    accounts: string[];
  }[];
  roles: string[];
}

export interface Phase4Data {
  strategyMatrix: {
    segment: string;
    painPoint: string;
    angle: string;
    differentiation: string;
  }[];
}

export interface Phase6Data {
  battlecards: {
    persona: string;
    objection: string;
    responseScript: string;
  }[];
  visualPrompts: {
    title: string;
    context: string;
    prompt: string;
  }[];
}

export interface Phase7Data {
  landingPages: {
    industry: string;
    headline: string;
    subline: string;
    bullets: string[];
    cta: string;
  }[];
}

export interface Phase8Data {
  businessCases: {
    industry: string;
    costDriver: string;
    efficiencyGain: string;
    riskArgument: string;
  }[];
}

export interface Phase9Data {
  techTranslations: {
    feature: string;
    story: string;
    headline: string;
  }[];
}

export interface AppState {
  currentPhase: Phase;
  isLoading: boolean;
  history: Message[];
  productInput: string;
  productImages: string[]; // Array of Base64 strings
  phase1Result?: Phase1Data;
  phase2Result?: Phase2Data;
  phase3Result?: Phase3Data;
  phase4Result?: Phase4Data;
  phase5Result?: { report: string }; // Markdown content wrapped in object
  phase6Result?: Phase6Data;
  phase7Result?: Phase7Data;
  phase8Result?: Phase8Data;
  phase9Result?: Phase9Data;
  translatedReport?: string; // New field for the English translation
  language: Language;
  theme: Theme;
  projectId?: string; // Current Project ID
}

export interface ProjectHistoryItem {
    id: string;
    name: string;
    created_at: string;
    updated_at: string;
    productName: string;
    productCategory: string;
    productDescription: string;
    sourceUrl: string;
    productThumbnail?: string; // Optional for now
}