|string> */ public function rules(): array { return [ 'PerusahaanId' => 'nullable|integer|exists:RefPerusahaan,id', 'JenisSanksiId' => 'nullable|integer|exists:RefJenisSanksi,id', 'SanksiNumber' => 'nullable|string|max:100', 'SanksiDate' => 'nullable|date', 'SanksiFile' => 'nullable|file|mimes:pdf|max:2048', 'StatusPenaatan' => 'required|integer|in:1,2,3', 'PenaatanNumber' => 'nullable|string|max:100', 'PenaatanDate' => 'nullable|date', 'PenaatanFile' => 'nullable|file|mimes:pdf,jpg,png|max:2048', 'IsDeleted' => 'nullable|boolean', ]; } public function messages(): array { return [ 'PerusahaanId.integer' => 'Perusahaan harus berupa angka.', 'PerusahaanId.exists' => 'Perusahaan tidak ditemukan.', 'JenisSanksiId.integer' => 'Jenis Sanksi harus berupa angka.', 'JenisSanksiId.exists' => 'Jenis Sanksi tidak ditemukan.', 'SanksiNumber.max' => 'Nomor SK Sanksi maksimal 100 karakter.', 'SanksiDate.date' => 'Tanggal SK Sanksi harus berupa format tanggal.', 'SanksiFile.mimes' => 'File Sanksi harus berupa PDF', 'SanksiFile.max' => 'Ukuran file maksimal 2MB.', 'StatusPenaatan.required'=> 'Status Penaatan wajib diisi.', 'StatusPenaatan.in' => 'Status Penaatan hanya boleh 1, 2, atau 3.', 'PenaatanNumber.max' => 'Nomor SK Penaatan maksimal 100 karakter.', 'PenaatanDate.date' => 'Tanggal SK Penaatan harus berupa format tanggal.', 'PenaatanFile.mimes' => 'File Penaatan harus berupa PDF', 'PenaatanFile.max' => 'Ukuran file maksimal 2MB.', 'IsDeleted.boolean' => 'IsDeleted hanya boleh bernilai 0 atau 1.', ]; } }