merge($policy->normalize($this->all(), $policy->context($this->route('pengurusKoperasi')))); } public function rules(): array { $rules = [ 'momen_simpanan_terbesar' => ['nullable', 'string', 'max:255'], 'alasan_pinjaman_lainnya' => ['nullable', 'string', 'max:255'], 'pembayaran_selain_uang' => ['nullable', Rule::enum(KetersediaanKoperasi::class)], 'bentuk_pembayaran_lainnya' => ['nullable', 'string', 'max:255'], 'perhitungan_harga_pasar' => ['nullable', Rule::enum(JawabanYaTidakKoperasi::class)], 'alasan_bukan_harga_pasar' => ['nullable', 'string'], 'alasan_pinjaman' => ['nullable', 'array'], 'alasan_pinjaman.*' => [Rule::enum(AlasanPinjamanKoperasi::class)], 'bentuk_pembayaran_barang' => ['nullable', 'array'], 'bentuk_pembayaran_barang.*' => [Rule::enum(BentukPembayaranKoperasi::class)], 'simpanan_terbesar' => ['nullable', 'integer', 'min:0'], ]; $policy = app(SosialEkonomiKoperasiService::class); foreach ($policy->requiredFields() as $field) { $rules[$field][] = Rule::requiredIf(fn () => $policy->active($field, $this->all(), $policy->context($this->route('pengurusKoperasi')))); } return $rules; } public function attributes(): array { return [ 'simpanan_terbesar' => 'Simpanan Wajib Terbesar per Anggota', 'momen_simpanan_terbesar' => 'Bulan dan Momen Setoran Lebih Tinggi', 'alasan_pinjaman' => 'Keperluan Utama Pinjaman', 'alasan_pinjaman.*' => 'Keperluan Utama Pinjaman', 'alasan_pinjaman_lainnya' => 'Keperluan Pinjaman Lainnya', 'pembayaran_selain_uang' => 'Pembayaran Pinjaman Selain Uang', 'bentuk_pembayaran_barang' => 'Bentuk Pembayaran Selain Uang', 'bentuk_pembayaran_barang.*' => 'Bentuk Pembayaran Selain Uang', 'bentuk_pembayaran_lainnya' => 'Bentuk Pembayaran Lainnya', 'perhitungan_harga_pasar' => 'Penilaian Hasil Bumi Sesuai Harga Pasar', 'alasan_bukan_harga_pasar' => 'Alasan Tidak Menggunakan Harga Pasar', ]; } }