resolve user create

This commit is contained in:
2026-07-09 18:15:12 +07:00
66 changed files with 5452 additions and 391 deletions
@@ -41,7 +41,6 @@ return new class extends Migration
$table->string('waktu_kemunculan_terparah')->nullable();
$table->string('metode_paling_sering_dilakukan')->nullable();
$table->integer('volume_obat_obatan_permusim')->nullable();
$table->string('satuan_volume_obat_obatan')->nullable();
// 2.6 Sanitasi Kebun
$table->integer('frekuensi_sanitasi_lahan')->nullable();
$table->string('penanganan_sisa_buah_ranting')->nullable();
@@ -53,24 +52,19 @@ return new class extends Migration
$table->string('kebutuhan_air_permusim')->nullable();
// 2.8 Praktik konservasi tanah
$table->string('praktik_konservasi_tanah')->nullable();
$table->string('kebiasaan_konservasi_tanah')->nullable();
$table->string('pemahaman_manfaat_konservasi_tanah')->nullable();
$table->integer('nilai_konservasi_tanah')->nullable();
// 2.9 Struktur Biaya Produksi Per Musim
$table->decimal('upah_tenaga_kerja', 10, 2)->nullable();
$table->decimal('biaya_bibit', 10, 2)->nullable();
$table->decimal('biaya_pupuk', 10, 2)->nullable();
$table->decimal('biaya_obat_obatan', 10, 2)->nullable();
$table->decimal('biaya_sewa_alat', 10, 2)->nullable();
$table->decimal('biaya_penyediaan_air', 10, 2)->nullable();
$table->decimal('biaya_lainnya', 10, 2)->nullable();
$table->decimal('total_estimasi_biaya', 10, 2)->nullable();
// K4 Produktivitas
// 4.3 Kehilangan Akibat OPT
$table->string('estimasi_kehilangan_akibat_opt')->nullable();
$table->string('estimasi_kehilangan_akibat_hama_penyakit')->nullable();
$table->decimal('upah_tenaga_kerja', 13, 2)->nullable();
$table->decimal('biaya_bibit', 13, 2)->nullable();
$table->decimal('biaya_pupuk', 13, 2)->nullable();
$table->decimal('biaya_obat_obatan', 13, 2)->nullable();
$table->decimal('biaya_sewa_alat_produksi', 13, 2)->nullable();
$table->decimal('biaya_penyediaan_air', 13, 2)->nullable();
$table->decimal('biaya_produksi_lainnya', 13, 2)->nullable();
$table->decimal('total_estimasi_biaya_produksi', 13, 2)->nullable();
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
@@ -79,35 +73,36 @@ return new class extends Migration
$table->softDeletes();
});
Schema::create('panen', function (Blueprint $table) {
Schema::create('survey_panen', function (Blueprint $table) {
$table->id();
$table->string('uid')->unique();
$table->foreignId('petani_id')->nullable()->constrained('petani')->onDelete('set null');
// K3 PANEN & PENANGANAN AWAL
// 3.1 Cara Menetukan Kematangan
$table->integer('cara_menetukan_kematangan')->nullable();
$table->integer('dasar_penentuan_panen')->nullable();
// 3.2 Frekuensi Panen
$table->integer('frekuensi_panen_pertahun')->nullable();
$table->string('bulan_panen_utama')->nullable();
// 3.4 Hasil Panen Aktual
$table->decimal('hasil_komoditas_utama_permusim_kg', 10, 2)->nullable();
$table->decimal('hasil_komoditas_lainnya_permusim_kg', 10, 2)->nullable();
$table->string('tujuan_panen')->nullable();
$table->decimal('hasil_komoditas_utama_permusim', 10, 2)->nullable();
$table->decimal('hasil_komoditas_lainnya_permusim', 10, 2)->nullable();
$table->boolean('disimpan_untuk_sendiri')->nullable();
$table->decimal('hasil_panen_disimpan', 10, 2)->nullable();
$table->string('tujuan_disimpan')->nullable();
// 3.5 Penanganan Awal Setelah Panen
$table->integer('praktik_sortasi')->nullable();
$table->string('bentuk_sortasi')->nullable();
// 3.8 Hasil Panen Reject & Estimasi Biaya Panen
$table->integer('hasil_panen_reject')->nullable();
$table->string('jumlah_panen_reject')->nullable();
$table->string('tindakan_terhadap_panen_reject')->nullable();
$table->decimal('estimasi_biaya_panen', 10, 2)->nullable();
$table->decimal('upah_tenaga_panen', 10, 2)->nullable();
$table->decimal('biaya_pengangkutan', 10, 2)->nullable();
$table->decimal('biaya_wadah', 10, 2)->nullable();
$table->decimal('biaya_sewa_alat', 10, 2)->nullable();
$table->decimal('biaya_lainnya', 10, 2)->nullable();
$table->decimal('total_estimasi_biaya_panen', 10, 2)->nullable();
$table->string('tindakan_panen_reject')->nullable();
$table->decimal('upah_tenaga_panen', 13, 2)->nullable();
$table->decimal('biaya_pengangkutan_panen', 13, 2)->nullable();
$table->decimal('biaya_wadah-Panen', 13, 2)->nullable();
$table->decimal('biaya_sewa_alat_panen', 13, 2)->nullable();
$table->decimal('biaya_panen_lainnya', 13, 2)->nullable();
$table->decimal('total_estimasi_biaya_panen', 13, 2)->nullable();
// K4 Produktivitas
// 4.3 Kehilangan Akibat OPT
$table->string('estimasi_kehilangan_akibat_opt')->nullable();
@@ -120,43 +115,13 @@ return new class extends Migration
$table->softDeletes();
});
Schema::create('produktivitas', function (Blueprint $table) {
Schema::create('survey_produktivitas', function (Blueprint $table) {
$table->id();
$table->string('uid')->unique();
$table->foreignId('petani_id')->nullable()->constrained('petani')->onDelete('set null');
$table->foreignId('komoditas_id')->nullable()->constrained('master_komoditas')->onDelete('set null');
$table->foreignId('jenis_komoditas_id')->nullable()->constrained('jenis_komoditas')->onDelete('set null');
$table->foreignId('varietas_id')->nullable()->constrained('master_varietas')->onDelete('set null');
$table->decimal('kuantitas_pertahun', 10, 2)->nullable();
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('deleted_by')->nullable()->constrained('users')->onDelete('set null');
$table->timestamps();
$table->softDeletes();
});
Schema::create('pelatihan', function (Blueprint $table) {
$table->id();
$table->string('uid')->unique();
$table->foreignId('petani_id')->nullable()->constrained('petani')->onDelete('set null');
$table->string('jenis_pelatihan');
$table->string('penyelenggara');
$table->date('tahun_pelaksanaan');
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('deleted_by')->nullable()->constrained('users')->onDelete('set null');
$table->timestamps();
$table->softDeletes();
});
Schema::create('sertifikasi', function (Blueprint $table) {
$table->id();
$table->string('uid')->unique();
$table->foreignId('petani_id')->nullable()->constrained('petani')->onDelete('set null');
$table->string('jenis_sertifikasi');
$table->string('lembaga_penerbit');
$table->date('tahun_pelaksanaan');
$table->boolean('is_aktif')->default(false);
$table->decimal('kuantitas')->nullable();
$table->string('satuan')->nullable();
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
$table->foreignId('deleted_by')->nullable()->constrained('users')->onDelete('set null');
@@ -171,8 +136,7 @@ return new class extends Migration
public function down(): void
{
Schema::dropIfExists('praktik_budidaya');
Schema::dropIfExists('pelatihan');
Schema::dropIfExists('sertifikasi');
Schema::dropIfExists('survey_panen');
Schema::dropIfExists('produktivitas');
}
};
@@ -0,0 +1,153 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('sosial_ekonomi', function (Blueprint $table) {
// Sosial Budaya Fields
$table->tinyInteger('kemauan_mencoba_praktik_baru')->nullable()->after('status_konflik');
$table->text('alasan_mencoba_praktik_baru')->nullable()->after('kemauan_mencoba_praktik_baru');
$table->text('hambatan_mengubah_cara_bertani')->nullable()->after('alasan_mencoba_praktik_baru');
$table->tinyInteger('pemahaman_mutu_harga')->nullable()->after('hambatan_mengubah_cara_bertani');
$table->text('contoh_pemahaman_mutu_harga')->nullable()->after('pemahaman_mutu_harga');
$table->string('pengetahuan_harga_hasil_olah')->nullable()->after('contoh_pemahaman_mutu_harga');
$table->string('pernah_jual_harga_lebih_tinggi')->nullable()->after('pengetahuan_harga_hasil_olah');
$table->text('penyebab_harga_lebih_tinggi')->nullable()->after('pernah_jual_harga_lebih_tinggi');
$table->string('usaha_mutu_tambahan_harga')->nullable()->after('penyebab_harga_lebih_tinggi');
$table->text('alasan_usaha_mutu_tambahan_harga')->nullable()->after('usaha_mutu_tambahan_harga');
$table->tinyInteger('panutan_petani_sukses')->nullable()->after('alasan_usaha_mutu_tambahan_harga');
$table->text('nama_lokasi_panutan')->nullable()->after('panutan_petani_sukses');
$table->tinyInteger('kemauan_ikut_program')->nullable()->after('nama_lokasi_panutan');
$table->text('harapan_program')->nullable()->after('kemauan_ikut_program');
$table->tinyInteger('orientasi_rencana_jangka_panjang')->nullable()->after('harapan_program');
$table->text('rencana_jangka_panjang')->nullable()->after('orientasi_rencana_jangka_panjang');
// Keanggotaan Kelompok Fields
$table->string('terdaftar_kelompok_tani')->nullable()->after('rencana_jangka_panjang');
$table->string('nama_kelompok_tani')->nullable()->after('terdaftar_kelompok_tani');
$table->unsignedInteger('lama_bergabung_kelompok_tahun')->nullable()->after('nama_kelompok_tani');
$table->string('kedekatan_sesama_anggota')->nullable()->after('lama_bergabung_kelompok_tahun');
$table->tinyInteger('keaktifan_pertemuan_kelompok')->nullable()->after('kedekatan_sesama_anggota');
$table->text('topik_biasa_dibahas')->nullable()->after('keaktifan_pertemuan_kelompok');
$table->tinyInteger('peran_dalam_kelompok')->nullable()->after('topik_biasa_dibahas');
$table->tinyInteger('manfaat_kelompok_tani')->nullable()->after('peran_dalam_kelompok');
$table->string('status_kartu_tani')->nullable()->after('manfaat_kelompok_tani');
$table->string('bisa_beli_pupuk_bersubsidi')->nullable()->after('status_kartu_tani');
$table->text('manfaat_lain_kartu_tani')->nullable()->after('bisa_beli_pupuk_bersubsidi');
// Akses Keuangan Fields
$table->tinyInteger('status_rekening_tabungan')->nullable()->after('manfaat_lain_kartu_tani');
$table->string('nama_bank')->nullable()->after('status_rekening_tabungan');
$table->tinyInteger('pengalaman_kredit_kebun')->nullable()->after('nama_bank');
$table->json('alasan_kredit_ditolak')->nullable()->after('pengalaman_kredit_kebun');
$table->string('alasan_kredit_ditolak_lainnya')->nullable()->after('alasan_kredit_ditolak');
$table->tinyInteger('kondisi_aset_produktif')->nullable()->after('alasan_kredit_ditolak_lainnya');
$table->json('jenis_aset_produktif')->nullable()->after('kondisi_aset_produktif');
$table->string('jenis_aset_produktif_lainnya')->nullable()->after('jenis_aset_produktif');
$table->text('keterangan_kondisi_aset')->nullable()->after('jenis_aset_produktif_lainnya');
$table->tinyInteger('keterlibatan_program_keuangan_formal')->nullable()->after('keterangan_kondisi_aset');
$table->json('status_program_keuangan_formal')->nullable()->after('keterlibatan_program_keuangan_formal');
$table->string('program_keuangan_formal_lainnya_nama')->nullable()->after('status_program_keuangan_formal');
$table->string('pernah_bantuan_ngo_perusahaan')->nullable()->after('program_keuangan_formal_lainnya_nama');
$table->json('detail_bantuan_ngo_perusahaan')->nullable()->after('pernah_bantuan_ngo_perusahaan');
// Keterikatan Hutang Fields
$table->tinyInteger('keterikatan_hutang_panen')->nullable()->after('detail_bantuan_ngo_perusahaan');
$table->string('pinjaman_tokoh_adat_panen')->nullable()->after('keterikatan_hutang_panen');
$table->text('keterangan_pinjaman_tokoh_adat')->nullable()->after('pinjaman_tokoh_adat_panen');
$table->unsignedBigInteger('total_hutang_rupiah')->nullable()->after('keterangan_pinjaman_tokoh_adat');
$table->decimal('total_hutang_setara_kg_panen', 12, 2)->nullable()->after('total_hutang_rupiah');
$table->boolean('total_hutang_tidak_bersedia')->nullable()->after('total_hutang_setara_kg_panen');
$table->tinyInteger('praktik_ijon')->nullable()->after('total_hutang_tidak_bersedia');
$table->string('tekanan_jual_segera')->nullable()->after('praktik_ijon');
$table->text('penyebab_tekanan_jual_segera')->nullable()->after('tekanan_jual_segera');
$table->tinyInteger('kebebasan_memilih_pembeli')->nullable()->after('penyebab_tekanan_jual_segera');
$table->text('alasan_tidak_bebas_memilih_pembeli')->nullable()->after('kebebasan_memilih_pembeli');
$table->string('minat_pembeli_harga_stabil')->nullable()->after('alasan_tidak_bebas_memilih_pembeli');
$table->text('alasan_minat_pembeli_harga_stabil')->nullable()->after('minat_pembeli_harga_stabil');
});
}
public function down(): void
{
Schema::table('sosial_ekonomi', function (Blueprint $table) {
$table->dropColumn([
// Sosial Budaya
'kemauan_mencoba_praktik_baru',
'alasan_mencoba_praktik_baru',
'hambatan_mengubah_cara_bertani',
'pemahaman_mutu_harga',
'contoh_pemahaman_mutu_harga',
'pengetahuan_harga_hasil_olah',
'pernah_jual_harga_lebih_tinggi',
'penyebab_harga_lebih_tinggi',
'usaha_mutu_tambahan_harga',
'alasan_usaha_mutu_tambahan_harga',
'panutan_petani_sukses',
'nama_lokasi_panutan',
'kemauan_ikut_program',
'harapan_program',
'orientasi_rencana_jangka_panjang',
'rencana_jangka_panjang',
// Keanggotaan Kelompok
'terdaftar_kelompok_tani',
'nama_kelompok_tani',
'lama_bergabung_kelompok_tahun',
'kedekatan_sesama_anggota',
'keaktifan_pertemuan_kelompok',
'topik_biasa_dibahas',
'peran_dalam_kelompok',
'manfaat_kelompok_tani',
'status_kartu_tani',
'bisa_beli_pupuk_bersubsidi',
'manfaat_lain_kartu_tani',
// Akses Keuangan
'status_rekening_tabungan',
'nama_bank',
'pengalaman_kredit_kebun',
'alasan_kredit_ditolak',
'alasan_kredit_ditolak_lainnya',
'kondisi_aset_produktif',
'jenis_aset_produktif',
'jenis_aset_produktif_lainnya',
'keterangan_kondisi_aset',
'keterlibatan_program_keuangan_formal',
'status_program_keuangan_formal',
'program_keuangan_formal_lainnya_nama',
'pernah_bantuan_ngo_perusahaan',
'detail_bantuan_ngo_perusahaan',
// Keterikatan Hutang
'keterikatan_hutang_panen',
'pinjaman_tokoh_adat_panen',
'keterangan_pinjaman_tokoh_adat',
'total_hutang_rupiah',
'total_hutang_setara_kg_panen',
'total_hutang_tidak_bersedia',
'praktik_ijon',
'tekanan_jual_segera',
'penyebab_tekanan_jual_segera',
'kebebasan_memilih_pembeli',
'alasan_tidak_bebas_memilih_pembeli',
'minat_pembeli_harga_stabil',
'alasan_minat_pembeli_harga_stabil',
]);
});
}
};