Files
AuroraBot-discord/drizzle/0000_fixed_tomas.sql
2025-12-19 10:53:01 +01:00

113 lines
5.4 KiB
SQL

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;