-- CreateTable CREATE TABLE "S3Bucket" ( "id" TEXT NOT NULL PRIMARY KEY, "name" TEXT NOT NULL, "accountId" TEXT NOT NULL, "region" TEXT NOT NULL, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- CreateTable CREATE TABLE "S3Object" ( "id" TEXT NOT NULL PRIMARY KEY, "bucketId" TEXT NOT NULL, "key" TEXT NOT NULL, "versionId" TEXT, "content" BLOB NOT NULL, "contentType" TEXT NOT NULL DEFAULT 'application/octet-stream', "size" INTEGER NOT NULL, "etag" TEXT NOT NULL, "metadata" TEXT NOT NULL DEFAULT '{}', "storageClass" TEXT NOT NULL DEFAULT 'STANDARD', "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, CONSTRAINT "S3Object_bucketId_fkey" FOREIGN KEY ("bucketId") REFERENCES "S3Bucket" ("id") ON DELETE CASCADE ON UPDATE CASCADE ); -- CreateIndex CREATE UNIQUE INDEX "S3Bucket_accountId_region_name_key" ON "S3Bucket"("accountId", "region", "name"); -- CreateIndex CREATE INDEX "S3Object_bucketId_idx" ON "S3Object"("bucketId"); -- CreateIndex CREATE UNIQUE INDEX "S3Object_bucketId_key_key" ON "S3Object"("bucketId", "key");