boredgame/drizzle/0000_smooth_thunderbolt.sql

169 lines
No EOL
6.6 KiB
SQL

CREATE TABLE `artists` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`external_id` int,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `artists_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `categories` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`external_id` int,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `categories_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `collection_items` (
`id` varchar(255) NOT NULL,
`collection_id` varchar(255) NOT NULL,
`game_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `collection_items_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `collections` (
`id` varchar(255) NOT NULL,
`user_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `collections_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `designers` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`external_id` int,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `designers_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `expansions` (
`id` varchar(255) NOT NULL,
`base_game_id` varchar(255) NOT NULL,
`game_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `expansions_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `games` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`description` text,
`year_published` year,
`min_players` int,
`max_players` int,
`playtime` int,
`min_playtime` int,
`max_playtime` int,
`min_age` int,
`image_url` varchar(255),
`thumb_url` varchar(255),
`url` varchar(255),
`external_id` int,
`last_sync_at` datetime,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `games_id` PRIMARY KEY(`id`),
CONSTRAINT `games_external_id_unique` UNIQUE(`external_id`)
);
--> statement-breakpoint
CREATE TABLE `mechanics` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`external_id` int,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `mechanics_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `publishers` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
`slug` varchar(255),
`external_id` int,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `publishers_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `roles` (
`id` varchar(255) NOT NULL,
`name` varchar(255),
CONSTRAINT `roles_id` PRIMARY KEY(`id`),
CONSTRAINT `roles_name_unique` UNIQUE(`name`)
);
--> statement-breakpoint
CREATE TABLE `sessions` (
`id` varchar(255) NOT NULL,
`user_id` varchar(255) NOT NULL,
`ip_country` varchar(255),
`ip_address` varchar(255),
`expires_at` datetime NOT NULL,
CONSTRAINT `sessions_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `user_roles` (
`id` varchar(255) NOT NULL,
`user_id` varchar(255) NOT NULL,
`role_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `user_roles_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `users` (
`id` varchar(255) NOT NULL,
`username` varchar(255),
`hashed_password` varchar(255),
`email` varchar(255),
`first_name` varchar(255),
`last_name` varchar(255),
`verified` boolean DEFAULT false,
`receive_email` boolean DEFAULT false,
`theme` varchar(255) DEFAULT 'system',
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `users_id` PRIMARY KEY(`id`),
CONSTRAINT `users_username_unique` UNIQUE(`username`),
CONSTRAINT `users_email_unique` UNIQUE(`email`)
);
--> statement-breakpoint
CREATE TABLE `wishlist_items` (
`id` varchar(255) NOT NULL,
`wishlist_id` varchar(255) NOT NULL,
`game_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `wishlist_items_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `wishlists` (
`id` varchar(255) NOT NULL,
`user_id` varchar(255) NOT NULL,
`created_at` datetime DEFAULT (now(6)),
`updated_at` datetime DEFAULT (now(6)),
CONSTRAINT `wishlists_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
ALTER TABLE `collection_items` ADD CONSTRAINT `collection_items_collection_id_collections_id_fk` FOREIGN KEY (`collection_id`) REFERENCES `collections`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `collection_items` ADD CONSTRAINT `collection_items_game_id_games_id_fk` FOREIGN KEY (`game_id`) REFERENCES `games`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `collections` ADD CONSTRAINT `collections_user_id_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `expansions` ADD CONSTRAINT `expansions_base_game_id_games_id_fk` FOREIGN KEY (`base_game_id`) REFERENCES `games`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `expansions` ADD CONSTRAINT `expansions_game_id_games_id_fk` FOREIGN KEY (`game_id`) REFERENCES `games`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `sessions` ADD CONSTRAINT `sessions_user_id_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `user_roles` ADD CONSTRAINT `user_roles_user_id_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `user_roles` ADD CONSTRAINT `user_roles_role_id_roles_id_fk` FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `wishlist_items` ADD CONSTRAINT `wishlist_items_wishlist_id_wishlists_id_fk` FOREIGN KEY (`wishlist_id`) REFERENCES `wishlists`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `wishlist_items` ADD CONSTRAINT `wishlist_items_game_id_games_id_fk` FOREIGN KEY (`game_id`) REFERENCES `games`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `wishlists` ADD CONSTRAINT `wishlists_user_id_users_id_fk` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE cascade ON UPDATE no action;