···11+-- Drop old raw-SQL queue tables (created in 20260222120000 / 20260222130000)
22+DROP TABLE IF EXISTS queue.worker_heartbeats;
33+DROP TABLE IF EXISTS queue.messages;
44+DROP SCHEMA IF EXISTS queue;
55+66+-- CreateEnum
77+CREATE TYPE "MessageStatusEnum" AS ENUM ('PENDING', 'SUCCESS', 'FAILURE');
88+99+-- CreateTable
1010+CREATE TABLE "MessageStatus" (
1111+ "id" TEXT NOT NULL,
1212+ "name" "MessageStatusEnum" NOT NULL,
1313+1414+ CONSTRAINT "MessageStatus_pkey" PRIMARY KEY ("id")
1515+);
1616+1717+-- CreateTable
1818+CREATE TABLE "Message" (
1919+ "id" TEXT NOT NULL,
2020+ "messengerId" TEXT NOT NULL,
2121+ "name" TEXT NOT NULL,
2222+ "envelope" TEXT NOT NULL,
2323+ "queue" TEXT NOT NULL DEFAULT 'default',
2424+ "availableAt" TIMESTAMP(3) NOT NULL,
2525+ "deliveredAt" TIMESTAMP(3),
2626+ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
2727+ "statusId" TEXT NOT NULL,
2828+2929+ CONSTRAINT "Message_pkey" PRIMARY KEY ("id")
3030+);
3131+3232+-- CreateIndex
3333+CREATE UNIQUE INDEX "MessageStatus_name_key" ON "MessageStatus"("name");
3434+3535+-- CreateIndex
3636+CREATE INDEX "Message_queue_availableAt_idx" ON "Message"("queue", "availableAt");
3737+3838+-- AddForeignKey
3939+ALTER TABLE "Message" ADD CONSTRAINT "Message_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "MessageStatus"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
···1212import { CurrentUser } from "@/modules/current-user/current-user.decorator";
1313import { User } from "@/modules/user/user.type";
1414import { AuthenticationResponse } from "../../../graphql/authentication.type";
1515-import { GraphQLContext } from "../../../graphql/graphql-context.type";
1515+import type { GraphQLContext } from "../../../graphql/graphql-context.type";
16161717@Resolver()
1818export class PasswordAuthenticationResolver {
···1212import type { Response } from "express";
1313import { CurrentRefreshTokenId } from "@/modules/current-user/current-refresh-token-id.decorator";
1414import { CurrentUser } from "@/modules/current-user/current-user.decorator";
1515-import { GraphQLContext } from "../graphql/graphql-context.type";
1515+import type { GraphQLContext } from "../graphql/graphql-context.type";
1616import { ActiveSession } from "./active-session.type";
17171818@Resolver()