authentification nocodebackend ok
This commit is contained in:
166
types.ts
Normal file
166
types.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
|
||||
export enum EntityType {
|
||||
CHARACTER = 'Personnage',
|
||||
LOCATION = 'Lieu',
|
||||
OBJECT = 'Objet',
|
||||
NOTE = 'Note'
|
||||
}
|
||||
|
||||
export interface CharacterAttributes {
|
||||
age: number;
|
||||
height: number;
|
||||
hair: string;
|
||||
eyes: string;
|
||||
archetype: string;
|
||||
role: 'protagonist' | 'antagonist' | 'support' | 'extra';
|
||||
personality: {
|
||||
spectrumIntrovertExtravert: number;
|
||||
spectrumEmotionalRational: number;
|
||||
spectrumChaoticLawful: number;
|
||||
};
|
||||
physicalQuirk: string;
|
||||
behavioralQuirk: string;
|
||||
}
|
||||
|
||||
export type CustomFieldType = 'text' | 'textarea' | 'number' | 'boolean' | 'select';
|
||||
|
||||
export interface CustomFieldDefinition {
|
||||
id: string;
|
||||
label: string;
|
||||
type: CustomFieldType;
|
||||
options?: string[];
|
||||
placeholder?: string;
|
||||
}
|
||||
|
||||
export interface EntityTemplate {
|
||||
entityType: EntityType;
|
||||
fields: CustomFieldDefinition[];
|
||||
}
|
||||
|
||||
export interface Entity {
|
||||
id: string;
|
||||
type: EntityType;
|
||||
name: string;
|
||||
description: string;
|
||||
details: string;
|
||||
storyContext?: string;
|
||||
attributes?: CharacterAttributes;
|
||||
customValues?: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface Chapter {
|
||||
id: string;
|
||||
title: string;
|
||||
content: string;
|
||||
summary?: string;
|
||||
}
|
||||
|
||||
export type PlotNodeType = 'story' | 'dialogue' | 'action';
|
||||
|
||||
export interface PlotNode {
|
||||
id: string;
|
||||
x: number;
|
||||
y: number;
|
||||
title: string;
|
||||
description: string;
|
||||
color: string;
|
||||
type?: PlotNodeType;
|
||||
}
|
||||
|
||||
export interface PlotConnection {
|
||||
id: string;
|
||||
source: string;
|
||||
target: string;
|
||||
}
|
||||
|
||||
export interface WorkflowData {
|
||||
nodes: PlotNode[];
|
||||
connections: PlotConnection[];
|
||||
}
|
||||
|
||||
export type IdeaStatus = 'todo' | 'progress' | 'done';
|
||||
export type IdeaCategory = 'plot' | 'character' | 'research' | 'todo';
|
||||
|
||||
export interface Idea {
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
status: IdeaStatus;
|
||||
category: IdeaCategory;
|
||||
createdAt: number;
|
||||
}
|
||||
|
||||
export interface BookSettings {
|
||||
genre: string;
|
||||
subGenre?: string;
|
||||
targetAudience: string;
|
||||
tone: string;
|
||||
pov: string;
|
||||
tense: string;
|
||||
synopsis: string;
|
||||
themes: string;
|
||||
}
|
||||
|
||||
export interface BookProject {
|
||||
id: string;
|
||||
title: string;
|
||||
author: string;
|
||||
lastModified: number;
|
||||
settings?: BookSettings;
|
||||
chapters: Chapter[];
|
||||
entities: Entity[];
|
||||
workflow?: WorkflowData;
|
||||
templates?: EntityTemplate[];
|
||||
styleGuide?: string;
|
||||
ideas?: Idea[];
|
||||
}
|
||||
|
||||
export interface ChatMessage {
|
||||
id: string;
|
||||
role: 'user' | 'model';
|
||||
text: string;
|
||||
responseType?: 'draft' | 'reflection';
|
||||
isLoading?: boolean;
|
||||
}
|
||||
|
||||
// --- SAAS TYPES ---
|
||||
|
||||
export type PlanType = 'free' | 'pro' | 'master';
|
||||
|
||||
export interface Subscription {
|
||||
plan: PlanType;
|
||||
startDate: number;
|
||||
status: 'active' | 'canceled' | 'past_due';
|
||||
}
|
||||
|
||||
export interface UserUsage {
|
||||
aiActionsCurrent: number;
|
||||
aiActionsLimit: number;
|
||||
projectsLimit: number;
|
||||
}
|
||||
|
||||
export interface UserPreferences {
|
||||
theme: 'light' | 'dark' | 'sepia';
|
||||
dailyWordGoal: number;
|
||||
language: 'fr' | 'en';
|
||||
}
|
||||
|
||||
export interface UserStats {
|
||||
totalWordsWritten: number;
|
||||
writingStreak: number;
|
||||
lastWriteDate: number;
|
||||
}
|
||||
|
||||
export interface UserProfile {
|
||||
id: string;
|
||||
email: string;
|
||||
name: string;
|
||||
avatar?: string;
|
||||
bio?: string;
|
||||
subscription: Subscription;
|
||||
usage: UserUsage;
|
||||
preferences: UserPreferences;
|
||||
stats: UserStats;
|
||||
}
|
||||
|
||||
export type ViewMode = 'write' | 'world_building' | 'workflow' | 'settings' | 'preview' | 'ideas' | 'landing' | 'features' | 'pricing' | 'checkout' | 'dashboard' | 'auth' | 'signup' | 'profile';
|
||||
Reference in New Issue
Block a user