13 KiB
13 KiB
Farm Model Documentation
Overview
Model Farm adalah entitas inti dalam sistem manajemen lahan pertanian yang menyimpan informasi detail tentang lahan/kebun yang dikelola oleh petani. Model ini berfungsi sebagai pusat data geografis, karakteristik fisik, infrastruktur, dan metadata lahan pertanian dalam ekosistem Happy Farmer.
Business Context
Model Farm berfungsi sebagai:
- Land Registry: Registrasi dan dokumentasi lahan pertanian
- Geographic Information System: Penyimpanan data geografis dan pemetaan
- Infrastructure Management: Tracking fasilitas dan infrastruktur lahan
- Production Planning: Basis untuk perencanaan produksi dan budgeting
- Asset Management: Pengelolaan aset lahan sebagai investasi
- Compliance Tracking: Dokumentasi legal dan sertifikasi lahan
Model Structure
Primary Fields
Identification & Basic Info
id(String, Primary Key): Unique identifier menggunakan CUIDfarmerId(String, Foreign Key): Referensi ke petani pemilik/pengelolafarmCode(String, Unique): Kode unik farm untuk identifikasiname(String, Required): Nama farm/kebunaddress(String, Optional): Alamat lengkap farmvillage(String, Optional): Desa/kelurahan lokasi farmdistrict(String, Optional): Kecamatan lokasi farmprovince(String, Optional): Provinsi lokasi farmpostalCode(String, Optional): Kode pos area farm
Geographic Data
area(Decimal, Optional): Luas lahan dalam hektarlatitude(Float, Optional): Koordinat lintanglongitude(Float, Optional): Koordinat bujurboundaries(JSON, Optional): Polygon boundaries dalam format GeoJSONelevation(Float, Optional): Ketinggian di atas permukaan laut (meter)
Soil & Environmental Characteristics
soilType(String, Optional): Jenis tanah (lempung, pasir, dll)soilPH(Float, Optional): Tingkat keasaman tanah (pH)waterSource(WaterSource Enum, Optional): Sumber air utamairrigationType(IrrigationType Enum, Optional): Sistem irigasi yang digunakanslope(SlopeType Enum, Optional): Tingkat kemiringan lahanclimate(ClimateType Enum, Optional): Jenis iklim daerah
Infrastructure & Facilities
hasElectricity(Boolean, Default: false): Ketersediaan listrikhasWaterAccess(Boolean, Default: false): Akses air bersihhasStorageFacility(Boolean, Default: false): Fasilitas penyimpananhasProcessingUnit(Boolean, Default: false): Unit pengolahanaccessRoadType(RoadType Enum, Optional): Jenis akses jalan
Visual Documentation
mainPhotoUrl(String, Optional): URL foto utama farmaerialPhotoUrl(String, Optional): URL foto udara/dronesoilPhotoUrl(String, Optional): URL foto sampel tanah
Legal & Ownership
ownershipType(FarmOwnership Enum, Optional): Status kepemilikan lahanlandCertificateNumber(String, Optional): Nomor sertifikat tanahlandCertificateUrl(String, Optional): URL dokumen sertifikat
Agricultural Information
establishedYear(Integer, Optional): Tahun pendirian/mulai dikelolatotalInvestment(Decimal, Optional): Total investasi pada farmannualProduction(Decimal, Optional): Estimasi produksi tahunan (kg)mainCrops(String Array): Komoditas utama yang ditanamfarmingSystem(FarmingSystem Enum, Optional): Sistem pertanian yang digunakanorganicCertified(Boolean, Default: false): Status sertifikasi organik
Metadata
description(String, Optional): Deskripsi detail farmnotes(String, Optional): Catatan tambahanisActive(Boolean, Default: true): Status aktif farmcreatedAt(DateTime, Default: now()): Tanggal pembuatan recordupdatedAt(DateTime, Auto-update): Tanggal terakhir diupdate
Enums Definition
WaterSource
- RAIN_FED: Mengandalkan air hujan
- IRRIGATION_CANAL: Saluran irigasi
- WELL: Sumur
- RIVER: Sungai
- POND: Kolam/embung
- GROUNDWATER: Air tanah
- SPRING: Mata air
- MIXED: Kombinasi sumber air
IrrigationType
- FLOOD: Irigasi banjir
- SPRINKLER: Sistem sprinkler
- DRIP: Irigasi tetes
- FURROW: Alur/parit
- MANUAL: Manual/tradisional
- NONE: Tidak ada irigasi
SlopeType
- FLAT: Datar
- GENTLE: Landai
- MODERATE: Sedang
- STEEP: Curam
- VERY_STEEP: Sangat curam
ClimateType
- TROPICAL_WET: Tropis basah
- TROPICAL_DRY: Tropis kering
- SUBTROPICAL: Subtropis
- TEMPERATE: Sedang
- HIGHLAND: Dataran tinggi
RoadType
- PAVED: Jalan beraspal
- GRAVEL: Jalan kerikil
- DIRT: Jalan tanah
- FOOTPATH: Jalan setapak
- NO_ACCESS: Tidak ada akses
FarmOwnership
- PRIVATE_OWNED: Milik pribadi
- LEASED: Sewa
- SHARECROPPED: Bagi hasil
- COOPERATIVE: Koperasi
- GOVERNMENT: Pemerintah
- COMMUNAL: Komunal
- FAMILY_INHERITED: Warisan keluarga
FarmingSystem
- MONOCULTURE: Monokultur
- POLYCULTURE: Polikultur
- MIXED_FARMING: Pertanian campuran
- ORGANIC: Organik
- CONVENTIONAL: Konvensional
- INTEGRATED: Terintegrasi
- PERMACULTURE: Permaculture
- AGROFORESTRY: Agroforestri
Relationships
One-to-One Relationships
- Farmer: Setiap farm dimiliki/dikelola oleh satu petani
One-to-Many Relationships
- Plot: Satu farm dapat dibagi menjadi beberapa plot
- Harvest: Recording hasil panen dari farm
- FarmAttachment: Dokumentasi dan foto farm
- WeatherData: Data cuaca spesifik farm
- WeatherForecast: Prediksi cuaca untuk farm
- FarmInput: Input pertanian yang digunakan
- InputSchedule: Jadwal penggunaan input
- LaborRecord: Catatan tenaga kerja
- LaborSchedule: Jadwal kerja
- EquipmentUsage: Penggunaan alat dan mesin
- PestDiseaseRecord: Catatan hama dan penyakit
- FinancialRecord: Catatan keuangan farm
- SoilTest: Tes laboratorium tanah
Database Indexes
Primary Indexes
farmCode: Pencarian berdasarkan kode farmfarmerId: Relasi dengan petaniisActive: Filter farm aktifestablishedYear: Sorting berdasarkan tahun pendirian
Geographic Indexes
latitude, longitude: Spatial queries dan mapping- Spatial Index: Untuk GeoJSON boundaries (database-specific)
Business Rules
Validation Rules
-
Unique Constraints:
farmCodeharus unik dalam sistemfarmerId + namekombinasi yang unik per petani
-
Required Fields:
farmerId: Wajib ada (foreign key)name: Wajib diisi untuk identifikasi
-
Geographic Validation:
- Latitude: -90 to 90
- Longitude: -180 to 180
- Area: > 0 jika diisi
- Boundaries: Valid GeoJSON polygon
-
Business Logic:
establishedYeartidak boleh di masa depanannualProductionharus >= 0totalInvestmentharus >= 0
Status Management
- Farm dapat di-deactivate tanpa menghapus data
- Deactivated farm tidak dapat memiliki aktivitas baru
- Historical data tetap tersimpan untuk analytics
Use Cases
1. Farm Registration
Actor: Petani/Admin Flow:
- Input informasi dasar farm (nama, lokasi)
- Upload atau input koordinat GPS
- Input karakteristik tanah dan lingkungan
- Dokumentasi dengan foto
- Input informasi legal (sertifikat)
- Aktivasi farm
2. Farm Mapping & GIS
Actor: Admin/Analyst Flow:
- View farm locations pada peta
- Analyze geographic distribution
- Overlay dengan data cuaca/iklim
- Identify clusters dan patterns
- Generate geographic reports
3. Infrastructure Assessment
Actor: Field Officer/Admin Flow:
- Survey infrastruktur existing
- Update fasilitas yang tersedia
- Identify infrastructure gaps
- Plan improvement programs
- Track infrastructure development
4. Production Planning
Actor: Petani/Advisor Flow:
- Analyze farm characteristics
- Determine suitable crops
- Plan planting schedule
- Estimate production capacity
- Budget planning dan resource allocation
5. Environmental Monitoring
Actor: Environmentalist/Researcher Flow:
- Track soil health parameters
- Monitor water usage patterns
- Assess climate impact
- Analyze biodiversity
- Generate sustainability reports
Integration Points
Internal Systems
- Farmer Management: Owner relationship
- Plot Management: Land subdivision
- Weather System: Location-based weather data
- Financial System: Investment dan revenue tracking
- Equipment Management: Usage pada farm specific
- Harvest Management: Production tracking
External Systems
- GIS Platforms: Mapping dan spatial analysis
- Weather Services: Real-time weather data
- Satellite Imagery: Aerial monitoring
- Government Systems: Land certification integration
- Insurance Systems: Risk assessment
- Bank Systems: Collateral valuation
Data Privacy & Security
Sensitive Data
- Exact coordinates dan boundaries
- Legal documents (certificates)
- Financial information (investment, production)
- Infrastructure details
Security Measures
- Role-based access untuk geographic data
- Encryption untuk sensitive coordinates
- Audit trails untuk data changes
- Backup dan disaster recovery
Performance Considerations
Query Optimization
- Spatial indexes untuk geographic queries
- Composite indexes untuk common filters
- Materialized views untuk analytics
- Caching untuk frequently accessed farms
Scalability
- Geographic partitioning berdasarkan region
- Read replicas untuk mapping queries
- CDN untuk farm photos
- Efficient spatial data storage
Analytics & Reporting
Key Metrics
- Total Farm Area: Aggregate luas lahan
- Geographic Distribution: Sebaran lokasi farm
- Infrastructure Penetration: Tingkat infrastruktur
- Production Capacity: Kapasitas produksi total
- Organic Certification Rate: Persentase sertifikasi organik
Reports
- Farm Directory: Katalog farm dengan details
- Geographic Analysis: Distribution dan clustering
- Infrastructure Assessment: Gap analysis
- Production Summary: Kapasitas dan actual production
- Environmental Impact: Sustainability metrics
Quality Assurance
Data Validation
- GPS coordinates validation
- GeoJSON polygon validation
- Realistic area calculations
- Consistent address hierarchy
Regular Audits
- Farm visits untuk verification
- Photo updates berkala
- Infrastructure assessment
- Production capacity review
Future Enhancements
Planned Features
-
Smart Mapping:
- AI-powered boundary detection
- Satellite imagery integration
- Real-time farm monitoring
- Precision agriculture mapping
-
IoT Integration:
- Sensor data collection
- Automated irrigation systems
- Weather station integration
- Equipment tracking
-
Sustainability Tracking:
- Carbon footprint calculation
- Water usage monitoring
- Biodiversity assessment
- Soil health tracking
-
Advanced Analytics:
- Predictive modeling
- Yield optimization
- Risk assessment
- Market intelligence
Integration Roadmap
- Drone Integration: Aerial surveying dan monitoring
- Blockchain: Land registry dan ownership verification
- AI/ML: Predictive analytics dan optimization
- Mobile Apps: Field data collection
- Government APIs: Legal compliance integration
Sample Farm Profiles
Small-Scale Rice Farm
{
"name": "Sawah Pak Budi",
"area": 0.5,
"soilType": "Clay loam",
"waterSource": "IRRIGATION_CANAL",
"irrigationType": "FLOOD",
"mainCrops": ["Rice"],
"farmingSystem": "CONVENTIONAL",
"hasElectricity": false,
"accessRoadType": "DIRT"
}
Organic Vegetable Farm
{
"name": "Green Valley Organic",
"area": 2.0,
"soilType": "Sandy loam",
"waterSource": "WELL",
"irrigationType": "DRIP",
"mainCrops": ["Tomato", "Lettuce", "Spinach"],
"farmingSystem": "ORGANIC",
"organicCertified": true,
"hasElectricity": true,
"hasStorageFacility": true
}
Highland Coffee Plantation
{
"name": "Arabica Hills",
"area": 5.0,
"elevation": 1200,
"climate": "HIGHLAND",
"slope": "MODERATE",
"mainCrops": ["Coffee"],
"farmingSystem": "AGROFORESTRY",
"establishedYear": 2010,
"accessRoadType": "GRAVEL"
}
Compliance & Certification
Legal Requirements
- Land certificate validation
- Environmental compliance
- Water usage permits
- Organic certification (if applicable)
Documentation Standards
- Standardized photo requirements
- GPS accuracy standards
- Boundary documentation
- Infrastructure documentation
Audit Trail
- All changes logged dengan timestamp
- User attribution untuk modifications
- Historical versions maintained
- Compliance tracking automated