Refactor colors and palettes

This commit is contained in:
2025-06-28 16:41:01 +02:00
parent 2a2cde2f02
commit 50617e5578
34 changed files with 872 additions and 243 deletions

View File

@ -24,8 +24,8 @@ model Gallery {
description String?
// coverImageId String?
// coverImage Image? @relation("GalleryCoverImage", fields: [coverImageId], references: [id])
coverImageId String?
coverImage Image? @relation("GalleryCoverImage", fields: [coverImageId], references: [id])
albums Album[]
}
@ -35,17 +35,19 @@ model Album {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
slug String
name String
description String?
// coverImageId String?
galleryId String?
// coverImage Image? @relation("AlbumCoverImage", fields: [coverImageId], references: [id])
gallery Gallery? @relation(fields: [galleryId], references: [id])
coverImageId String?
galleryId String?
coverImage Image? @relation("AlbumCoverImage", fields: [coverImageId], references: [id])
gallery Gallery? @relation(fields: [galleryId], references: [id])
images Image[]
@@unique([galleryId, slug])
}
model Artist {
@ -77,6 +79,30 @@ model Social {
artist Artist? @relation(fields: [artistId], references: [id])
}
model Category {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String @unique
description String?
images Image[] @relation("ImageCategories")
}
model Tag {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String @unique
description String?
images Image[] @relation("ImageTags")
}
model Image {
id String @id @default(cuid())
createdAt DateTime @default(now())
@ -91,6 +117,7 @@ model Image {
description String?
fileType String?
imageData String?
source String?
creationMonth Int?
creationYear Int?
fileSize Int?
@ -100,22 +127,22 @@ model Image {
artistId String?
album Album? @relation(fields: [albumId], references: [id])
artist Artist? @relation(fields: [artistId], references: [id])
// sourceId String?
// source Source? @relation(fields: [sourceId], references: [id])
metadata ImageMetadata[]
pixels PixelSummary[]
stats ImageStats[]
theme ThemeSeed[]
variants ImageVariant[]
metadata ImageMetadata?
stats ImageStats?
// albumCover Album[] @relation("AlbumCoverImage")
// galleryCover Gallery[] @relation("GalleryCoverImage")
categories Category[] @relation("ImageCategories")
colors ImageColor[] @relation("ImageToImageColor")
extractColors ExtractColor[] @relation("ImageToExtractColor")
palettes ColorPalette[] @relation("ImagePalettes")
tags Tag[] @relation("ImageTags")
colors ImageColor[]
extractColors ImageExtractColor[]
palettes ImagePalette[]
variants ImageVariant[]
// pixels PixelSummary[]
// theme ThemeSeed[]
albumCover Album[] @relation("AlbumCoverImage")
galleryCover Gallery[] @relation("GalleryCoverImage")
categories Category[] @relation("ImageCategories")
// colors ImageColor[] @relation("ImageToImageColor")
tags Tag[] @relation("ImageTags")
// palettes ColorPalette[] @relation("ImagePalettes")
}
model ImageMetadata {
@ -123,7 +150,7 @@ model ImageMetadata {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
imageId String @unique
depth String
format String
space String
@ -148,7 +175,7 @@ model ImageStats {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
imageId String @unique
entropy Float
sharpness Float
dominantB Int
@ -184,10 +211,10 @@ model ColorPalette {
updatedAt DateTime @updatedAt
name String
type String
items ColorPaletteItem[]
images Image[] @relation("ImagePalettes")
images ImagePalette[]
// images Image[] @relation("ImagePalettes")
}
model ColorPaletteItem {
@ -217,10 +244,11 @@ model ExtractColor {
hue Float?
saturation Float?
images Image[] @relation("ImageToExtractColor")
// images Image[] @relation("ImageToExtractColor")
images ImageExtractColor[]
}
model ImageColor {
model Color {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@ -233,53 +261,74 @@ model ImageColor {
green Int?
red Int?
images Image[] @relation("ImageToImageColor")
images ImageColor[]
}
model ThemeSeed {
// model ThemeSeed {
// id String @id @default(cuid())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// imageId String
// seedHex String
// image Image @relation(fields: [imageId], references: [id])
// }
// model PixelSummary {
// id String @id @default(cuid())
// createdAt DateTime @default(now())
// updatedAt DateTime @updatedAt
// imageId String
// channels Int
// height Int
// width Int
// image Image @relation(fields: [imageId], references: [id])
// }
model ImagePalette {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
paletteId String
type String
image Image @relation(fields: [imageId], references: [id])
palette ColorPalette @relation(fields: [paletteId], references: [id])
@@unique([imageId, type])
}
model ImageExtractColor {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
extractId String
type String
image Image @relation(fields: [imageId], references: [id])
extract ExtractColor @relation(fields: [extractId], references: [id])
@@unique([imageId, type])
}
model ImageColor {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
seedHex String
colorId String
type String
image Image @relation(fields: [imageId], references: [id])
}
model PixelSummary {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
imageId String
channels Int
height Int
width Int
image Image @relation(fields: [imageId], references: [id])
}
model Category {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String @unique
description String?
images Image[] @relation("ImageCategories")
}
model Tag {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String @unique
description String?
images Image[] @relation("ImageTags")
color Color @relation(fields: [colorId], references: [id])
@@unique([imageId, type])
}