Add house leaderboard feature: Integrate house leaderboard functionality in LeaderboardPage and LeaderboardSection components. Update userStatsService to fetch house leaderboard data, and enhance UI to display house rankings, scores, and member details. Update Prisma schema to include house-related models and relationships, and seed database with initial house data.
Some checks failed
Deploy with Docker Compose / deploy (push) Has been cancelled

This commit is contained in:
Julien Froidefond
2025-12-17 13:35:18 +01:00
parent cb02b494f4
commit 85ee812ab1
36 changed files with 5422 additions and 13 deletions

View File

@@ -0,0 +1,120 @@
-- CreateEnum
CREATE TYPE "HouseRole" AS ENUM ('OWNER', 'ADMIN', 'MEMBER');
-- CreateEnum
CREATE TYPE "InvitationStatus" AS ENUM ('PENDING', 'ACCEPTED', 'REJECTED', 'CANCELLED');
-- CreateEnum
CREATE TYPE "RequestStatus" AS ENUM ('PENDING', 'ACCEPTED', 'REJECTED', 'CANCELLED');
-- CreateTable
CREATE TABLE "House" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT,
"creatorId" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "House_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "HouseMembership" (
"id" TEXT NOT NULL,
"houseId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"role" "HouseRole" NOT NULL DEFAULT 'MEMBER',
"joinedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "HouseMembership_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "HouseInvitation" (
"id" TEXT NOT NULL,
"houseId" TEXT NOT NULL,
"inviterId" TEXT NOT NULL,
"inviteeId" TEXT NOT NULL,
"status" "InvitationStatus" NOT NULL DEFAULT 'PENDING',
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "HouseInvitation_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "HouseRequest" (
"id" TEXT NOT NULL,
"houseId" TEXT NOT NULL,
"requesterId" TEXT NOT NULL,
"status" "RequestStatus" NOT NULL DEFAULT 'PENDING',
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "HouseRequest_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "House_creatorId_idx" ON "House"("creatorId");
-- CreateIndex
CREATE INDEX "House_name_idx" ON "House"("name");
-- CreateIndex
CREATE UNIQUE INDEX "HouseMembership_houseId_userId_key" ON "HouseMembership"("houseId", "userId");
-- CreateIndex
CREATE INDEX "HouseMembership_houseId_idx" ON "HouseMembership"("houseId");
-- CreateIndex
CREATE INDEX "HouseMembership_userId_idx" ON "HouseMembership"("userId");
-- CreateIndex
CREATE UNIQUE INDEX "HouseInvitation_houseId_inviteeId_key" ON "HouseInvitation"("houseId", "inviteeId");
-- CreateIndex
CREATE INDEX "HouseInvitation_houseId_idx" ON "HouseInvitation"("houseId");
-- CreateIndex
CREATE INDEX "HouseInvitation_inviteeId_idx" ON "HouseInvitation"("inviteeId");
-- CreateIndex
CREATE INDEX "HouseInvitation_status_idx" ON "HouseInvitation"("status");
-- CreateIndex
CREATE UNIQUE INDEX "HouseRequest_houseId_requesterId_key" ON "HouseRequest"("houseId", "requesterId");
-- CreateIndex
CREATE INDEX "HouseRequest_houseId_idx" ON "HouseRequest"("houseId");
-- CreateIndex
CREATE INDEX "HouseRequest_requesterId_idx" ON "HouseRequest"("requesterId");
-- CreateIndex
CREATE INDEX "HouseRequest_status_idx" ON "HouseRequest"("status");
-- AddForeignKey
ALTER TABLE "House" ADD CONSTRAINT "House_creatorId_fkey" FOREIGN KEY ("creatorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseMembership" ADD CONSTRAINT "HouseMembership_houseId_fkey" FOREIGN KEY ("houseId") REFERENCES "House"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseMembership" ADD CONSTRAINT "HouseMembership_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseInvitation" ADD CONSTRAINT "HouseInvitation_houseId_fkey" FOREIGN KEY ("houseId") REFERENCES "House"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseInvitation" ADD CONSTRAINT "HouseInvitation_inviterId_fkey" FOREIGN KEY ("inviterId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseInvitation" ADD CONSTRAINT "HouseInvitation_inviteeId_fkey" FOREIGN KEY ("inviteeId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseRequest" ADD CONSTRAINT "HouseRequest_houseId_fkey" FOREIGN KEY ("houseId") REFERENCES "House"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "HouseRequest" ADD CONSTRAINT "HouseRequest_requesterId_fkey" FOREIGN KEY ("requesterId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;