127 lines
2.4 KiB
TypeScript
127 lines
2.4 KiB
TypeScript
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;
|
|
}
|
|
|
|
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;
|
|
} |