CREATE TABLE `files` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `project_id` integer NOT NULL, `parent_id` integer, `path` text NOT NULL, `filename` text NOT NULL, `is_directory` integer DEFAULT false NOT NULL, `is_file` integer DEFAULT false NOT NULL, `is_pinned` integer DEFAULT false NOT NULL, `content` text, `created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL, `deleted_at` text, FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`parent_id`) REFERENCES `files`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `projects` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `fork_id` integer; `user_id` integer NOT NULL, `slug` text NOT NULL, `title` text NOT NULL, `visibility` text DEFAULT 'private', `settings` text DEFAULT [object Object], `created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL, `deleted_at` text, FOREIGN KEY (`fork_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `users` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `name` text NOT NULL, `email` text NOT NULL, `password` text NOT NULL, `created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL, `deleted_at` text ); --> statement-breakpoint CREATE INDEX `file_path_idx` ON `files` (`path`);--> statement-breakpoint CREATE INDEX `file_name_idx` ON `files` (`filename`);--> statement-breakpoint CREATE UNIQUE INDEX `projects_slug_unique` ON `projects` (`slug`);--> statement-breakpoint CREATE INDEX `project_visibility_idx` ON `projects` (`visibility`);--> statement-breakpoint CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);