Update Migration Input Update Praktik Budidaya

This commit is contained in:
2026-07-08 20:57:27 +07:00
parent 3df381a66c
commit 05c2e53378
16 changed files with 857 additions and 216 deletions
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum Bulan: string
{
case JANUARI = 'Januari';
case FEBRUARI = 'Februari';
case MARET = 'Maret';
case APRIL = 'April';
case MEI = 'Mei';
case JUNI = 'Juni';
case JULI = 'Juli';
case AGUSTUS = 'Agustus';
case SEPTEMBER = 'September';
case OKTOBER = 'Oktober';
case NOVEMBER = 'November';
case DESEMBER = 'Desember';
public function label(): string
{
return $this->value;
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum CaraSortasi: string
{
case DIPILAH = 'Dipilah manual dengan tangan (memilih satu per satu buah/biji yang bagus dan membuang yang rusak)';
case ALAT_BANTU = 'Menggunakan alat bantu sederhana (tampah, ayakan, atau bak untuk memisahkan kotoran ringan)';
case PERENDAMAN = 'Metode perendaman/tenggelam (memisahkan buah mengapung dan tenggelam)';
case GRADING_KRITERIA = 'Grading berdasarkan kriteria (ukuran, warna, atau tingkat kematangan)';
case PEMBERSIHAN = 'Hanya pembersihan kotoran kasar (membuang dahan atau sampah besar)';
public function label(): string
{
return match($this) {
self::DIPILAH => 'Dipilah manual dengan tangan (memilih satu per satu buah/biji yang bagus dan membuang yang rusak)',
self::ALAT_BANTU => 'Menggunakan alat bantu sederhana (tampah, ayakan, atau bak untuk memisahkan kotoran ringan)',
self::PERENDAMAN => 'Metode perendaman/tenggelam (memisahkan buah mengapung dan tenggelam)',
self::GRADING_KRITERIA => 'Grading berdasarkan kriteria (ukuran, warna, atau tingkat kematangan)',
self::PEMBERSIHAN => 'Hanya pembersihan kotoran kasar (membuang dahan atau sampah besar)',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum DasarPenentuanPanen: int
{
case KEBUTUHAN_UANG = 1;
case UMUR_TANPA_KONDISI_BUAH = 2;
case BUAH_JATUH = 3;
case TINGKAT_KEPADATAN = 4;
case WARNA_KULIT_BUAH = 5;
public function label(): string
{
return match($this) {
self::KEBUTUHAN_UANG => 'Kebutuhan uang mendesak, tanpa mempertimbangkan kematangan',
self::UMUR_TANPA_KONDISI_BUAH => 'Umur/jadwal tetap, tanpa melihat kondisi buah langsung',
self::BUAH_JATUH => 'Buah jatuh/matang pohon (sudah terlalu matang saat dipetik)',
self::TINGKAT_KEPADATAN => 'Bersuara saat diketuk atau tingkat kepadatan buah',
self::WARNA_KULIT_BUAH => 'Warna kulit buah (indikator paling akurat dan konsisten untuk menentukan kematangan optimal)',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum EstimasiKehilanganHasil: string
{
case TIDAK_ADA = 'Tidak ada kehilangan';
case SEDIKIT = 'Sedikit, sekitar 25 % dari total panen';
case LUMAYAN = 'Lumayan, sekitar 50% dari total panen';
case BANYAK = 'Banyak, sekitar 75% dari total panen';
case HAMPIR_SEMUA = 'Hampir semua rusak, lebih dari 75%';
case TIDAK_TAHU = 'Hanya pembersihan kotoran kasar (membuang dahan atau sampah besar)';
public function label(): string
{
return match($this) {
self::TIDAK_ADA => 'Tidak ada kehilangan',
self::SEDIKIT => 'Sedikit, sekitar 25 % dari total panen',
self::LUMAYAN => 'Lumayan, sekitar 50% dari total panen',
self::BANYAK => 'Banyak, sekitar 75% dari total panen',
self::HAMPIR_SEMUA => 'Hampir semua rusak, lebih dari 75%',
self::TIDAK_TAHU => 'Tidak tahu/sulit memperkirakan',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum PraktikSortasi: int
{
case TIDAK_PERNAH = 1;
case SANGAT_SEDERHANA = 2;
case TIDAK_SETIAP_PANEN = 3;
case SETIAP_PANEN = 4;
case KETAT = 5;
public function label(): string
{
return match($this) {
self::TIDAK_PERNAH => 'Tidak pernah melakukan sortasi sama sekali',
self::SANGAT_SEDERHANA => 'Sortasi sangat sederhana, hanya membuang yang jelas-jelas rusak/busuk',
self::TIDAK_SETIAP_PANEN => 'Sortasi dilakukan tapi tidak setiap panen (kadang dilakukan, kadang tidak)',
self::SETIAP_PANEN => 'Sortasi dilakukan setiap panen, tapi standarnya belum konsisten',
self::KETAT => 'Sortasi ketat dengan standar yang jelas dan konsisten setiap panen',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -0,0 +1,25 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum TindakanPanenReject: string
{
case BUANG = 'Dibuang';
case JUAL = 'Dijual ke tempat lain';
public function label(): string
{
return match($this) {
self::BUANG => 'Dibuang',
self::JUAL => 'Dijual ke tempat lain',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}
@@ -0,0 +1,31 @@
<?php
namespace App\Enums\PraktikBudidaya;
enum TingkatPanenReject: int
{
case SERING = 1;
case CUKUP_SERING = 2;
case KADANG = 3;
case JARANG = 4;
case TIDAK_ADA = 5;
public function label(): string
{
return match($this) {
self::SERING => 'Sering ditolak, lebih dari 50% hasil panen biasanya ditolak/tidak laku karena mutu',
self::CUKUP_SERING => 'Cukup sering, sekitar 25–50% hasil panen ditolak/tidak laku',
self::KADANG => 'Kadang ditolak, sekitar 10–25% hasil panen',
self::JARANG => 'Jarang ditolak, kurang dari 10% hasil panen',
self::TIDAK_ADA => 'Tidak ada yang ditolak, semua hasil panen sesuai standar pasar utama',
};
}
public static function options(): array
{
return collect(self::cases())->map(fn ($case) => [
'value' => $case->value,
'label' => $case->label(),
])->toArray();
}
}