JavaScript 56.7%
TypeScript 42.6%
1-- Migration audit fonctionnel 2026-09-07 (SQLite, mode WAL).2-- Idempotente si appliquée via scripts/migrations/apply-2026-09-07-audit.ts (vérifie les colonnes avant).3-- Équivalent : `npx prisma db push --skip-generate` puis `npx prisma generate`.45-- 1. Corbeille : origine des fichiers supprimés6ALTER TABLE "File" ADD COLUMN "deletedFromFolderId" TEXT;7ALTER TABLE "File" ADD COLUMN "deletedFromPath" TEXT;89-- 2. Liens de partage : fileId optionnel + partage de dossier + compteur d'accès10PRAGMA foreign_keys=OFF;11CREATE TABLE "new_SharedLink" (12 "id" TEXT NOT NULL PRIMARY KEY,13 "fileId" TEXT,14 "folderId" TEXT,15 "token" TEXT NOT NULL,16 "expiresAt" DATETIME,17 "passwordHash" TEXT,18 "mode" TEXT NOT NULL DEFAULT 'DOWNLOAD',19 "active" BOOLEAN NOT NULL DEFAULT true,20 "accessCount" INTEGER NOT NULL DEFAULT 0,21 "lastAccessAt" DATETIME,22 "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,23 CONSTRAINT "SharedLink_fileId_fkey" FOREIGN KEY ("fileId") REFERENCES "File" ("id") ON DELETE CASCADE ON UPDATE CASCADE,24 CONSTRAINT "SharedLink_folderId_fkey" FOREIGN KEY ("folderId") REFERENCES "Folder" ("id") ON DELETE CASCADE ON UPDATE CASCADE25);26INSERT INTO "new_SharedLink" ("id","fileId","token","expiresAt","passwordHash","mode","active","createdAt")27 SELECT "id","fileId","token","expiresAt","passwordHash","mode","active","createdAt" FROM "SharedLink";28DROP TABLE "SharedLink";29ALTER TABLE "new_SharedLink" RENAME TO "SharedLink";30CREATE UNIQUE INDEX "SharedLink_token_key" ON "SharedLink"("token");31CREATE INDEX "SharedLink_token_idx" ON "SharedLink"("token");32CREATE INDEX "SharedLink_fileId_idx" ON "SharedLink"("fileId");33CREATE INDEX "SharedLink_folderId_idx" ON "SharedLink"("folderId");34PRAGMA foreign_keys=ON;35