Files

119 lines
2.8 KiB
PHP

<?php
namespace App\Models\Pertanian;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use App\Models\Wilayah\DesaKelurahan;
use App\Models\Pertanian\Tanaman;
use App\Models\Profile;
use App\Models\Pertanian\Adat;
use App\Enums\StatusLahan;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use App\Models\Pertanian\Komoditas;
use App\Models\Master\JenisKomoditas;
use App\Models\Master\Varietas;
use App\Enums\KondisiTanaman;
use App\Enums\SeranganHama;
use App\Enums\PenyakitTanaman;
use App\Enums\KeparahanSerangan;
class Lahan extends Model
{
use SoftDeletes;
protected $table = 'map_lahan';
protected $fillable = [
'uid',
'nama',
'status_kepemilikan',
'profile_id',
'keluarga_pengelola_id',
'adat_pemilik_id',
'desa_kelurahan_id',
'path',
'luas_lahan',
'komoditas_id',
'jenis_komoditas_id',
'varietas_id',
'jumlah_tanaman',
'petani_id',
'kondisi_tanaman',
'serangan_hama',
'penyakit_tanaman',
'keparahan_serangan',
'umur_tanaman',
'umur_lahan',
'created_by',
'updated_by',
'deleted_by',
'komoditas_lain',
'tanaman_penaung',
'foto',
'jenis_hama',
'jenis_penyakit',
];
protected $casts = [
'status_kepemilikan' => StatusLahan::class,
'path' => 'array',
'komoditas_lain' => 'array',
'tanaman_penaung' => 'array',
'kondisi_tanaman' => KondisiTanaman::class,
'serangan_hama' => SeranganHama::class,
'penyakit_tanaman' => PenyakitTanaman::class,
'keparahan_serangan' => KeparahanSerangan::class,
'foto' => 'array',
'jenis_hama' => 'array',
'jenis_penyakit' => 'array'
];
public function profile(): BelongsTo
{
return $this->belongsTo(Profile::class, 'profile_id');
}
public function desaKelurahan(): BelongsTo
{
return $this->belongsTo(DesaKelurahan::class, 'desa_kelurahan_id');
}
public function adat(): BelongsTo
{
return $this->belongsTo(Adat::class, 'adat_pemilik_id');
}
public function tanaman(): HasMany
{
return $this->hasMany(Tanaman::class, 'lahan_id');
}
public function petani(): BelongsTo
{
return $this->belongsTo(Profile::class, 'petani_id');
}
public function komoditas(): BelongsTo
{
return $this->belongsTo(Komoditas::class, 'komoditas_id');
}
public function jenisKomoditas(): BelongsTo
{
return $this->belongsTo(JenisKomoditas::class, 'jenis_komoditas_id');
}
public function varietas(): BelongsTo
{
return $this->belongsTo(Varietas::class, 'varietas_id');
}
}