mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
233 lines
8.1 KiB
SQL
233 lines
8.1 KiB
SQL
CREATE TABLE IF NOT EXISTS "artists" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"external_id" integer,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "artists_to_games" (
|
|
"artist_id" varchar(255),
|
|
"game_id" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "categories" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"external_id" integer,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "categories_to_games" (
|
|
"category_id" varchar(255),
|
|
"game_id" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "collection_items" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"collection_id" varchar(255) NOT NULL,
|
|
"game_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "collections" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"user_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "designers" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"external_id" integer,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "designers_to_games" (
|
|
"designer_id" varchar(255),
|
|
"game_id" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "expansions" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"base_game_id" varchar(255) NOT NULL,
|
|
"game_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "games" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"description" text,
|
|
"year_published" integer,
|
|
"min_players" integer,
|
|
"max_players" integer,
|
|
"playtime" integer,
|
|
"min_playtime" integer,
|
|
"max_playtime" integer,
|
|
"min_age" integer,
|
|
"image_url" varchar(255),
|
|
"thumb_url" varchar(255),
|
|
"url" varchar(255),
|
|
"external_id" integer,
|
|
"last_sync_at" timestamp with time zone,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6)),
|
|
CONSTRAINT "games_external_id_unique" UNIQUE("external_id")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "mechanics" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"external_id" integer,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "mechanics_to_games" (
|
|
"mechanic_id" varchar(255),
|
|
"game_id" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "publishers" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
"slug" varchar(255),
|
|
"external_id" integer,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "publishers_to_games" (
|
|
"publisher_id" varchar(255),
|
|
"game_id" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "roles" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"name" varchar(255),
|
|
CONSTRAINT "roles_name_unique" UNIQUE("name")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "sessions" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"user_id" varchar(255) NOT NULL,
|
|
"expires_at" timestamp with time zone NOT NULL,
|
|
"ip_country" varchar(255),
|
|
"ip_address" varchar(255)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "user_roles" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"user_id" varchar(255) NOT NULL,
|
|
"role_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "users" (
|
|
"id" varchar(255) PRIMARY KEY 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" timestamp DEFAULT (now(6)),
|
|
"updated_at" timestamp DEFAULT (now(6)),
|
|
CONSTRAINT "users_username_unique" UNIQUE("username"),
|
|
CONSTRAINT "users_email_unique" UNIQUE("email")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "wishlist_items" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"wishlist_id" varchar(255) NOT NULL,
|
|
"game_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "wishlists" (
|
|
"id" varchar(255) PRIMARY KEY NOT NULL,
|
|
"user_id" varchar(255) NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT (now(6)),
|
|
"updated_at" timestamp with time zone DEFAULT (now(6))
|
|
);
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
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;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|