Refactor images
This commit is contained in:
		@ -14,6 +14,165 @@ datasource db {
 | 
			
		||||
  url      = env("DATABASE_URL")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Portfolio
 | 
			
		||||
model PortfolioImage {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  fileKey      String  @unique
 | 
			
		||||
  originalFile String  @unique
 | 
			
		||||
  name         String
 | 
			
		||||
  nsfw         Boolean @default(false)
 | 
			
		||||
  published    Boolean @default(true)
 | 
			
		||||
  setAsHeader  Boolean @default(false)
 | 
			
		||||
 | 
			
		||||
  altText      String?
 | 
			
		||||
  description  String?
 | 
			
		||||
  fileType     String?
 | 
			
		||||
  layoutGroup  String?
 | 
			
		||||
  fileSize     Int?
 | 
			
		||||
  layoutOrder  Int?
 | 
			
		||||
  month        Int?
 | 
			
		||||
  year         Int?
 | 
			
		||||
  creationDate DateTime?
 | 
			
		||||
  // group        String?
 | 
			
		||||
  // kind         String?
 | 
			
		||||
  // series       String?
 | 
			
		||||
  // slug         String?
 | 
			
		||||
  // fileSize     Int?
 | 
			
		||||
 | 
			
		||||
  typeId String?
 | 
			
		||||
  type   PortfolioType? @relation(fields: [typeId], references: [id])
 | 
			
		||||
 | 
			
		||||
  metadata ImageMetadata?
 | 
			
		||||
 | 
			
		||||
  categories PortfolioCategory[]
 | 
			
		||||
  colors     ImageColor[]
 | 
			
		||||
  tags       PortfolioTag[]
 | 
			
		||||
  variants   ImageVariant[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioType {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
  slug String @unique
 | 
			
		||||
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioCategory {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
  slug String @unique
 | 
			
		||||
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioTag {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
  slug String @unique
 | 
			
		||||
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model Color {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
  type String
 | 
			
		||||
 | 
			
		||||
  hex   String?
 | 
			
		||||
  blue  Int?
 | 
			
		||||
  green Int?
 | 
			
		||||
  red   Int?
 | 
			
		||||
 | 
			
		||||
  images ImageColor[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageColor {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId String
 | 
			
		||||
  colorId String
 | 
			
		||||
  type    String
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
  color Color          @relation(fields: [colorId], references: [id])
 | 
			
		||||
 | 
			
		||||
  @@unique([imageId, type])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageMetadata {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId  String @unique
 | 
			
		||||
  depth    String
 | 
			
		||||
  format   String
 | 
			
		||||
  space    String
 | 
			
		||||
  channels Int
 | 
			
		||||
  height   Int
 | 
			
		||||
  width    Int
 | 
			
		||||
 | 
			
		||||
  autoOrientH   Int?
 | 
			
		||||
  autoOrientW   Int?
 | 
			
		||||
  bitsPerSample Int?
 | 
			
		||||
  density       Int?
 | 
			
		||||
  hasAlpha      Boolean?
 | 
			
		||||
  hasProfile    Boolean?
 | 
			
		||||
  isPalette     Boolean?
 | 
			
		||||
  isProgressive Boolean?
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageVariant {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId String
 | 
			
		||||
  s3Key   String
 | 
			
		||||
  type    String
 | 
			
		||||
  height  Int
 | 
			
		||||
  width   Int
 | 
			
		||||
 | 
			
		||||
  fileExtension String?
 | 
			
		||||
  mimeType      String?
 | 
			
		||||
  url           String?
 | 
			
		||||
  sizeBytes     Int?
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
 | 
			
		||||
  @@unique([imageId, type])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model CommissionType {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
@ -149,159 +308,3 @@ model CommissionRequest {
 | 
			
		||||
  option   CommissionOption? @relation(fields: [optionId], references: [id])
 | 
			
		||||
  type     CommissionType?   @relation(fields: [typeId], references: [id])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioImage {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  fileKey      String  @unique
 | 
			
		||||
  originalFile String  @unique
 | 
			
		||||
  nsfw         Boolean @default(false)
 | 
			
		||||
  published    Boolean @default(false)
 | 
			
		||||
  setAsHeader  Boolean @default(false)
 | 
			
		||||
 | 
			
		||||
  altText      String?
 | 
			
		||||
  description  String?
 | 
			
		||||
  fileType     String?
 | 
			
		||||
  group        String?
 | 
			
		||||
  kind         String?
 | 
			
		||||
  layoutGroup  String?
 | 
			
		||||
  name         String?
 | 
			
		||||
  series       String?
 | 
			
		||||
  slug         String?
 | 
			
		||||
  type         String?
 | 
			
		||||
  fileSize     Int?
 | 
			
		||||
  layoutOrder  Int?
 | 
			
		||||
  month        Int?
 | 
			
		||||
  year         Int?
 | 
			
		||||
  creationDate DateTime?
 | 
			
		||||
 | 
			
		||||
  artTypeId  String?
 | 
			
		||||
  artType    PortfolioArtType?   @relation(fields: [artTypeId], references: [id])
 | 
			
		||||
  metadata   ImageMetadata?
 | 
			
		||||
  categories PortfolioCategory[]
 | 
			
		||||
  colors     ImageColor[]
 | 
			
		||||
  tags       PortfolioTag[]
 | 
			
		||||
  variants   ImageVariant[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioArtType {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
 | 
			
		||||
  slug        String?
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioCategory {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
 | 
			
		||||
  slug        String?
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model PortfolioTag {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
  sortIndex Int      @default(0)
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
 | 
			
		||||
  slug        String?
 | 
			
		||||
  description String?
 | 
			
		||||
 | 
			
		||||
  images PortfolioImage[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model Color {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  name String @unique
 | 
			
		||||
  type String
 | 
			
		||||
 | 
			
		||||
  hex   String?
 | 
			
		||||
  blue  Int?
 | 
			
		||||
  green Int?
 | 
			
		||||
  red   Int?
 | 
			
		||||
 | 
			
		||||
  images ImageColor[]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageColor {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId String
 | 
			
		||||
  colorId String
 | 
			
		||||
  type    String
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
  color Color          @relation(fields: [colorId], references: [id])
 | 
			
		||||
 | 
			
		||||
  @@unique([imageId, type])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageMetadata {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId  String @unique
 | 
			
		||||
  depth    String
 | 
			
		||||
  format   String
 | 
			
		||||
  space    String
 | 
			
		||||
  channels Int
 | 
			
		||||
  height   Int
 | 
			
		||||
  width    Int
 | 
			
		||||
 | 
			
		||||
  autoOrientH   Int?
 | 
			
		||||
  autoOrientW   Int?
 | 
			
		||||
  bitsPerSample Int?
 | 
			
		||||
  density       Int?
 | 
			
		||||
  hasAlpha      Boolean?
 | 
			
		||||
  hasProfile    Boolean?
 | 
			
		||||
  isPalette     Boolean?
 | 
			
		||||
  isProgressive Boolean?
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
model ImageVariant {
 | 
			
		||||
  id        String   @id @default(cuid())
 | 
			
		||||
  createdAt DateTime @default(now())
 | 
			
		||||
  updatedAt DateTime @updatedAt
 | 
			
		||||
 | 
			
		||||
  imageId String
 | 
			
		||||
  s3Key   String
 | 
			
		||||
  type    String
 | 
			
		||||
  height  Int
 | 
			
		||||
  width   Int
 | 
			
		||||
 | 
			
		||||
  fileExtension String?
 | 
			
		||||
  mimeType      String?
 | 
			
		||||
  url           String?
 | 
			
		||||
  sizeBytes     Int?
 | 
			
		||||
 | 
			
		||||
  image PortfolioImage @relation(fields: [imageId], references: [id])
 | 
			
		||||
 | 
			
		||||
  @@unique([imageId, type])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user