feat(database): add economy-related tables and relationships; implement wallet, shop, and item management structures
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."EconomyWallet" (
|
||||
"id" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"coins" INTEGER NOT NULL DEFAULT 0,
|
||||
"metadata" JSONB,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "EconomyWallet_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."ShopPurchase" (
|
||||
"id" TEXT NOT NULL,
|
||||
"offerId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"qty" INTEGER NOT NULL DEFAULT 1,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "ShopPurchase_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "EconomyWallet_guildId_idx" ON "public"."EconomyWallet"("guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "EconomyWallet_userId_guildId_key" ON "public"."EconomyWallet"("userId", "guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ShopPurchase_offerId_idx" ON "public"."ShopPurchase"("offerId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ShopPurchase_userId_guildId_idx" ON "public"."ShopPurchase"("userId", "guildId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."EconomyWallet" ADD CONSTRAINT "EconomyWallet_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."EconomyWallet" ADD CONSTRAINT "EconomyWallet_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "public"."Guild"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."ShopPurchase" ADD CONSTRAINT "ShopPurchase_offerId_fkey" FOREIGN KEY ("offerId") REFERENCES "public"."ShopOffer"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."ShopPurchase" ADD CONSTRAINT "ShopPurchase_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."ShopPurchase" ADD CONSTRAINT "ShopPurchase_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "public"."Guild"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user