// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

generator client {
  provider = "prisma-client-js"
  output   = "../../generated/prisma"
  binaryTargets = ["native", "debian-openssl-3.0.x"]
}

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

model User {
  id         String       @id @default(cuid())
  clerkId    String       @unique
  email      String       @unique
  firstName  String?
  lastName   String?
  createdAt  DateTime     @default(now())
  updatedAt  DateTime     @default(now()) @updatedAt
  Permission Permission[]
}

model Website {
  id        String   @id @default(cuid())
  alias     String?
  url       String   @unique
  token     String   @db.LongText
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now()) @updatedAt
}

model CloudeCache {
  id        String   @id @default(cuid())
  name      String
  url       String?
  token     String   @unique
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now()) @updatedAt
}

model Shopify {
  id              String   @id @default(cuid())
  name            String
  shopifyId       String   @unique
  shopifyJsonData Json?    @db.Json
  createdAt       DateTime @default(now())
  updatedAt       DateTime @default(now()) @updatedAt
}

model Conversion {
  id        String   @id @default(cuid())
  name      String?
  websites  String   @unique
  exo       Boolean  @default(true)
  ts        Boolean  @default(true)
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now()) @updatedAt
}

model Ip {
  id         String   @id @default(cuid())
  name       String
  ip_address String   @unique
  createdAt  DateTime @default(now())
  updatedAt  DateTime @default(now()) @updatedAt
}

model BlogLinks {
  id               String   @id @default(cuid())
  name             String
  url              String   @unique
  flipkartMain     String
  amazonMain       String
  arMain           String
  flipkartCheckout String
  amazonCheckout   String
  arCheckout       String
  close            String
  createdAt        DateTime @default(now())
  updatedAt        DateTime @default(now()) @updatedAt
}

model Permission {
  id         String   @id @default(cuid())
  user       User     @relation(fields: [userId], references: [clerkId], onDelete: Cascade)
  permission String?  @db.LongText
  createdAt  DateTime @default(now())
  updatedAt  DateTime @default(now()) @updatedAt
  userId     String
}
