76 lines
2.0 KiB
Plaintext
76 lines
2.0 KiB
Plaintext
// Reference Data Domain
|
|
// Contains normalized reference tables for countries, currencies, education, religion
|
|
|
|
model EducationLevel {
|
|
id String @id @default(cuid())
|
|
name String @unique
|
|
level Int // 0=No formal, 1=Elementary, etc.
|
|
description String?
|
|
isActive Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Relations
|
|
farmers Farmer[]
|
|
|
|
@@index([name])
|
|
@@index([level])
|
|
@@index([isActive])
|
|
@@map("education_levels")
|
|
}
|
|
|
|
model Currency {
|
|
id String @id // ISO currency code like "idr", "usd"
|
|
name String @unique
|
|
code String @unique // ISO 4217 currency code
|
|
symbol String // ₹, $, Rp, etc.
|
|
isActive Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Relations
|
|
financialRecords FinancialRecord[]
|
|
|
|
@@index([code])
|
|
@@index([isActive])
|
|
@@index([name])
|
|
@@map("currencies")
|
|
}
|
|
|
|
model Country {
|
|
id String @id // ISO country code like "indonesia", "malaysia"
|
|
name String @unique
|
|
code String @unique // ISO 3166-1 alpha-2 code
|
|
region String?
|
|
continent String?
|
|
isActive Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Relations
|
|
farmerNationalities Farmer[] @relation("FarmerNationality")
|
|
farmerCountries Farmer[] @relation("FarmerCountry")
|
|
|
|
@@index([code])
|
|
@@index([region])
|
|
@@index([continent])
|
|
@@index([isActive])
|
|
@@index([name])
|
|
@@map("countries")
|
|
}
|
|
|
|
model Religion {
|
|
id String @id @default(cuid())
|
|
name String @unique
|
|
description String?
|
|
isActive Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Relations
|
|
farmers Farmer[]
|
|
|
|
@@index([name])
|
|
@@index([isActive])
|
|
@@map("religions")
|
|
} |