- CommentAttachment link table (comment <-> file) + migration - fileIds in create/update comment; update replaces the whole set, synced in one transaction with the comment - CommentDto.attachments; empty for deleted comments - Soft delete drops attachments so GC can collect the files - Max 10 files per comment, ordered by upload time (uuid v7) - Registers comments as a file owner - Rename CommentAuthorExpanderService -> CommentExpanderService (expands authors and files) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
729 B
SQL
19 lines
729 B
SQL
-- CreateTable
|
|
CREATE TABLE "comment_attachment" (
|
|
"commentId" TEXT NOT NULL,
|
|
"fileId" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "comment_attachment_pkey" PRIMARY KEY ("commentId","fileId")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "comment_attachment_fileId_idx" ON "comment_attachment"("fileId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "comment_attachment" ADD CONSTRAINT "comment_attachment_commentId_fkey" FOREIGN KEY ("commentId") REFERENCES "comment"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "comment_attachment" ADD CONSTRAINT "comment_attachment_fileId_fkey" FOREIGN KEY ("fileId") REFERENCES "file"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|