62 lines
1.4 KiB
TypeScript

export interface ScriptBlock {
id: string;
title: string;
content: ScriptContent[];
type: 'core' | 'scene' | 'summary' | 'theme' | 'roles';
sceneNumber?: number;
}
export interface ScriptContent {
type: 'paragraph' | 'bold' | 'italic' | 'heading' | 'tag' | 'card';
text?: string;
roleInfo?: {
name: string;
gender: string;
role: string;
desc: string;
color: string;
};
}
export interface ScriptData {
blocks: ScriptBlock[];
translation?: {
language: string;
content: string;
};
}
export interface NavigationItem {
id: string;
title: string;
type: 'core' | 'scene' | 'summary';
}
// 主题标签背景色 enum
export enum ThemeTagBgColor {
blue = 'bg-blue-500/20',
green = 'bg-green-500/20',
red = 'bg-red-500/20',
yellow = 'bg-yellow-500/20',
purple = 'bg-purple-500/20',
orange = 'bg-orange-500/20',
pink = 'bg-pink-500/20',
brown = 'bg-brown-500/20',
gray = 'bg-gray-500/20'
}
// 主题类型 enum
export enum ThemeType {
satire = 'Satire', // 讽刺
absurdistComedy = 'Absurdist Comedy', // 荒诞喜剧
disaster = 'Disaster', // 灾难
tragedy = 'Tragedy', // 悲剧
comedy = 'Comedy', // 喜剧
drama = 'Drama', // 戏剧
fantasy = 'Fantasy', // 奇幻
horror = 'Horror', // 恐怖
mystery = 'Mystery', // 神秘
romance = 'Romance', // 爱情
scienceFiction = 'Science Fiction', // 科幻
thriller = 'Thriller', // 惊悚
}