Update Alert Profil Petani

This commit is contained in:
2026-11-04 16:20:33 +07:00
parent 41da3a71ee
commit 89c5a1371a
10 changed files with 943 additions and 1 deletions
+16
View File
@@ -4,6 +4,8 @@ namespace App\Models\Pertanian;
use App\Enums\Pendidikan;
use App\Enums\Pernikahan;
use App\Enums\Role;
use App\Enums\StatusDataPetani;
use App\Models\User;
use App\Models\Wilayah\DesaKelurahan;
use App\Models\Pertanian\Lahan;
@@ -70,6 +72,12 @@ class Petani extends Model
'pendidikan_terakhir' => Pendidikan::class,
'status_perkawinan' => Pernikahan::class,
'status' => StatusDataPetani::class,
];
// Sengaja tidak masuk $fillable: status hanya diubah lewat PetaniStatusController.
protected $attributes = [
'status' => 'draft',
];
public function getUmurAttribute(): ?int
@@ -113,6 +121,14 @@ class Petani extends Model
return $this->belongsTo(Komoditas::class, 'komoditas_id');
}
// Hanya enumerator yang menginput petani ini yang boleh menandai Lengkap / membatalkannya.
public function bisaDitandaiOleh(?User $user): bool
{
return $user
&& $user->role === Role::ENUMERATOR
&& (int) $this->created_by === (int) $user->id;
}
// Pertanyaan penyerbukan manual hanya berlaku untuk petani vanili.
public function isKomoditasVanili(): bool
{