roadmap/schemas/base.prisma

205 lines
2.4 KiB
Plaintext

// This is the base Prisma schema file
// Contains generator, datasource, and shared enums
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
// Shared Enums - Used across multiple domains
// Core User Management Enums
enum UserRole {
FARMER
BUYER
ADMINISTRATOR
}
enum Gender {
MALE
FEMALE
OTHER
}
enum MaritalStatus {
SINGLE
MARRIED
DIVORCED
WIDOWED
SEPARATED
}
enum IdentityType {
KTP // Indonesian ID Card
PASSPORT
DRIVING_LICENSE
OTHER
}
// Quality and Status Enums
enum QualityGrade {
A
B
C
}
enum PaymentMethod {
CASH
BANK_TRANSFER
MOBILE_MONEY
CHECK
DIGITAL_WALLET
CREDIT
BARTER
INSTALLMENT
}
enum PaymentStatus {
PENDING
APPROVED
PAID
OVERDUE
CANCELLED
}
enum ScheduleStatus {
PENDING
SCHEDULED
IN_PROGRESS
COMPLETED
CANCELLED
OVERDUE
}
// Geographic and Environmental Enums
enum WaterSource {
RAIN_FED
IRRIGATION_CANAL
WELL
RIVER
POND
GROUNDWATER
SPRING
MIXED
}
enum IrrigationType {
FLOOD
SPRINKLER
DRIP
FURROW
MANUAL
NONE
}
enum SlopeType {
FLAT
GENTLE
MODERATE
STEEP
VERY_STEEP
}
enum ClimateType {
TROPICAL_WET
TROPICAL_DRY
SUBTROPICAL
TEMPERATE
HIGHLAND
}
enum RoadType {
PAVED
GRAVEL
DIRT
FOOTPATH
NO_ACCESS
}
// Agricultural Enums
enum WorkType {
PLANTING
WEEDING
FERTILIZING
HARVESTING
IRRIGATION
PEST_CONTROL
SOIL_PREPARATION
PRUNING
GENERAL_MAINTENANCE
EQUIPMENT_OPERATION
PROCESSING
PACKAGING
TRANSPORT
}
enum InputType {
SEED
FERTILIZER
PESTICIDE
HERBICIDE
FUNGICIDE
INSECTICIDE
EQUIPMENT_RENTAL
FUEL
IRRIGATION_WATER
MULCH
COMPOST
LIME
OTHER
}
enum SeverityLevel {
LOW
MEDIUM
HIGH
CRITICAL
CATASTROPHIC
}
// Communication and Priority Enums
enum Priority {
LOW
NORMAL
HIGH
URGENT
CRITICAL
}
enum MessageType {
PERSONAL
BROADCAST
NOTIFICATION
ALERT
SYSTEM
ANNOUNCEMENT
}
enum MessageStatus {
SENT
DELIVERED
READ
FAILED
PENDING
}
// Market Intelligence Enums
enum PriceTrend {
RISING
FALLING
STABLE
VOLATILE
}
enum DemandLevel {
VERY_LOW
LOW
MODERATE
HIGH
VERY_HIGH
EXCESSIVE
}