Add timelapse upload and display to image edit page

This commit is contained in:
2026-01-30 22:18:24 +01:00
parent 95c44b7f8e
commit 3ce4c9acfc
8 changed files with 370 additions and 2 deletions

View File

@ -9,6 +9,7 @@ export async function deleteArtwork(artworkId: string) {
where: { id: artworkId },
include: {
variants: true,
timelapse: true,
colors: true,
metadata: true,
tags: true,
@ -32,6 +33,20 @@ export async function deleteArtwork(artworkId: string) {
}
}
// Delete timelapse S3 object (if present)
if (artwork.timelapse?.s3Key) {
try {
await s3.send(
new DeleteObjectCommand({
Bucket: `${process.env.BUCKET_NAME}`,
Key: artwork.timelapse.s3Key,
})
);
} catch (err) {
console.warn(`Failed to delete timelapse S3 object: ${artwork.timelapse.s3Key}. ${err}`);
}
}
// Step 1: Delete join entries
await prisma.artworkColor.deleteMany({ where: { artworkId } });
@ -48,6 +63,9 @@ export async function deleteArtwork(artworkId: string) {
// Delete variants
await prisma.fileVariant.deleteMany({ where: { artworkId } });
// Delete timelapse DB row (relation also cascades, but be explicit)
await prisma.artworkTimelapse.deleteMany({ where: { artworkId } });
// Delete metadata
await prisma.artworkMetadata.deleteMany({ where: { artworkId } });