roadmap/schemas/reference.prisma

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")
}