webstack-author/src/types.ts

59 lines
1.3 KiB
TypeScript

export interface Project {
id: string;
title: string;
status: string; // e.g., "Konzept", "In Arbeit", "Lektorat", "Abgeschlossen"
progress: number; // 0 to 100
description: string;
}
export interface Book {
id: string;
title: string;
subtitle?: string;
coverUrl: string;
description: string;
publishedYear: number;
buyLink?: string;
spotifyPlaylistId?: string; // Just the playlist ID (e.g., "47R6ZAdk7Xf6M4i9mR0fP1")
genres?: string[];
}
export interface AuthorProfile {
name: string;
bio: string;
avatarUrl: string;
heroTitle: string;
heroSubtitle: string;
projects: Project[];
books: Book[];
customSectionTitle?: string;
customSectionContent?: string;
// Custom static texts
badgeText?: string;
aboutTitle?: string;
projectsTitle?: string;
projectsSubtitle?: string;
booksTitle?: string;
booksSubtitle?: string;
footerText?: string;
// Custom design & theme controls
accentColor?: string;
secondaryColor?: string;
backgroundColor?: string;
cardBgColor?: string;
fontFamily?: "sans" | "serif" | "mono";
heroBannerUrl?: string;
}
export interface AuthorData {
scifi: AuthorProfile;
erotica: AuthorProfile;
clara: AuthorProfile;
renee: AuthorProfile;
}
export interface AdminSettings {
adminPasswordHash?: string; // Optional if we hash, or we check against .env
}