method()) { case 'POST': return $this->getPostRules(); break; case 'PUT': return $this->getPutRules(); break; default: return []; } } private function getPostRules() { return [ 'infraestrutura_id' => [ 'required', 'integer', Rule::unique('\App\Models\PainelSenha\TempoEspera')->where(function ($query) { return $query ->where('tempo', $this->tempo) ->whereNull('deleted_at'); }), ], 'cor' => [ 'required', 'string', ], 'tempo' => [ 'required', 'integer', 'min:1', 'max:240', ], ]; } private function getPutRules() { return [ 'infraestrutura_id' => [ 'required', 'integer', Rule::unique('\App\Models\PainelSenha\TempoEspera')->where(function ($query) { return $query ->where('tempo', $this->nome) ->whereNull('deleted_at'); })->ignore($this->tempo_espera), ], 'cor' => [ 'required', 'string', ], 'tempo' => [ 'required', 'integer', 'min:1', 'max:240', ], ]; } public function messages() { return [ 'infraestrutura_id.unique' => 'Já existe um tempo de espera cadastrado com estas informações.' ]; } }