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 }