forked from syntaxbullet/AuroraBot-discord
chore: add database migrations
This commit is contained in:
113
drizzle/0000_fixed_tomas.sql
Normal file
113
drizzle/0000_fixed_tomas.sql
Normal file
@@ -0,0 +1,113 @@
|
||||
CREATE TABLE "classes" (
|
||||
"id" bigint PRIMARY KEY NOT NULL,
|
||||
"name" varchar(255) NOT NULL,
|
||||
"balance" bigint DEFAULT 0,
|
||||
"role_id" varchar(255),
|
||||
CONSTRAINT "classes_name_unique" UNIQUE("name")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "inventory" (
|
||||
"user_id" bigint NOT NULL,
|
||||
"item_id" integer NOT NULL,
|
||||
"quantity" bigint DEFAULT 1,
|
||||
CONSTRAINT "inventory_user_id_item_id_pk" PRIMARY KEY("user_id","item_id"),
|
||||
CONSTRAINT "quantity_check" CHECK ("inventory"."quantity" > 0)
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "item_transactions" (
|
||||
"id" bigserial PRIMARY KEY NOT NULL,
|
||||
"user_id" bigint NOT NULL,
|
||||
"related_user_id" bigint,
|
||||
"item_id" integer NOT NULL,
|
||||
"quantity" bigint NOT NULL,
|
||||
"type" varchar(50) NOT NULL,
|
||||
"description" text,
|
||||
"created_at" timestamp with time zone DEFAULT now()
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "items" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar(255) NOT NULL,
|
||||
"description" text,
|
||||
"rarity" varchar(20) DEFAULT 'Common',
|
||||
"type" varchar(50) DEFAULT 'MATERIAL' NOT NULL,
|
||||
"usage_data" jsonb DEFAULT '{}'::jsonb,
|
||||
"price" bigint,
|
||||
"icon_url" text NOT NULL,
|
||||
"image_url" text NOT NULL,
|
||||
CONSTRAINT "items_name_unique" UNIQUE("name")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "lootdrops" (
|
||||
"message_id" varchar(255) PRIMARY KEY NOT NULL,
|
||||
"channel_id" varchar(255) NOT NULL,
|
||||
"reward_amount" integer NOT NULL,
|
||||
"currency" varchar(50) NOT NULL,
|
||||
"claimed_by" bigint,
|
||||
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||||
"expires_at" timestamp with time zone
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "quests" (
|
||||
"id" serial PRIMARY KEY NOT NULL,
|
||||
"name" varchar(255) NOT NULL,
|
||||
"description" text,
|
||||
"trigger_event" varchar(50) NOT NULL,
|
||||
"requirements" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
||||
"rewards" jsonb DEFAULT '{}'::jsonb NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "transactions" (
|
||||
"id" bigserial PRIMARY KEY NOT NULL,
|
||||
"user_id" bigint,
|
||||
"related_user_id" bigint,
|
||||
"amount" bigint NOT NULL,
|
||||
"type" varchar(50) NOT NULL,
|
||||
"description" text,
|
||||
"created_at" timestamp with time zone DEFAULT now()
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "user_quests" (
|
||||
"user_id" bigint NOT NULL,
|
||||
"quest_id" integer NOT NULL,
|
||||
"progress" integer DEFAULT 0,
|
||||
"completed_at" timestamp with time zone,
|
||||
CONSTRAINT "user_quests_user_id_quest_id_pk" PRIMARY KEY("user_id","quest_id")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "user_timers" (
|
||||
"user_id" bigint NOT NULL,
|
||||
"type" varchar(50) NOT NULL,
|
||||
"key" varchar(100) NOT NULL,
|
||||
"expires_at" timestamp with time zone NOT NULL,
|
||||
"metadata" jsonb DEFAULT '{}'::jsonb,
|
||||
CONSTRAINT "user_timers_user_id_type_key_pk" PRIMARY KEY("user_id","type","key")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "users" (
|
||||
"id" bigint PRIMARY KEY NOT NULL,
|
||||
"class_id" bigint,
|
||||
"username" varchar(255) NOT NULL,
|
||||
"is_active" boolean DEFAULT true,
|
||||
"balance" bigint DEFAULT 0,
|
||||
"xp" bigint DEFAULT 0,
|
||||
"level" integer DEFAULT 1,
|
||||
"daily_streak" integer DEFAULT 0,
|
||||
"settings" jsonb DEFAULT '{}'::jsonb,
|
||||
"created_at" timestamp with time zone DEFAULT now(),
|
||||
"updated_at" timestamp with time zone DEFAULT now(),
|
||||
CONSTRAINT "users_username_unique" UNIQUE("username")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE "inventory" ADD CONSTRAINT "inventory_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "inventory" ADD CONSTRAINT "inventory_item_id_items_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."items"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "item_transactions" ADD CONSTRAINT "item_transactions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "item_transactions" ADD CONSTRAINT "item_transactions_related_user_id_users_id_fk" FOREIGN KEY ("related_user_id") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "item_transactions" ADD CONSTRAINT "item_transactions_item_id_items_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."items"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "lootdrops" ADD CONSTRAINT "lootdrops_claimed_by_users_id_fk" FOREIGN KEY ("claimed_by") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "transactions" ADD CONSTRAINT "transactions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "transactions" ADD CONSTRAINT "transactions_related_user_id_users_id_fk" FOREIGN KEY ("related_user_id") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "user_quests" ADD CONSTRAINT "user_quests_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "user_quests" ADD CONSTRAINT "user_quests_quest_id_quests_id_fk" FOREIGN KEY ("quest_id") REFERENCES "public"."quests"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "user_timers" ADD CONSTRAINT "user_timers_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "users" ADD CONSTRAINT "users_class_id_classes_id_fk" FOREIGN KEY ("class_id") REFERENCES "public"."classes"("id") ON DELETE no action ON UPDATE no action;
|
||||
Reference in New Issue
Block a user