generator client {
  provider = "prisma-client"
  output   = "../generated/prisma"
}

datasource db {
  provider = "mysql"
}

model User {
  id                                    Int       @id @default(autoincrement()) @db.UnsignedInt
  name                                  String?
  phone                                 String?   @unique(map: "users_phone_unique")
  email                                 String?
  password                              String?
  profile_picture                       String?
  account_type                          String    @default("customer")
  master_admin                          Boolean   @default(false)
  datalabs                              Boolean   @default(false)
  is_phone_verified                     Boolean   @default(false)
  is_email_verified                     Boolean   @default(false)
  is_active                             Boolean   @default(false)
  deleted                               Boolean   @default(false)
  is_temp_password                      Boolean   @default(false)
  hierarchy_id                          Int       @default(1)
  is_survey_completed                   Boolean   @default(false)
  wallet_id                             Int?
  remember_token                        String?   @db.VarChar(100)
  created_at                            DateTime? @db.Timestamp(0)
  updated_at                            DateTime? @updatedAt @db.Timestamp(0)
  agent_type                            String?   @db.VarChar(45)
  is_automated_weight_detection_enabled Boolean?
  weighing_scale_udid                   String?   @db.VarChar(45)

  @@index([phone], map: "phone")
  @@map("users")
}

model addresses {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  cust_name  String?
  type       String    @default("house")
  h_no       String
  street     String?
  locality   String
  city       String
  state      String
  landmark   String?
  lat        Decimal   @db.Decimal(10, 5)
  lng        Decimal   @db.Decimal(10, 5)
  pincode    String
  is_primary Boolean   @default(false)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model admin_notes {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id            Int       @db.UnsignedInt
  note               String    @db.Text
  added_by_user_id   Int       @db.UnsignedInt
  added_by_user_name String?
  added_at           DateTime  @default(now()) @db.Timestamp(0)
  created_at         DateTime? @default(now()) @db.DateTime(0)
  updated_at         DateTime? @default(now()) @db.DateTime(0)
}

model agent_attendances {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  date       DateTime  @db.Date
  type       String
  reason     String    @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model agent_requests {
  id              Int       @id @default(autoincrement()) @db.UnsignedInt
  agent_id        Int
  pickup_id       Int?      @default(0)
  url             String
  headers         String    @db.Text
  post_payload    String    @db.Text
  response        String    @db.Text
  is_resolved     Boolean   @default(false)
  response_status String
  created_at      DateTime? @db.Timestamp(0)
  updated_at      DateTime? @db.Timestamp(0)

  @@index([pickup_id], map: "PICKUP_ID")
}

model agent_transactions {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  pickup_id  Int?
  amount     Decimal   @db.Decimal(8, 2)
  type       String
  comment    String?   @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model agents {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  force_sync Boolean   @default(false)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model app_versions {
  id                Int       @id @default(autoincrement()) @db.UnsignedInt
  app_name          String?   @db.VarChar(20)
  device_type       String?   @db.VarChar(10)
  version           String?   @db.VarChar(10)
  check_for_updates Int?      @default(1) @db.TinyInt
  created_at        DateTime? @db.Timestamp(0)
  updated_at        DateTime? @db.Timestamp(0)
}

model available_barcodes {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id  Int?
  barcode    String    @unique(map: "barcode_UNIQUE")
  is_tagged  Boolean   @default(false)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model available_qrcodes {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int?
  qrcode     String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model bad_bag_images {
  id                         Int       @id @default(autoincrement())
  user_id                    Int?
  barcode                    String?   @unique(map: "barcode") @db.VarChar(10)
  type                       String?   @db.Text
  cust_hno                   String?   @db.VarChar(100)
  pickup_date                String?   @db.VarChar(10)
  community_id               Int?
  image_urls                 String?   @db.Text
  approval_status            String?   @default("Pending") @db.VarChar(10)
  approval_status_updated_at DateTime? @default(now()) @db.DateTime(0)
  is_notification_sent       Int?      @default(0) @db.UnsignedTinyInt
  notification_sent_at       DateTime? @default(now()) @db.DateTime(0)
  created_at                 DateTime? @default(now()) @db.DateTime(0)
  updated_at                 DateTime? @default(now()) @db.DateTime(0)
}

model bag_distribution_groups {
  id                Int       @id @default(autoincrement()) @db.UnsignedInt
  distribution_date DateTime? @db.Date
  community_id      Int
  agent_id          Int
  status            String    @default("") @db.VarChar(25)
  hierarchy_id      Int
  created_at        DateTime? @db.Timestamp(0)
  updated_at        DateTime? @db.Timestamp(0)
}

model bag_distributions {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                   Int
  community_id              Int
  hierarchy_id              Int?
  bags_count                Int
  agent_id                  Int?
  cust_name                 String?
  agent_name                String?   @db.VarChar(25)
  price                     Decimal?  @db.Decimal(8, 2)
  status                    String?   @default("pending") @db.VarChar(25)
  distribution_type         String?   @db.VarChar(25)
  distribution_creator      Int?
  distribution_date         DateTime? @db.Date
  cust_hno                  String?   @db.VarChar(30)
  created_at                DateTime? @db.DateTime(0)
  updated_at                DateTime? @db.DateTime(0)
  bag_distribution_group_id Int?
}

model bag_images {
  id           Int       @id @default(autoincrement())
  user_id      Int?
  barcode      String?   @unique(map: "barcode") @db.VarChar(10)
  cust_hno     String?   @db.VarChar(100)
  pickup_date  String?   @db.VarChar(10)
  community_id Int?
  image_urls   String?   @db.Text
  updated_at   DateTime? @default(now()) @db.DateTime(0)
  created_at   DateTime? @default(now()) @db.DateTime(0)
}

model bag_requests {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id      Int
  bag_count    Int
  is_delivered Boolean   @default(false)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model barcode_image_logs {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id      Int       @db.UnsignedInt
  name         String?
  barcode      String    @db.VarChar(150)
  date         String    @db.TinyText
  image_urls   String?   @db.Text
  hierarchy_id Int       @db.UnsignedInt
  updated_at   DateTime? @default(now()) @db.DateTime(0)
  created_at   DateTime? @default(now()) @db.DateTime(0)
  orientation  String?   @db.Text
  timestamp    String?   @db.Text
  meta_data    String?   @db.MediumText
}

model beneficiaries {
  id             Int       @id @default(autoincrement()) @db.UnsignedInt
  wallet_id      Int
  title          String
  type           String
  name           String
  phone          String
  email          String
  bank_ac_number String?
  bank_ifsc      String?
  paytm_phone    String?
  upi_key        String?   @unique(map: "upi_key_unique")
  is_verified    Boolean   @default(false)
  is_primary     Boolean   @default(false)
  created_at     DateTime? @db.Timestamp(0)
  updated_at     DateTime? @db.Timestamp(0)
}

model bintix_clients {
  id        Int      @id @default(autoincrement())
  name      String   @db.VarChar(255)
  branch    String   @db.VarChar(255)
  latitude  String   @db.VarChar(50)
  longitude String   @db.VarChar(50)
  website   String   @db.VarChar(255)
  address   String   @db.Text
  is_active Boolean  @default(true)
  addedBy   Int
  updatedOn DateTime @default(now()) @db.Timestamp(0)
}

model bintix_clients_admin {
  id          Int       @id @default(autoincrement())
  email_id    String    @unique(map: "email_id") @db.VarChar(255)
  password    String?   @db.VarChar(255)
  secureKey   String?   @db.VarChar(255)
  company     Int
  name        String    @db.VarChar(255)
  phone       String    @db.VarChar(255)
  designation String    @db.VarChar(255)
  isMain      Boolean   @default(true)
  is_active   Boolean   @default(true)
  last_login  DateTime? @db.DateTime(0)
  last_ip     String?   @db.VarChar(255)
  addedBy     Int?
  updatedOn   DateTime  @default(now()) @db.Timestamp(0)

  @@index([company], map: "company")
}

model blob_items {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  blob_id    Int
  name       String
  filePath   String
  type       String
  comment    String?
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model blobs {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  type       String    @default("pickup_docs")
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model blue_bag_tracking {
  id                     Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                Int       @db.UnsignedInt
  pickup_id              Int       @db.UnsignedInt
  pickup_date            DateTime  @db.Date
  collected_at           DateTime? @db.DateTime(0)
  collected_at_location  String?
  weighed_at             DateTime? @db.DateTime(0)
  weight                 Float?    @db.Float
  catalogued_at          DateTime? @db.DateTime(0)
  catalogued_at_location String?
  sent_to_recycler_at    DateTime? @db.DateTime(0)
  recycled_at            DateTime? @db.DateTime(0)
  current_status         String?   @db.VarChar(45)
  created_at             DateTime? @db.Timestamp(0)
  updated_at             DateTime? @db.Timestamp(0)

  @@unique([user_id, pickup_id], map: "user_id_pickup_id")
}

model brands {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  name        String
  category_id Int?
  created_at  DateTime? @db.Timestamp(0)
  updated_at  DateTime? @db.Timestamp(0)
}

model bundle_barcodes {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  barcode    String?   @unique(map: "barcode_UNIQUE") @db.VarChar(25)
  parent     String?   @db.VarChar(25)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model buyer_documents {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  buyer_id   Int       @db.UnsignedInt
  url        String?   @db.TinyText
  updated_at DateTime? @db.Timestamp(0)
  created_at DateTime? @db.Timestamp(0)
  is_active  Boolean   @default(true)
}

model buyers {
  id                  Int       @id @default(autoincrement()) @db.UnsignedInt
  hierarchy_ids       Json
  gst_number          String?   @db.VarChar(20)
  image               String?   @db.TinyText
  buyer_phone         String    @db.VarChar(100)
  buyer_company_name  String    @db.VarChar(150)
  contact_person_name String    @db.VarChar(120)
  is_active           Boolean   @default(true)
  created_at          DateTime? @db.Timestamp(0)
  updated_at          DateTime? @db.Timestamp(0)
  type                String?   @db.VarChar(50)
}

model catalogs {
  id              Int       @id @default(autoincrement()) @db.UnsignedInt
  brand_id        Int?
  manufacturer_id Int?
  barcode         String?
  name            String
  weight          String?
  variant         String?
  source          String?
  status          String    @default("pending")
  imagePath       String?
  price           Decimal?  @db.Decimal(8, 2)
  created_at      DateTime? @db.Timestamp(0)
  updated_at      DateTime? @db.Timestamp(0)
}

model categories {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int
  name       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model cities {
  id         Int      @id @default(autoincrement()) @db.UnsignedInt
  state_id   Int      @db.UnsignedInt
  name       String?  @db.VarChar(45)
  created_at DateTime @db.DateTime(0)
  updated_at DateTime @db.DateTime(0)
}

model codes {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id     Int
  target      String
  code        String?
  mode        String    @default("otp")
  type        String?
  is_active   Boolean   @default(false)
  expiry_date DateTime? @db.DateTime(0)
  created_at  DateTime? @db.Timestamp(0)
  updated_at  DateTime? @db.Timestamp(0)
  provider    String?   @db.VarChar(25)
}

model communities {
  id                       Int       @id @default(autoincrement()) @db.UnsignedInt
  name                     String
  zone_id                  Int?
  zone                     String
  address                  String    @db.Text
  pincode                  String    @db.VarChar(6)
  is_active                String
  type                     String    @default("community")
  priority_type            String?   @db.VarChar(45)
  hierarchy_id             Int       @default(1)
  commission               Int       @default(0)
  wallet_id                Int
  price                    Decimal   @db.Decimal(8, 2)
  created_at               DateTime? @db.Timestamp(0)
  updated_at               DateTime? @db.Timestamp(0)
  news_paper               Int?      @default(0)
  pickup_ref_date          DateTime? @db.Date
  pickup_ref_days          String?   @db.VarChar(200)
  pickup_ref_agent         Int?
  bag_ref_date             DateTime? @db.Date
  bag_ref_agent            Int?
  slot_id                  Int?
  pickup_enabled           Int       @default(1) @db.TinyInt
  bag_distribution_enabled Int       @default(1) @db.TinyInt
  deleted                  Boolean   @default(false)
  sec_type                 String?   @db.VarChar(45)
  latitude                 Decimal?  @db.Decimal(10, 8)
  longitude                Decimal?  @db.Decimal(10, 8)
}

model community_batches {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  community_id       Int
  user_id            Int
  community_group_id Int
  created_at         DateTime? @db.Timestamp(0)
  updated_at         DateTime? @db.Timestamp(0)

  @@index([community_group_id], map: "community_group_id")
  @@index([community_id], map: "community_id")
  @@index([user_id], map: "user_id")
}

model community_groups {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  community_id Int
  group_name   String?   @db.VarChar(25)
  is_active    Int       @default(1) @db.TinyInt
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)

  @@index([community_id], map: "community_id")
}

model community_pickup_group_comments {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  community_pickup_group_id Int
  user_id                   Int
  type                      String
  comment                   String    @db.Text
  created_at                DateTime? @db.Timestamp(0)
  updated_at                DateTime? @db.Timestamp(0)
}

model community_pickup_groups {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_date      DateTime  @db.Date
  rescheduled_from Int?
  rescheduled_to   Int?
  community_id     Int
  status           String?
  agent_id         Int
  creator_id       Int
  slot_id          Int
  is_check_in      Boolean   @default(false)
  is_check_out     Boolean   @default(false)
  hierarchy_id     Int       @default(1)
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
}

model community_reports {
  id                       Int       @id @default(autoincrement()) @db.UnsignedInt
  date                     DateTime  @db.Date
  hierarchy_id             Int
  community_id             Int
  community_name           String?   @default("")
  community_type           String?   @db.VarChar(45)
  community_user_is_active Boolean?
  date_of_onboarding       DateTime? @db.Date
  user_id                  Int
  user_name                String?
  user_house_no            String?
  kg                       Float?    @default(0) @db.Float
  price                    Float?    @default(0) @db.Float
  mnh_charges              Float?    @default(0) @db.Float
  bags                     Int?      @default(0)
  bad_bags                 Int?      @default(0)
  bad_bag_barcodes         String?   @db.MediumText
  created_at               DateTime? @db.Timestamp(0)
  updated_at               DateTime? @db.Timestamp(0)

  @@unique([date, user_id, community_id, hierarchy_id], map: "date_user_id_community_id_hierarchy_id")
  @@index([hierarchy_id, date], map: "hierarchy_id_date")
}

model community_user_unavailabilities {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id      Int
  community_id Int
  start_date   DateTime  @db.Date
  end_date     DateTime? @db.Date
  is_active    Boolean   @default(true)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
  admin_id     Int?
  remarks      String?   @db.VarChar(500)
}

model community_users {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  community_id       Int
  user_id            Int
  join_date          DateTime  @db.Date
  is_active          Boolean
  create_bulk_pickup Boolean   @default(true)
  priority           Int       @default(9999)
  is_manager         Int       @default(0)
  created_at         DateTime? @db.Timestamp(0)
  updated_at         DateTime? @db.Timestamp(0)
  price              Decimal?  @default(4.00) @db.Decimal(8, 2)
  bag_price          Decimal?  @default(3.00) @db.Decimal(8, 2)
  extra_bag_price    Decimal?  @default(10.00) @db.Decimal(8, 2)
  bad_bag_charges    Decimal?  @default(0.00) @db.Decimal(8, 2)
  bag_limit          Int?      @default(12) @db.UnsignedTinyInt
  priority_type      String    @default("P1") @db.VarChar(45)
  exit_date          DateTime? @db.Date

  @@index([user_id], map: "user_id")
}

model contact_us_requests {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String    @db.VarChar(45)
  email      String    @db.VarChar(45)
  subject    String    @db.VarChar(45)
  message    String    @db.MediumText
  status     String?   @default("Submitted") @db.VarChar(45)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model cron_logs {
  id                   Int       @id @default(autoincrement()) @db.UnsignedInt
  date                 DateTime  @db.Date
  name                 String?   @db.VarChar(45)
  command              String?   @db.VarChar(100)
  execution_started_at DateTime? @db.DateTime(0)
  execution_ended_at   DateTime? @db.DateTime(0)
  execution_failed_at  DateTime? @db.DateTime(0)
  error_message        String?   @db.Text
  status               String    @default("In Progress") @db.VarChar(45)
  created_at           DateTime  @db.DateTime(0)
  updated_at           DateTime  @db.DateTime(0)

  @@unique([date, name], map: "date_name")
}

model curated_skus {
  id           Int     @id @default(autoincrement()) @db.UnsignedInt
  product_id   Int?
  barcode      String? @db.VarChar(255)
  title        String? @db.VarChar(255)
  weight       String? @db.VarChar(255)
  brand        String? @db.VarChar(255)
  manufacturer String? @db.VarChar(255)
  price        String? @db.VarChar(255)
  main_cat     String? @db.VarChar(255)
  sub_cat      String? @db.VarChar(255)
  sub_sub_cat  String? @db.VarChar(255)
  unit         String? @db.VarChar(255)
  net_content  String? @db.VarChar(255)
  unit2        String? @db.VarChar(255)
  net_weight   String? @db.VarChar(255)

  @@index([barcode], map: "barcode")
  @@index([product_id], map: "product_id")
}

model customers {
  id                       Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                  Int
  payment_mode             String?   @default("cash")
  household_count          Int       @default(1)
  location                 String?
  lat                      Decimal?  @db.Decimal(10, 5)
  lng                      Decimal?  @db.Decimal(10, 5)
  designation              String?
  referred_by              Int?
  referral_code            String?   @unique(map: "customers_referral_code_unique")
  about                    String?   @db.Text
  tc_accepted              Boolean?
  tc_accepted_date         DateTime? @db.DateTime(0)
  app_tc_accepted          Boolean?  @default(false)
  app_tc_accepted_date     DateTime? @db.DateTime(0)
  is_survey_completed      Boolean   @default(false)
  survey_completed_date    DateTime? @db.DateTime(0)
  is_survey_v2_completed   Boolean   @default(false)
  survey_v2_completed_date DateTime? @db.DateTime(0)
  changed_address          String?   @db.TinyText
  created_at               DateTime? @db.Timestamp(0)
  updated_at               DateTime? @db.Timestamp(0)
  pickup_frequency         String?   @default("weekly")
}

model datalabs_barcode_stats {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  barcode            String    @unique(map: "barcode_UNIQUE") @db.VarChar(150)
  no_of_occurrences  Int       @default(0) @db.UnsignedInt
  has_images         String    @default("No") @db.VarChar(10)
  curation_status    String    @default("Uncurated") @db.VarChar(45)
  s3_download_status String    @default("Pending") @db.VarChar(45)
  ocr_status         String    @default("Pending") @db.VarChar(45)
  llm_status         String    @default("Pending") @db.VarChar(45)
  created_at         DateTime? @db.Timestamp(0)
  updated_at         DateTime? @db.Timestamp(0)
}

model datalabs_brands {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int?
  name       String?
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_catalogs {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  brand_id           Int?
  sub_brand_id       Int?
  manufacturer_id    Int?
  category_id        Int?
  barcode            String?   @unique(map: "barcode_UNIQUE")
  name               String?   @default("")
  weight             String?
  variant            String?
  source             String?
  curation_status    String    @default("pending")
  net_content        String?
  promo              String?   @db.TinyText
  unit               String?   @db.VarChar(20)
  pack_of            Int?      @default(1)
  price              String?
  curated_user_id    Int?
  man_classification String?   @db.VarChar(25)
  remarks            String?   @db.Text
  created_at         DateTime? @db.DateTime(0)
  updated_at         DateTime? @db.DateTime(0)
  std_unit           String?   @db.VarChar(21)
  std_unit_value     Decimal?  @db.Decimal(10, 2)
  type               String?
  retail_source      String?
  attribute1         String?
  attribute2         String?
  attribute3         String?
  material_type      String?
  packaging_type     String?

  @@index([barcode], map: "barcode")
  @@index([brand_id], map: "brand_id")
  @@index([category_id], map: "category_id")
  @@index([manufacturer_id], map: "manufacturer_id")
  @@index([sub_brand_id], map: "sub_brand_id")
}

model datalabs_categories {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int?
  name       String?
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)

  @@index([parent_id], map: "parent_id")
}

model datalabs_flash_logs {
  id                    Int       @id @default(autoincrement()) @db.UnsignedInt
  date                  DateTime  @db.Date
  barcode               String?   @db.VarChar(45)
  processed_bag_item_id Int?
  type                  String?   @db.VarChar(20)
  hierarchy_id          Int?
  created_at            DateTime? @db.Timestamp(0)
  updated_at            DateTime? @db.Timestamp(0)
}

model datalabs_images {
  id                    Int                               @id @default(autoincrement()) @db.UnsignedInt
  processed_bag_item_id Int?
  image_name            String?                           @db.VarChar(255)
  barcode               String?                           @db.VarChar(255)
  coord                 String?                           @db.VarChar(255)
  status                String?                           @db.VarChar(15)
  created_at            DateTime?                         @db.DateTime(0)
  updated_at            DateTime?                         @db.DateTime(0)
  s3_object_key         String?                           @db.VarChar(255)
  s3_upload_status      datalabs_images_s3_upload_status? @default(Pending)

  @@index([barcode], map: "barcode")
}

model datalabs_jumbobags {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  barcode    String?   @db.VarChar(255)
  color      String?   @map("_color") @db.VarChar(255)
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_jumobag_items {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  jumbobag_id Int?
  barcode     String?   @db.VarChar(255)
  created_at  DateTime? @db.DateTime(0)
  updated_at  DateTime? @db.DateTime(0)
}

model datalabs_last_item {
  id                    Int       @id @default(autoincrement()) @db.UnsignedInt
  setup_id              Int?      @unique(map: "setup_id")
  processed_bag_item_id Int?
  take_images           Boolean?  @default(true)
  created_at            DateTime? @db.DateTime(0)
  updated_at            DateTime? @db.DateTime(0)
}

model datalabs_library_items {
  id                    Int       @id @default(autoincrement()) @db.UnsignedInt
  barcode               String?   @db.VarChar(40)
  special_barcode_id    Int?
  processed_bag_item_id Int?
  special_barcode       String?   @db.VarChar(25)
  created_at            DateTime? @db.Timestamp(0)
  updated_at            DateTime? @db.Timestamp(0)

  @@index([barcode], map: "barcode")
  @@index([processed_bag_item_id], map: "processed_bag_item_id")
}

model datalabs_manufacturers {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_old_brands {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id   Int?
  name        String
  category_id Int?
  created_at  DateTime? @db.DateTime(0)
  updated_at  DateTime? @db.DateTime(0)
}

model datalabs_old_catalogs {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  brand_id           Int?
  sub_brand_id       Int?
  manufacturer_id    Int?
  category_id        Int?
  barcode            String?
  name               String?   @default("")
  weight             String?
  variant            String?
  source             String?
  curation_status    String    @default("pending")
  net_content        String?
  promo              String?   @db.TinyText
  unit               String?   @db.VarChar(20)
  pack_of            Int?      @default(1)
  price              String?
  curated_user_id    Int?
  man_classification String?   @db.VarChar(25)
  created_at         DateTime? @db.DateTime(0)
  updated_at         DateTime? @db.DateTime(0)

  @@index([barcode], map: "barcode")
}

model datalabs_old_categories {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int
  name       String
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_old_manufacturers {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_processed_bag_items {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  ean              String?   @db.VarChar(40)
  processed_bag_id Int
  catalog_id       Int?
  user_id          Int
  is_under_promo   Int?      @default(0) @db.TinyInt
  is_reviewed      Int?      @default(0) @db.TinyInt
  reviewer_id      Int?
  promo_text       String?   @db.VarChar(100)
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
  was_flashed_blue String?   @db.VarChar(100)
  flashed_color    String?   @db.VarChar(45)
  flashed_at       DateTime? @db.DateTime(0)
  deleted          Int?      @default(0) @db.TinyInt

  @@index([ean], map: "ean")
  @@index([processed_bag_id], map: "search_by_bag")
  @@index([user_id, created_at], map: "user_id_created_at")
}

model datalabs_processed_bag_items_failed {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  ean              String?   @db.VarChar(400)
  processed_bag_id Int
  catalog_id       Int?
  user_id          Int
  is_under_promo   Int?      @default(0) @db.TinyInt
  is_reviewed      Int?      @default(0) @db.TinyInt
  reviewer_id      Int?
  promo_text       String?   @db.VarChar(100)
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
  was_flashed_blue String?   @db.VarChar(100)
  flashed_color    String?   @db.VarChar(45)
  flashed_at       DateTime? @db.DateTime(0)

  @@index([ean], map: "ean")
  @@index([processed_bag_id], map: "search_by_bag")
  @@index([user_id, created_at], map: "user_id_created_at")
}

model datalabs_processed_bags {
  id            Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_bag_id Int
  barcode       String
  scanner_id    Int
  start_time    DateTime? @db.DateTime(0)
  end_time      DateTime? @db.DateTime(0)
  status        String    @default("pending")
  flag          String?   @db.VarChar(20)
  priority_type String?   @db.VarChar(45)
  created_at    DateTime? @db.Timestamp(0)
  updated_at    DateTime? @db.Timestamp(0)

  @@index([pickup_bag_id], map: "pickup_bag_id")
}

model datalabs_special_barcodes {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int?
  barcode    String?   @db.VarChar(25)
  type       String?   @db.VarChar(25)
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model datalabs_sub_brands {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String?
  added_by   Int?
  created_at DateTime? @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
}

model device_tokens {
  id           Int                       @id @default(autoincrement()) @db.UnsignedInt
  user_id      Int                       @db.UnsignedInt
  device_token String?                   @db.VarChar(200)
  device_type  device_tokens_device_type
  is_active    Boolean                   @default(true)
  created_at   DateTime?                 @db.Timestamp(0)
  updated_at   DateTime?                 @db.Timestamp(0)

  @@unique([user_id, device_token], map: "user_id_device_token")
}

model device_verifications {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  agent_id    Int
  device_id   String
  device_name String?
  is_active   Boolean   @default(false)
  created_at  DateTime? @db.Timestamp(0)
  updated_at  DateTime? @db.Timestamp(0)
}

model failed_jobs {
  id         BigInt   @id @default(autoincrement()) @db.UnsignedBigInt
  connection String   @db.Text
  queue      String   @db.Text
  payload    String   @db.LongText
  exception  String   @db.LongText
  failed_at  DateTime @default(now()) @db.Timestamp(0)
}

model failed_syncs {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  url        String?   @db.VarChar(255)
  payload    String?   @db.Text
  response   String    @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model families {
  id              Int       @id @default(autoincrement()) @db.UnsignedInt
  name            String
  percent_plastic Float
  percent_paper   Float
  created_at      DateTime? @db.Timestamp(0)
  updated_at      DateTime? @db.Timestamp(0)
}

model feedback {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id  Int
  rating     Decimal   @db.Decimal(2, 1)
  feedback   String    @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model flash_barcode_logs {
  id                Int       @id @default(autoincrement()) @db.UnsignedInt
  date              DateTime  @db.Date
  barcode           String?   @db.VarChar(45)
  no_of_occurrences Int       @db.UnsignedInt
  flash_color       String?   @db.VarChar(20)
  user_id           Int       @db.UnsignedInt
  hierarchy_id      Int       @db.UnsignedInt
  created_at        DateTime? @db.Timestamp(0)
  updated_at        DateTime? @db.Timestamp(0)
}

model hierarchies {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  parent_id  Int
  name       String
  is_active  Boolean
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model hierarchy_items {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  hierarchy_id Int
  item_id      Int
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model hierarchy_users {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  hierarchy_id Int
  user_id      Int
  added_on     DateTime  @default(now()) @db.DateTime(0)
  is_active    Boolean   @default(true)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model incoming_waste_by_vehicle_infos {
  id                      Int       @id @default(autoincrement()) @db.UnsignedInt
  incoming_waste_id       Int
  driver_id               Int
  fleet_id                Int
  departure_time          DateTime  @db.Time(0)
  arrival_time            DateTime  @db.Time(0)
  departure_KM            Int
  arrival_KM              Int
  percentage_of_total     Int
  percentage_of_hangar    Int
  percentage_of_container Int
  volume_total            Decimal   @db.Decimal(10, 2)
  volume_hanger           Decimal   @db.Decimal(10, 2)
  volume_container        Decimal   @db.Decimal(10, 2)
  weight_total            Decimal   @db.Decimal(10, 2)
  weight_hangar           Decimal   @db.Decimal(10, 2)
  weight_container        Decimal   @db.Decimal(10, 2)
  edit_uuid               String
  created_at              DateTime? @db.Timestamp(0)
  updated_at              DateTime? @db.Timestamp(0)
}

model incoming_waste_last_snyc {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  sheet_name   String
  sheet_url    String
  hierarchy_id Int
  last_id_sync Int
  last_sync    DateTime  @db.DateTime(0)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model incoming_wastes {
  id                          Int       @id @default(autoincrement()) @db.UnsignedInt
  route_id                    String
  type_of_incoming_waste_id   Int
  source_of_incoming_waste_id Int
  kg                          Decimal   @db.Decimal(10, 2)
  created_at                  DateTime? @db.Timestamp(0)
  updated_at                  DateTime? @db.Timestamp(0)
  hierarchy_id                String
  valuable_waste              Decimal   @db.Decimal(10, 2)
  residual_waste              Decimal   @db.Decimal(10, 2)
  kind_of_incoming_waste      String?
  edit_uuid                   String?
  barcode                     String?   @db.VarChar(25)
}

model incoming_wastes_by_vehicles {
  id                               Int       @id @default(autoincrement()) @db.UnsignedInt
  incoming_wastes_edit_uuid        String
  percentage_of_incoming_wastes    Int
  percentage_of_recyclables_wastes Int
  percentage_of_organics_wastes    Int
  percentage_of_residual_wastes    Int
  vehicle_id                       Int
  total_kg                         Decimal   @db.Decimal(10, 2)
  total_percentage                 Int
  created_at                       DateTime? @db.Timestamp(0)
  updated_at                       DateTime? @db.Timestamp(0)
}

model inventory_adjustments {
  id                                 Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                            Int?
  user_name                          String?
  sorted_waste_for_storage_type_id   Int
  sorted_waste_for_storage_type_name String
  before_value                       Decimal   @db.Decimal(10, 2)
  adjustment_value                   Int?
  after_value                        Decimal   @db.Decimal(10, 2)
  created_at                         DateTime? @db.Timestamp(0)
  updated_at                         DateTime? @db.Timestamp(0)
  hierarchy_id                       String
}

model items {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  family_id  Int       @default(1)
  price      Decimal   @db.Decimal(8, 2)
  unit       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model jobs {
  id           BigInt @id @default(autoincrement()) @db.UnsignedBigInt
  queue        String
  payload      String @db.LongText
  attempts     Int    @db.UnsignedTinyInt
  reserved_at  Int?   @db.UnsignedInt
  available_at Int    @db.UnsignedInt
  created_at   Int    @db.UnsignedInt

  @@index([queue], map: "jobs_queue_index")
}

model jumbo_bags {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  agent_id     Int
  barcode      String
  bags_count   Int
  status       String?   @default("picked_up") @db.VarChar(100)
  section      String?   @db.VarChar(100)
  hierarchy_id Int?
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model karmas {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model leads {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String?
  email      String?
  phone      String?
  location   String?
  address    String?   @db.Text
  pincode    String
  zone       String?
  user_id    Int?
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model manufacturers {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model material_types {
  id   Int     @id @default(autoincrement()) @db.UnsignedInt
  name String?
}

model migrations {
  id        Int    @id @default(autoincrement()) @db.UnsignedInt
  migration String
  batch     Int
}

model new_leads {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  name                      String
  contact                   String
  phone                     String?   @db.VarChar(25)
  pickup_type               String?   @default("")
  house_no                  String?
  community                 String?   @default("")
  locality                  String?   @default("")
  city                      String?   @default("")
  state                     String?
  pincode                   String?   @default("")
  msg                       String    @db.Text
  status                    String    @default("Pending") @db.VarChar(45)
  created_at                DateTime? @db.Timestamp(0)
  updated_at                DateTime? @db.Timestamp(0)
  how_did_you_hear_about_us String?
}

model notifications {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  to         String    @default("") @db.VarChar(20)
  mode       String
  type       String?
  content    String?   @db.Text
  response   String?   @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)

  @@index([to], map: "to")
}

model old_jan {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  c_id         Int?
  community_id Int?
  bintix_uid   Int?
  pickup_date  DateTime? @db.Date
  barcode      String?   @db.VarChar(40)
  quantity     Int?
}

model outgoing_waste_last_snyc {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  sheet_name   String
  sheet_url    String
  hierarchy_id Int
  last_id_sync Int
  last_sync    DateTime  @db.DateTime(0)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model outgoing_wastes {
  id                               Int       @id @default(autoincrement()) @db.UnsignedInt
  quantity                         Decimal   @db.Decimal(8, 2)
  unit_id                          Int
  sorted_waste_for_storage_type_id Int
  price                            Decimal   @db.Decimal(8, 2)
  description                      String
  buyer                            String
  receipt_id                       String?
  invoice_no                       String?
  gst                              String?   @db.VarChar(45)
  created_at                       DateTime? @db.Timestamp(0)
  updated_at                       DateTime? @db.Timestamp(0)
  route_id                         String
  hierarchy_id                     String
  total_price                      Decimal   @db.Decimal(11, 2)
  is_active                        String?   @default("1") @db.VarChar(45)
  buyer_id                         Int       @db.UnsignedInt
}

model packaging_types {
  id   Int     @id @default(autoincrement()) @db.UnsignedInt
  name String?
}

/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model partner_requests {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  full_name                 String?   @db.VarChar(45)
  email                     String?   @db.VarChar(45)
  mobile                    String?   @db.VarChar(45)
  city                      String?   @db.VarChar(45)
  company_name              String?   @db.VarChar(45)
  job_title                 String?   @db.VarChar(45)
  how_did_you_hear_about_us String?   @db.VarChar(45)
  partner_type              String?   @db.VarChar(45)
  status                    String?   @default("Submitted") @db.VarChar(45)
  created_at                DateTime? @db.Timestamp(0)
  updated_at                DateTime? @db.Timestamp(0)
}

model partners {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  name        String?   @db.VarChar(45)
  user_id     Int       @db.UnsignedInt
  access_code String    @db.VarChar(45)
  is_active   Boolean?  @default(false)
  created_at  DateTime? @db.Timestamp(0)
  updated_at  DateTime? @db.Timestamp(0)
}

/// The underlying table does not contain a valid unique identifier and can therefore currently not be handled by Prisma Client.
model password_resets {
  email      String
  token      String
  created_at DateTime? @db.Timestamp(0)

  @@index([email], map: "password_resets_email_index")
  @@ignore
}

model pickup_bags {
  id                      Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id               Int
  uid                     String    @unique(map: "pickup_bags_uid_unique")
  weight                  Decimal   @db.Decimal(8, 2)
  created_at              DateTime? @db.Timestamp(0)
  updated_at              DateTime? @db.Timestamp(0)
  flag_image              String?   @db.Text
  flag                    String?   @db.VarChar(100)
  bag_type                String?   @default("dry_waste") @db.VarChar(25)
  weighed_by_user_id      Int?
  weighed_at_hierarchy_id Int?

  @@index([pickup_id], map: "pickup_id")
}

model pickup_calender {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  event_id           Int?
  community_id       Int
  community_group_id Int
  pickup_date        DateTime? @db.Date
  event_frequency    String?
  is_active          Int       @default(1) @db.TinyInt
  hierarchy_id       Int?
  created_at         DateTime? @db.Timestamp(0)
  updated_at         DateTime? @db.Timestamp(0)
}

model pickup_comments {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id  Int
  user_id    Int
  status     String
  comment    String    @db.Text
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model pickup_items {
  id            Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id     Int
  item_id       Int
  price         Decimal   @db.Decimal(8, 2)
  qty           Decimal   @db.Decimal(8, 2)
  item_name     String
  item_unit     String?   @default("kg")
  blob_id       Int?
  created_at    DateTime? @db.Timestamp(0)
  updated_at    DateTime? @db.Timestamp(0)
  qty_copy      Decimal   @default(0.00) @db.Decimal(8, 2)
  pickup_bag_id Int?      @db.UnsignedInt

  @@index([pickup_id], map: "pickup_id")
}

model pickup_payments {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id      Int
  pickup_id    Int
  amount       Decimal   @db.Decimal(8, 2)
  type         String
  is_completed Boolean
  is_cancelled Boolean
  comments     String    @db.Text
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model pickups {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                   Int
  rescheduled_from          Int?
  rescheduled_to            Int?
  slot_id                   Int
  blob_id                   Int?
  zone_id                   Int?
  agent_id                  Int?
  community_id              Int?
  community_type            String?   @db.VarChar(45)
  community_pickup_group_id Int?
  agent_name                String?
  cust_name                 String?   @default("")
  cust_email                String?   @default("")
  cust_phone                String?   @default("")
  cust_hno                  String    @default("")
  cust_street               String
  cust_locality             String
  cust_city                 String
  cust_state                String    @default("telangana")
  cust_landmark             String?
  cust_pincode              String
  cust_lat                  String
  cust_lng                  String
  cust_attended             String?
  pickup_zone               String?
  pickup_date               DateTime  @db.Date
  pickup_slot               String
  pickup_creator            Int
  pickup_total              Decimal?  @db.Decimal(8, 2)
  pickup_type               String    @default("normal")
  pickup_status             String    @default("pending")
  payment_status            String
  feedback_status           String?
  hierarchy_id              Int       @default(1)
  qrcode_scanned_time       DateTime? @db.Timestamp(0)
  created_at                DateTime? @db.Timestamp(0)
  updated_at                DateTime? @db.Timestamp(0)

  @@index([community_id], map: "community_id")
  @@index([community_pickup_group_id], map: "community_pickup_group_id")
  @@index([pickup_date], map: "pickup_date")
  @@index([pickup_status], map: "pickup_status")
  @@index([pickup_type], map: "pickup_type")
  @@index([user_id], map: "user_id")
}

model processed_bag_items {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  processed_bag_id Int
  catalog_id       Int
  qty              Int
  user_id          Int
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
}

model processed_bags {
  id                Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_bag_id     Int
  barcode           String
  decoder_id        Int
  start_time        DateTime? @db.DateTime(0)
  end_time          DateTime? @db.DateTime(0)
  processing_status String    @default("pending")
  reviewer_id       Boolean?
  created_at        DateTime? @db.Timestamp(0)
  updated_at        DateTime? @db.Timestamp(0)
}

model promo_users {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  promo_id   Int?      @db.UnsignedInt
  user_id    Int?      @db.UnsignedInt
  is_read    Int       @default(0) @db.TinyInt
  read_at    DateTime? @db.DateTime(0)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model promos {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  title            String
  description      String?   @db.Text
  is_visible       Boolean   @default(true)
  visible_from     DateTime? @db.DateTime(0)
  visible_till     DateTime? @db.DateTime(0)
  communities      String?
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
  type             String?
  image            String?   @db.Text
  individual_users String?   @db.LongText
  url              String?   @db.MediumText
}

model qaqc_bag_items {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  bagid            Int       @db.UnsignedInt
  itembarcode      String    @default("") @db.VarChar(50)
  created_at       DateTime? @db.Timestamp(0)
  updated_at       DateTime? @db.Timestamp(0)
  processed_bag_id Int?
}

model qaqc_bags {
  id                     Int       @id @default(autoincrement()) @db.UnsignedInt
  bag_barcode            String?   @unique(map: "bag_barcode") @db.VarChar(50)
  flag_whole_bag_scanned Int?      @default(0) @db.TinyInt
  created_at             DateTime? @db.Timestamp(0)
  updated_at             DateTime? @db.Timestamp(0)
  bag_id                 Int?
  flag_qaqc_type         String?   @default("Partial Bag") @db.VarChar(50)
}

model qaqc_full_bag_report_skus {
  id                             Int       @id @default(autoincrement()) @db.UnsignedInt
  qaqc_full_bag_report_id        Int       @db.UnsignedInt
  barcode                        String    @db.VarChar(45)
  no_of_times_scanned_by_qa      Int?      @db.UnsignedTinyInt
  no_of_times_scanned_by_scanner Int?      @db.UnsignedTinyInt
  remarks                        String?   @db.VarChar(45)
  css_class                      String?   @db.VarChar(45)
  created_at                     DateTime? @db.Timestamp(0)
  updated_at                     DateTime? @db.Timestamp(0)
}

model qaqc_full_bag_reports {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  date         DateTime  @db.Date
  hierarchy_id Int
  scanner_id   Int
  scanner_name String?
  bag_barcode  String    @db.VarChar(45)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)

  @@index([date, scanner_id, hierarchy_id], map: "date_scanner_id_hierarchy_id")
}

model qaqc_reports {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  date         DateTime  @db.Date
  hierarchy_id Int
  scanner_id   Int
  scanner_name String?
  hit_count    Int?      @default(0)
  miss_count   Int?      @default(0)
  hit          String?   @db.LongText
  miss         String?   @db.LongText
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)

  @@unique([date, scanner_id], map: "date_and_scanner_id")
}

model queries {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  pickup_id  Int
  user_id    Int
  type       String
  status     String    @default("pending")
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model query_attachments {
  id                Int       @id @default(autoincrement()) @db.UnsignedInt
  query_id          Int
  query_response_id Int
  fileURL           String
  created_at        DateTime? @db.Timestamp(0)
  updated_at        DateTime? @db.Timestamp(0)
}

model query_responses {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  query_id   Int
  user_id    Int
  content    String
  parent_id  Int
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model roles {
  id          Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id     Int
  app_id      String
  module_name String
  is_active   Boolean
  created_at  DateTime? @db.Timestamp(0)
  updated_at  DateTime? @db.Timestamp(0)
}

model settings {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  key        String
  value      String    @default("") @db.VarChar(255)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model slots {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  text       String
  from       DateTime  @db.Time(0)
  to         DateTime  @db.Time(0)
  is_active  Boolean
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model sorted_waste_for_storage_type {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  name         String
  hierarchy_id Int
  material     String
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
  Column5      String?   @db.VarChar(50)
}

model sorted_waste_last_snyc {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  sheet_name   String
  sheet_url    String
  hierarchy_id Int
  last_id_sync Int
  last_sync    DateTime  @db.DateTime(0)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model sorted_waste_storages {
  id                               Int       @id @default(autoincrement()) @db.UnsignedInt
  sorted_waste_for_storage_type_id Int
  description                      String
  quantity                         Decimal   @db.Decimal(10, 2)
  created_at                       DateTime? @db.Timestamp(0)
  updated_at                       DateTime? @db.Timestamp(0)
  unit_id                          Int
  sorting_agent_id                 Int
  route_id                         String
  hierarchy_id                     String
  kind_of_sorted_wastes            String?
  edit_uuid                        String?
  is_active                        String?   @default("1") @db.VarChar(45)
}

model source_of_incoming_waste {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model states {
  id         Int      @id @default(autoincrement()) @db.UnsignedInt
  name       String?  @db.VarChar(45)
  created_at DateTime @db.DateTime(0)
  updated_at DateTime @db.DateTime(0)
}

/// The underlying table does not contain a valid unique identifier and can therefore currently not be handled by Prisma Client.
model temp_data_lv {
  ORIGINAL_BRAND String? @map("ORIGINAL BRAND") @db.Text
  LV1            String? @db.Text
  LV2            String? @db.Text

  @@ignore
}

/// The underlying table does not contain a valid unique identifier and can therefore currently not be handled by Prisma Client.
model temp_lv {
  ORIGINAL_BRAND String? @map("ORIGINAL BRAND") @db.Text
  LV1            String? @db.Text
  LV2            String? @db.Text

  @@ignore
}

model tests {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model text_templates {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  key          String
  text         String
  variables    String?
  type         String    @default("sms")
  group        String    @default("masteradmin")
  hierarchy_id Int       @default(1)
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

model ticket_messages {
  id         Int       @id @default(autoincrement())
  ticket_id  Int?
  user_id    Int?
  message    String?   @db.Text
  created_at DateTime? @default(now()) @db.DateTime(0)
  updated_at DateTime? @db.DateTime(0)
  image      String?   @db.Text
  is_read    Int       @default(0)
}

model tickets {
  id           Int       @id @default(autoincrement())
  user_id      Int?
  type         String?   @db.VarChar(25)
  pickup_id    Int?
  pickup_date  DateTime? @db.Date
  status       String    @default("Open") @db.VarChar(25)
  created_at   DateTime? @db.DateTime(0)
  updated_at   DateTime? @db.DateTime(0)
  hierarchy_id Int
  no_of_sets   Int?      @db.TinyInt
  opened_at    DateTime? @db.DateTime(0)
}

model type_of_incoming_waste {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
  density    Decimal   @db.Decimal(10, 2)
}

model types_of_vehicle {
  id              Int       @id @default(autoincrement()) @db.UnsignedInt
  name            String
  capacity        Decimal   @db.Decimal(10, 2)
  native_language String
  hierarchy_id    Int
  created_at      DateTime? @db.Timestamp(0)
  updated_at      DateTime? @db.Timestamp(0)
}

model units {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  name       String
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model user_barcodes {
  id                  Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id             Int?
  barcode             String?   @unique(map: "barcode") @db.VarChar(25)
  linked_date         DateTime? @db.Date
  bag_distribution_id Int?
  reached_user        Int       @default(0) @db.TinyInt
  reached_warehouse   Int       @default(0) @db.TinyInt
  is_active           Int?      @default(1) @db.TinyInt
  bag_price           Int?
  bag_type            String?   @default("normal") @db.VarChar(25)
  old_price           Int?
  refunded            Int?      @db.TinyInt
  created_at          DateTime? @db.DateTime(0)
  updated_at          DateTime? @db.DateTime(0)

  @@index([user_id], map: "user_id")
}

model user_notifications {
  id                        Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                   Int
  type                      String?   @db.VarChar(25)
  content                   String?   @db.Text
  is_read                   Boolean?  @default(false)
  is_push_notification_sent Boolean?  @default(false)
  created_at                DateTime? @db.Timestamp(0)
  updated_at                DateTime? @db.Timestamp(0)
}

model user_qrcodes {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id    Int
  qrcode     String
  is_active  Boolean   @default(false)
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model user_surveys {
  id                      Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                 Int
  recycle_dry_waste       Boolean
  percentage_not_recycled String?
  compost_organic_waste   Boolean
  composting_bins         Boolean?
  our_service             String
  T_and_P_address         String
  children_at_home        String
  people_in_house         String
  education_level         String
  kind_of_fuel            String
  total_cars_with_fuel    String
  two_wheeler             Boolean
  additional_potential    String
  environment_positively  String?
  domestic_flights        String?
  international_flights   String?
  created_at              DateTime? @db.Timestamp(0)
  updated_at              DateTime? @db.Timestamp(0)

  @@index([user_id], map: "user_id")
}

model user_surveys_v2 {
  id                     Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id                Int
  source                 String?   @default("Website") @db.VarChar(45)
  people_in_house        Boolean?
  recycle_dry_waste      Boolean?
  children_at_home       Boolean?
  have_children          String?   @db.VarChar(10)
  education_level        String?
  kind_of_fuel           String?
  additional_potential   String?
  created_at             DateTime? @db.Timestamp(0)
  updated_at             DateTime? @db.Timestamp(0)
  kind_of_fuel_4_wheeler String?
  kind_of_fuel_2_wheeler String?

  @@index([user_id], map: "user_id")
}

model user_surveys_v2_members {
  id                 Int       @id @default(autoincrement()) @db.UnsignedInt
  user_survey_id     Int       @db.UnsignedInt
  gender             String?   @db.VarChar(10)
  age                Boolean?
  ageGroup           String?   @db.VarChar(10)
  type_of_segregator String?   @db.VarChar(60)
  created_at         DateTime? @db.Timestamp(0)
  updated_at         DateTime? @db.Timestamp(0)
}

model wallet_payments {
  id             Int       @id @default(autoincrement()) @db.UnsignedInt
  wallet_id      Int
  transaction_id Int?
  type           String
  title          String
  amount         Decimal   @db.Decimal(8, 2)
  meta_data      String?
  admin_id       Int?
  created_at     DateTime? @db.Timestamp(0)
  updated_at     DateTime? @db.Timestamp(0)
}

model wallet_transactions {
  id                    Int                                @id @default(autoincrement()) @db.UnsignedInt
  wallet_id             Int
  parent_transaction_id Int
  admin_id              Int
  redeem_type           String
  title                 String
  amount                Decimal                            @db.Decimal(8, 2)
  beneficiary_id        Int
  beneficiary_name      String
  beneficiary_phone     String
  beneficiary_email     String
  beneficiary_type      String
  transfer_id           String?                            @db.VarChar(255)
  paytm_phone           String?
  upi_key               String?
  bank_ac_name          String?
  bank_ifsc             String?
  bank_ac_number        String?
  cs_input_id           String?
  cs_returned_id        String?                            @default("") @db.VarChar(100)
  cs_last_sync          DateTime?                          @db.DateTime(0)
  cs_response           String?                            @db.Text
  cs_response_2         String?                            @db.Text
  requested_on          DateTime                           @db.DateTime(0)
  completed_on          DateTime?                          @db.DateTime(0)
  status                String?
  created_at            DateTime?                          @db.Timestamp(0)
  updated_at            DateTime?                          @db.Timestamp(0)
  refund_issued         Int?                               @default(0) @db.TinyInt
  payment_provider      String?
  paytm_status_code     String?
  latitude              Decimal?                           @db.Decimal(10, 8)
  longitude             Decimal?                           @db.Decimal(10, 8)
  review_status         wallet_transactions_review_status? @default(Pending)
  reviewed_by_user_id   Int?                               @db.UnsignedInt
  reviewed_by_name      String?
  reviewed_at           DateTime?                          @db.Timestamp(0)
}

model wallets {
  id                   Int       @id @default(autoincrement()) @db.UnsignedInt
  type                 String
  is_active            Boolean
  beneficiary_id       Int?
  beneficiary_added_by Int?
  beneficiary_added_on DateTime? @db.DateTime(0)
  created_at           DateTime? @db.Timestamp(0)
  updated_at           DateTime? @db.Timestamp(0)
}

model weighbridge {
  id                       Int       @id @default(autoincrement()) @db.UnsignedInt
  agent_id                 Int
  weight_of_truck_entering Decimal   @db.Decimal(11, 2)
  weight_of_truck_leaving  Decimal   @db.Decimal(11, 2)
  truck_license            String
  incoming_waste_id        Int
  created_at               DateTime? @db.Timestamp(0)
  updated_at               DateTime? @db.Timestamp(0)
}

model weighing_scale_logs {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  scale_udid String    @db.VarChar(45)
  barcode    String    @db.VarChar(25)
  weight     String    @db.TinyText
  timestamp  String    @db.TinyText
  created_at DateTime? @db.Timestamp(0)
  upated_at  DateTime? @db.Timestamp(0)
}

model weighing_scale_reading_image_logs {
  id               Int       @id @default(autoincrement()) @db.UnsignedInt
  user_id          Int       @db.UnsignedInt
  name             String?
  barcode          String    @db.VarChar(150)
  weight           Decimal   @db.Decimal(8, 2)
  date             String    @db.TinyText
  image_urls       String?   @db.Text
  hierarchy_id     Int       @db.UnsignedInt
  review_status    String    @default("Pending") @db.VarChar(20)
  reviewed_by_id   Int?      @db.UnsignedInt
  reviewed_by_name String?   @db.VarChar(50)
  reviewed_at      DateTime? @db.DateTime(0)
  created_at       DateTime? @default(now()) @db.DateTime(0)
  updated_at       DateTime? @default(now()) @db.DateTime(0)
  meta_data        String?   @db.MediumText
}

model weighing_scales {
  id                  Int       @id @default(autoincrement()) @db.UnsignedInt
  weighing_scale_udid String    @unique(map: "weighing_scale_udid_UNIQUE") @db.VarChar(45)
  service_uuid        String    @db.VarChar(45)
  characteristic_uuid String    @db.VarChar(45)
  is_active           Boolean   @default(false)
  created_at          DateTime? @db.Timestamp(0)
  upated_at           DateTime? @db.Timestamp(0)
}

model zone_slots {
  id         Int       @id @default(autoincrement()) @db.UnsignedInt
  zone_id    Int
  slot_id    Int
  date       DateTime  @db.Date
  quantity   Int
  created_at DateTime? @db.Timestamp(0)
  updated_at DateTime? @db.Timestamp(0)
}

model zones {
  id           Int       @id @default(autoincrement()) @db.UnsignedInt
  text         String    @unique(map: "zones_text_unique")
  is_active    Boolean   @default(true)
  geoJSON      String    @db.Text
  mid_lat      String
  mid_lng      String
  hierarchy_id Int
  created_at   DateTime? @db.Timestamp(0)
  updated_at   DateTime? @db.Timestamp(0)
}

enum device_tokens_device_type {
  Android
  iOS
}

enum datalabs_images_s3_upload_status {
  Pending
  Uploaded
}

enum wallet_transactions_review_status {
  Pending
  Approved
  Rejected
  Auto_Approved @map("Auto Approved")
}
