Files
rkm-conectasus-ci-sandbox/api/app/Http/Requests/Cadastro/SujeitoAtencao/PacienteRequest.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

121 lines
3.2 KiB
PHP

<?php
namespace App\Http\Requests\Cadastro\SujeitoAtencao;
use App\Http\Requests\FormRequest;
class PacienteRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
switch ($this->method()) {
case 'POST': {
return $this->getPostPutRules();
}
case 'PUT': {
return $this->getPostPutRules();
}
default: {
return [];
}
}
}
private function getPostPutRules()
{
$cidadaoRules = array_merge([
'cidadao.id' => [
'nullable',
'integer',
'unique:\App\Models\Cadastro\SujeitoAtencao\Paciente,cidadao_id,'
. ($this->route('paciente') ?? 'NULL') . ',id,deleted_at,NULL',
],
], CidadaoRequest::getPostPutRules($this));
$rules = array_merge($cidadaoRules, [
'cadastro_simplificado' => [
'required',
'boolean',
],
'sem_documentos_em' => [
'nullable',
'date'
],
'email' => [
'nullable',
'string',
'between:5,100',
'regex:/(.+)@(.+)\.(.+)/i',
],
'classificacao_id' => [
'required',
'integer',
],
'subclassificacao_id' => [
'nullable',
'integer',
],
'validade_inicio' => [
'nullable',
'date_format:Y-m-d',
'before_or_equal:validade_fim',
],
'validade_fim' => [
'nullable',
'date_format:Y-m-d',
'after_or_equal:validade_inicio',
],
'prontuario_unidade' => [
'nullable',
'string',
'max:10',
],
'unidade_id' => [
'required',
'integer',
],
'alimentos_acabaram' => [
'nullable',
'boolean',
'required_unless:comeu_alguns_alimentos,null',
],
'comeu_alguns_alimentos' => [
'nullable',
'boolean',
'required_unless:alimentos_acabaram,null',
],
]);
return $rules;
}
public function messages()
{
return array_merge(CidadaoRequest::getMessages(), [
'comeu_alguns_alimentos.required_unless' =>
'O campo "Nos últimos três meses, você comeu apenas alguns alimentos que ainda tinha porque o dinheiro acabou?" é obrigatório.',
'alimentos_acabaram.required_unless' =>
'O campo "Nos últimos três meses, os alimentos acabaram antes que você tivesse dinheiro para comprar mais comida" é obrigatório.',
]);
}
}