CREATE TABLE `channel` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `server_id` text NOT NULL, `messages` text DEFAULT '[]' NOT NULL, FOREIGN KEY (`server_id`) REFERENCES `server`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `directMessage` ( `id` text PRIMARY KEY NOT NULL, `first_member` text NOT NULL, `second_member` text NOT NULL, `messages` text DEFAULT '[]' NOT NULL, FOREIGN KEY (`first_member`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`second_member`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `friendRequest` ( `id` text PRIMARY KEY NOT NULL, `from_user` text NOT NULL, `from_username` text NOT NULL, `to_username` text NOT NULL, `to_user` text NOT NULL, FOREIGN KEY (`from_user`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`from_username`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`to_username`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`to_user`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `group` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `owner` text NOT NULL, `members` text DEFAULT '[]' NOT NULL, `messages` text DEFAULT '[]' NOT NULL, FOREIGN KEY (`owner`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `invite` ( `id` text PRIMARY KEY NOT NULL, `server_id` text NOT NULL, `code` text NOT NULL, FOREIGN KEY (`server_id`) REFERENCES `server`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `server` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `owner` text NOT NULL, `members` text DEFAULT '[]' NOT NULL, `channels` text DEFAULT '[]' NOT NULL, FOREIGN KEY (`owner`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `session` ( `id` text PRIMARY KEY NOT NULL, `user_id` text NOT NULL, `expires_at` integer NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `user` ( `id` text PRIMARY KEY NOT NULL, `username` text NOT NULL, `email` text NOT NULL, `password_hash` text NOT NULL, `status_overwrite` integer DEFAULT 3 NOT NULL, `friends` text DEFAULT '[]' NOT NULL, `servers` text DEFAULT '[]' NOT NULL, `groups` text DEFAULT '[]' NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `user_username_unique` ON `user` (`username`);--> statement-breakpoint CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);