except(['numero', 'status_id']); $params['aberto_em'] = Carbon::createFromFormat('d/m/Y', $params['aberto_em']); return $params; } public static function update($id) { $livro = Livro::findOrFail($id); DB::transaction(function () use ($livro) { LivroService::updateMovimentacoes($livro); }); return $livro; } public static function fecharLivro($id) { $livro = Livro::findOrFail($id); DB::transaction(function () use ($livro) { LivroService::fecharLivro($livro); }); return $livro->fresh(); } public static function validate() { $rules = [ 'aberto_em' => [ 'required', 'date_format:d/m/Y' ], 'livro_registro_id' => [ 'required', 'integer', Rule::in(self::$livroRegistroIds), ], 'livro_registro_tipo_id' => [ 'nullable', Rule::requiredIf(fn () => request()->livro_registro_id !== LivroRegistroEnum::ANTIMICROBIANOS), 'integer', Rule::in(self::$livroRegistroTipoIds), ], 'quantidade_paginas' => [ 'required', 'integer', 'between:1,999', ], 'registro' => [ 'required', 'string', 'max:100', ], 'usuario_farmaceutico_id' => [ 'required', 'integer', Rule::exists(Usuario::class, 'id'), ], 'inscricao_estadual' => [ 'nullable', 'digits_between:8,14', ], 'autoridade_sanitaria' => [ 'required', 'string', 'max:100', ], ]; $messages = []; request()->validate($rules, $messages); } }