-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
102 lines (90 loc) · 2.14 KB
/
Copy pathtypes.ts
File metadata and controls
102 lines (90 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// @google/genai-sdk: This file was created to define all shared types for the application.
export interface TextStyle {
fontFamily: string;
fontSize: string;
lineHeight: string;
color: string;
}
export interface StylingOptions {
h1: TextStyle;
h2: TextStyle;
h3: TextStyle;
p: TextStyle;
a: { color: string; };
}
export interface BlogProfile {
id: string;
name: string;
driveFolderId: string;
sheetUrl?: string; // Optional URL for Google Sheet integration
systemInstruction: string;
targetAudience: string;
imageStylePrompt: string;
styling?: Partial<StylingOptions>;
}
export interface SheetRow {
rowIndex: number;
topic: string;
category: string;
keywords: string;
status: string;
url?: string;
author: string;
excerpt: string;
inspirationUrl?: string;
internallinks: string;
profileId?: string; // Track which profile this topic belongs to
}
export interface GenerationStatus {
step: string;
message: string;
stepNumber?: number;
totalSteps?: number;
articleTitle?: string;
articleCategory?: string;
articleExcerpt?: string;
featuredImageUrl?: string;
}
export interface GoogleUser {
name: string;
email: string;
picture: string;
}
export interface ArticleData {
topic: string;
keywords: string;
category: string;
excerpt: string;
author: string;
}
export interface InternalLink {
url: string;
title: string;
category: string;
}
export type ArticleLength = 'short' | 'medium' | 'long' | 'default';
export interface SourceDocument {
name: string;
mimeType: string;
data: string;
}
export interface GenerationOptions {
imageCount: number;
articleLength: ArticleLength;
generateFeaturedImage: boolean;
language: string;
sourceDocument?: SourceDocument;
}
export interface ImageSet {
currentUrl: string;
allVersions: string[];
}
export interface GeneratedArticle {
rawArticle: string;
imagePrompts: string[];
imageSets: ImageSet[];
externalSourcesHtml: string;
finalHtml: string;
profile: BlogProfile;
title: string;
}