authentification nocodebackend ok

This commit is contained in:
2026-02-08 16:12:25 +01:00
commit be5bd2b2bf
37 changed files with 9585 additions and 0 deletions

166
types.ts Normal file
View 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';