generator client {
  provider      = "prisma-client-js"
  previewFeatures = ["driverAdapters"]
  binaryTargets = ["native", "linux-musl-openssl-3.0.x"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Partner {
  id         String   @id @default(cuid())
  name       String
  category   String
  city       String
  logo       String?
  advantages String[]
  conditions String?
  website    String?
  address    String?
  active     Boolean  @default(true)
  createdAt  DateTime @default(now())
  updatedAt  DateTime @updatedAt
}

model Event {
  slug        String    @id
  title       String
  date        DateTime
  endDate     DateTime?
  place       String
  cover       String?
  tags        String[]
  description String
  ticketUrl   String?
  published   Boolean   @default(false)
  photosUrl   String?
  createdAt   DateTime  @default(now())
  updatedAt   DateTime  @updatedAt
}

model TeamMember {
  id            String   @id @default(cuid())
  name          String
  role          String
  photo         String
  photoPosition String?
  linkedin      String?
  instagram     String?
  email         String?
  createdAt     DateTime @default(now())
  updatedAt     DateTime @updatedAt
}

model Settings {
  id          Int      @id @default(1)
  association String
  year        String
  email       String
  shopUrl     String?
  instagram   String?
  discord     String?
  facebook    String?
  linkedin    String?
  updatedAt   DateTime @updatedAt
}

model SiteContent {
  id        String   @id @default(cuid())
  section   String
  key       String
  value     String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  @@unique([section, key])
}

model User {
  id        String   @id @default(cuid())
  name      String?
  email     String   @unique
  password  String
  role      String   @default("ADMIN")
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

model Product {
  id        String   @id @default(cuid())
  name      String
  type      String
  quantity  Int      @default(0)
  price     Float
  image     String?
  active    Boolean  @default(true)
  order     Int      @default(0)
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}
