generator client {
  provider = "prisma-client-js"
}

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

model CarrierCommission {
  id                   Int    @id @default(autoincrement())
  api_service_provider String
  service_provider     String
  service_name         String
  service_id           String
  from_country         String
  to_country           String
  value_to_calculate   Float
  action               String
  created_by           String
}

model RatesForShopify {
  id           Int      @id @default(autoincrement())
  content      String?  @db.LongText
  rate_session String?
  createdAt    DateTime @default(now())
  updatedAt    DateTime @updatedAt
}


model RatesForQuuoteMe {
  id                    Int      @id @default(autoincrement())
  provider              String?
  rate_id               String?
  
  carrier               String?
  service               String?
  carrier_logo          String?
  
  rate                  Float?
  buying_rate           Float?
  estimated_import_duty Float?
  estimated_import_tax  Float?
  vat_rate              Float?
  comission_added       Float?
  comission_subtracted  Float?
  company_discount      Float?

  currency              String?
  delivery_time         String?
  full_json             Json?
  sent_data             Json?
  price_breakup         Json?
  


  tax_added             Int?
  ratting               Int?
  tracking              String?
  service_options       Json?
  quoterequest          Json?
  platform_json         Json?

  createdAt    DateTime @default(now())
  updatedAt    DateTime @updatedAt
}



model RateSetting {
  id            Int      @id @default(autoincrement())
  shop          String?
  country       String?
  setting_type  String?
  shipping_cost String?  @db.Text
  price_option  String?
  companyId     Int
  createdAt     DateTime @default(now())
  updatedAt     DateTime @updatedAt
}

model Countries {
  id               Int      @id @default(autoincrement())
  countrycode      String?
  countryname      String?
  continent_code   String?
  code             String?
  currency         String?
  timezone         String?
  capital          String?
  capital_zip_code String?
  vat_rate         Float?
  latitude         Float?
  longitude        Float?
  createdAt        DateTime @default(now())
}



model Api {
  id        Int      @id @default(autoincrement())
  companyId Int      @unique  // Add unique constraint
  apiKey    String   @db.VarChar(255)
  apiSec    String   @default("") @db.VarChar(255)
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}


model Product {
  id        Int     @id @default(autoincrement())
  productId String
  name      String
  sku       String?
  hsCode   String?
  category  String?
  countryOfOrigin String?
  pickLocation String?
  description String?  @db.Text
  price     Float
  length     Float
  width     Float
  height     Float
  weight     Float  
  weightUnit String?
  dimensionUnit String?
  companyId Int
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

model Box {
  id        Int     @id @default(autoincrement())
  boxId    Int
  name     String
  length     Float
  width     Float
  height     Float
  weight     Float
  payload   String
  weightUnit String?
  dimensionUnit String?
  shipMode  String
  packingType String 
  companyId Int
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}


model Carriers {
  id        Int     @id @default(autoincrement())
  name     String
  carrierId     String  
  provider     String  
  companyId Int
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}


model Subscriptions {
  id        Int     @id @default(autoincrement())
  
  expiresAt     DateTime  
  currentStatus Int
  companyId Int
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}


model Insurance {
  id            Int      @id @default(autoincrement())
  product_price Int
  shipping_cost Int
  added_value   Int
  always_insured Int
  companyId    Int
  created_at    DateTime @default(now())
  updated_at    DateTime @updatedAt
}







