- Added SlidesPresentation and Slide types - Implemented generateSlides method in all services (Qwen, Ollama, Z.AI) - Created stunning SlidesGenerator component with: - 18 language support (English, Chinese, Spanish, French, etc.) - 6 theme options (Corporate, Modern, Minimal, Dark, Vibrant, Gradient) - 7 audience presets (Executives, Investors, Technical, etc.) - HTML5 slide preview with navigation - Fullscreen presentation mode - Auto-play functionality - Export to standalone HTML file - Slide thumbnails and speaker notes - Updated sidebar navigation with new Slides Generator menu item - Updated store with slidesPresentation state management
118 lines
2.4 KiB
TypeScript
118 lines
2.4 KiB
TypeScript
export type ModelProvider = "qwen" | "ollama" | "zai";
|
|
|
|
export interface ModelConfig {
|
|
provider: ModelProvider;
|
|
model: string;
|
|
apiKey?: string;
|
|
endpoint?: string;
|
|
}
|
|
|
|
export interface PromptEnhancement {
|
|
original: string;
|
|
enhanced: string;
|
|
quality: number;
|
|
intent: string;
|
|
patterns: string[];
|
|
}
|
|
|
|
export interface PRD {
|
|
id: string;
|
|
title: string;
|
|
overview: string;
|
|
objectives: string[];
|
|
userPersonas: UserPersona[];
|
|
functionalRequirements: Requirement[];
|
|
nonFunctionalRequirements: Requirement[];
|
|
technicalArchitecture: string;
|
|
successMetrics: string[];
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
export interface UserPersona {
|
|
name: string;
|
|
description: string;
|
|
goals: string[];
|
|
painPoints: string[];
|
|
}
|
|
|
|
export interface Requirement {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
priority: "high" | "medium" | "low";
|
|
status: "pending" | "in-progress" | "completed";
|
|
dependencies?: string[];
|
|
}
|
|
|
|
export interface ActionPlan {
|
|
id: string;
|
|
prdId: string;
|
|
tasks: Task[];
|
|
frameworks: FrameworkRecommendation[];
|
|
architecture: ArchitectureGuideline;
|
|
estimatedDuration: string;
|
|
createdAt: Date;
|
|
rawContent?: string;
|
|
}
|
|
|
|
export interface Task {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
priority: "high" | "medium" | "low";
|
|
estimatedHours: number;
|
|
dependencies: string[];
|
|
status: "pending" | "in-progress" | "completed";
|
|
assignee?: string;
|
|
}
|
|
|
|
export interface FrameworkRecommendation {
|
|
category: string;
|
|
recommendation: string;
|
|
rationale: string;
|
|
alternatives: string[];
|
|
}
|
|
|
|
export interface ArchitectureGuideline {
|
|
pattern: string;
|
|
structure: string;
|
|
technologies: string[];
|
|
bestPractices: string[];
|
|
}
|
|
|
|
export interface APIResponse<T> {
|
|
success: boolean;
|
|
data?: T;
|
|
error?: string;
|
|
}
|
|
|
|
export interface ChatMessage {
|
|
role: "system" | "user" | "assistant";
|
|
content: string;
|
|
}
|
|
|
|
export interface Slide {
|
|
id: string;
|
|
title: string;
|
|
content: string;
|
|
htmlContent: string;
|
|
notes?: string;
|
|
layout: "title" | "content" | "two-column" | "image-left" | "image-right" | "quote" | "statistics" | "timeline" | "comparison";
|
|
order: number;
|
|
}
|
|
|
|
export interface SlidesPresentation {
|
|
id: string;
|
|
title: string;
|
|
subtitle?: string;
|
|
author?: string;
|
|
organization?: string;
|
|
theme: "corporate" | "modern" | "minimal" | "dark" | "vibrant" | "gradient";
|
|
language: string;
|
|
slides: Slide[];
|
|
rawContent: string;
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|