mirror of
https://github.com/jorgev259/soc_site-astro.git
synced 2025-06-29 07:57:41 +00:00
Compare commits
5 commits
74d6bfbe77
...
deb47c52e1
| Author | SHA1 | Date | |
|---|---|---|---|
| deb47c52e1 | |||
| de2ab2520f | |||
| cfc3d29135 | |||
| 80742fffdb | |||
| c7d9605d81 |
5 changed files with 73 additions and 16 deletions
|
|
@ -0,0 +1,44 @@
|
|||
-- DropForeignKey
|
||||
ALTER TABLE `comments` DROP FOREIGN KEY `comments_ibfk_1`;
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE `discs` DROP FOREIGN KEY `discs_ibfk_1`;
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE `favorites` DROP FOREIGN KEY `favorites_ibfk_1`;
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE `links` DROP FOREIGN KEY `links_ibfk_1`;
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE `ratings` DROP FOREIGN KEY `ratings_ibfk_1`;
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX `ostId` ON `comments`;
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX `discs_ibfk_1` ON `discs`;
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX `favorites_ibfk_1` ON `favorites`;
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX `links_ibfk_1` ON `links`;
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX `ratings_ibfk_1` ON `ratings`;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `comments` ADD CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`albumId`) REFERENCES `albums`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `discs` ADD CONSTRAINT `discs_ibfk_1` FOREIGN KEY (`albumId`) REFERENCES `albums`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `favorites` ADD CONSTRAINT `favorites_ibfk_1` FOREIGN KEY (`albumId`) REFERENCES `albums`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `links` ADD CONSTRAINT `links_ibfk_1` FOREIGN KEY (`downloadId`) REFERENCES `downloads`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `ratings` ADD CONSTRAINT `ratings_ibfk_1` FOREIGN KEY (`albumId`) REFERENCES `albums`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -199,8 +199,8 @@ model comments {
|
|||
updatedAt DateTime @db.DateTime(0)
|
||||
albumId Int?
|
||||
username String? @db.VarChar(255)
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "comments_ibfk_1")
|
||||
user users? @relation(fields: [username], references: [id], map: "comments_ibfk_2")
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "comments_ibfk_1", onDelete: Cascade)
|
||||
user users? @relation(fields: [username], references: [id], map: "comments_ibfk_2", onDelete: SetNull)
|
||||
}
|
||||
|
||||
model config {
|
||||
|
|
@ -215,7 +215,7 @@ model discs {
|
|||
number Int?
|
||||
body String? @db.Text
|
||||
albumId Int
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "discs_ibfk_1")
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "discs_ibfk_1", onDelete: Cascade)
|
||||
}
|
||||
|
||||
model downloads {
|
||||
|
|
@ -232,7 +232,7 @@ model favorites {
|
|||
updatedAt DateTime @db.DateTime(0)
|
||||
albumId Int
|
||||
username String? @db.VarChar(255)
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "favorites_ibfk_1")
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "favorites_ibfk_1", onDelete: Cascade)
|
||||
users users? @relation(fields: [username], references: [id], map: "favorites_ibfk_2")
|
||||
}
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ model links {
|
|||
provider String? @db.VarChar(255)
|
||||
downloadId Int
|
||||
url2 String? @db.VarChar(255)
|
||||
download downloads? @relation(fields: [downloadId], references: [id], map: "links_ibfk_1")
|
||||
download downloads? @relation(fields: [downloadId], references: [id], map: "links_ibfk_1", onDelete: Cascade)
|
||||
}
|
||||
|
||||
model logs {
|
||||
|
|
@ -321,7 +321,7 @@ model ratings {
|
|||
updatedAt DateTime @db.DateTime(0)
|
||||
albumId Int
|
||||
username String @db.VarChar(255)
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "ratings_ibfk_1")
|
||||
album albums? @relation(fields: [albumId], references: [id], map: "ratings_ibfk_1", onDelete: Cascade)
|
||||
user users? @relation(fields: [username], references: [id], map: "ratings_ibfk_2")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ if (!album) {
|
|||
<Input dark defaultValue={album.description} name='description' label='Description' className='col-span-3' />
|
||||
<Input dark name='cover' label='Cover image' type='file' />
|
||||
|
||||
<InputSelect dark name='status' label='Status' value={album.status}>
|
||||
<InputSelect dark name='status' label='Status' defaultValue={album.status}>
|
||||
<option value={AlbumStatus.HIDDEN}>Hidden</option>
|
||||
<option value={AlbumStatus.SHOW}>Show</option>
|
||||
</InputSelect>
|
||||
|
|
|
|||
|
|
@ -86,6 +86,14 @@ const coverImage = await getImage({
|
|||
meta: [{ name: 'theme-color', content: album?.headerColor }]
|
||||
}}
|
||||
/>
|
||||
|
||||
{album?.status === AlbumStatus.HIDDEN ? (
|
||||
<script>
|
||||
import toast from 'react-hot-toast'
|
||||
toast('This page is currently hidden', { duration: Infinity })
|
||||
</script>
|
||||
) : null}
|
||||
|
||||
<BaseLayout>
|
||||
<div
|
||||
class={`w-full min-h-100vh bg-fixed bg-center bg-cover`}
|
||||
|
|
|
|||
|
|
@ -59,20 +59,25 @@ export const POST: APIRoute = async ({ request, locals }) => {
|
|||
games: { deleteMany: {}, create: games?.map((slug) => ({ game: { connect: { slug } } })) },
|
||||
platforms: { deleteMany: {}, create: platforms?.map((id) => ({ platform: { connect: { id } } })) },
|
||||
discs: { deleteMany: {}, createMany: { data: body.discs ?? [] } },
|
||||
relatedAlbums: { deleteMany: {}, create: related?.map((id) => ({ relatedAlbum: { connect: { id } } })) }
|
||||
relatedAlbums: { deleteMany: {}, create: related?.map((id) => ({ relatedAlbum: { connect: { id } } })) },
|
||||
downloads: { deleteMany: {} }
|
||||
}
|
||||
})
|
||||
|
||||
await Promise.all([
|
||||
cover ? handleCover(cover, 'album', albumId, tx) : undefined,
|
||||
cover && cover.size > 0 ? handleCover(cover, 'album', albumId, tx) : undefined,
|
||||
downloads
|
||||
? tx.downloads.createMany({
|
||||
data: downloads.map((d) => ({
|
||||
title: d.title,
|
||||
albumId: albumId,
|
||||
links: { create: d.links }
|
||||
}))
|
||||
})
|
||||
? Promise.all(
|
||||
downloads.map((d) =>
|
||||
tx.downloads.create({
|
||||
data: {
|
||||
title: d.title,
|
||||
albumId: albumId,
|
||||
links: { create: d.links }
|
||||
}
|
||||
})
|
||||
)
|
||||
)
|
||||
: undefined
|
||||
])
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue