// 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 = "../src/lib/generated/prisma" } datasource database { provider = "postgresql" url = env("POSTGRES_PRISMA_URL") directUrl = env("POSTGRES_URL_NON_POOLING") } model User { id String @id @default(uuid()) first_name String? last_name String? email String? @unique email_verified DateTime? password String? image String? created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") detail Detail? accounts Account[] sessions Session[] @@map("users") } model Detail { id_detail String @id @default(uuid()) id_tax String @unique phone String bio String city String country String post_kode String user User @relation(fields: [id_tax], references: [id]) @@map("detail") } model Account { id String @id @default(cuid()) id_user String @map("id_user") id_provider String id_token String? @database.Text type String scope String? provider String expires_at Int? token_type String? access_token String? @database.Text refresh_token String? @database.Text session_state String? user User @relation(fields: [id_user], references: [id], onDelete: Cascade) @@unique([provider, id_provider]) @@map("account") } model Session { id String @id @default(cuid()) id_user String @map("id_user") session_token String @unique expires DateTime user User @relation(fields: [id_user], references: [id], onDelete: Cascade) @@map("session") } model VerificationToken { identifier String token String @unique expires DateTime @@unique([identifier, token]) @@map("token") } model Kecamatan { id_kecamatan Int @id @default(autoincrement()) id_komoditas Int komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) nama_kecamatan String @database.VarChar(100) deskripsi String @database.Text gambar String @database.Text area Float posisi_x Int posisi_y Int created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") penduduk Penduduk[] hasil_panen HasilPanen[] prediksi_panen PrediksiPanen[] @@map("data_kecamatan") } model Penduduk { id_penduduk Int @id @default(autoincrement()) id_kecamatan Int kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) data_tahun Int jumlah_penduduk Float laju_pertumbuhan String @database.VarChar(30) created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") @@map("data_penduduk") } model Komoditas { id_komoditas Int @id @default(autoincrement()) nama_komoditas String @database.VarChar(100) posisi_x Int posisi_y Int created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") deleted_at DateTime? @map("deleted_at") kecamatan Kecamatan[] hasil_panen HasilPanen[] prediksi_panen PrediksiPanen[] @@map("data_komoditas") } model HasilPanen { id_panen Int @id @default(autoincrement()) id_kecamatan Int kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) id_komoditas Int komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) tahun_panen Int produksi Float luas_panen Float produktivitas Float created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") @@map("hasil_panen") } model PrediksiPanen { id_prediksi Int @id @default(autoincrement()) id_kecamatan Int kecamatan Kecamatan @relation(fields: [id_kecamatan], references: [id_kecamatan]) id_komoditas Int komoditas Komoditas @relation(fields: [id_komoditas], references: [id_komoditas]) tahun_prediksi Int hasil_prediksi Int created_at DateTime @default(now()) @map("created_at") updated_at DateTime @updatedAt @map("updated_at") @@map("prediksi_panen") }