74 lines
No EOL
2.7 KiB
SQL
74 lines
No EOL
2.7 KiB
SQL
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`); |