<?php

namespace App\Validations;

class PacienteValidation {

	static public function register(): array {

		return [ 
			"nome" => [ 
				'label' => 'Nome',
				'rules' => 'trim|required'
			],
			"descricao" => [ 
				'label' => 'Descricao',
				'rules' => 'trim'
			],
			// "email" => [
			// 'label' => 'Email',
			// 'rules' => 'required|valid_email'
			// ],
			"rg" => [ 
				'label' => 'RG',
				'rules' => 'trim',
				'errors' => [ 
					'validate_rg' => 'Informe um RG válido'
				]
			],
			"data_nascimento" => [ 
				'label' => 'Data de nascimento',
				'rules' => 'trim|validate_date',
				'errors' => [ 
					'validate_date' => 'Informe uma data válida.',
					'validate_birthdate' => "Sua idade deve estar entre 18 e 70 anos."
				]
			],
// 			"cpf" => [ 
// 				'label' => 'CPF',
// 				'rules' => 'trim|validate_cpf',
// 				'errors' => [ 
// 					'validate_cpf' => 'Informe um CPF válido.'
// 				]
// 			],
// 			"genero" => [ 
// 				'label' => 'Gênero',
// 				'rules' => 'trim|in_list[M,F,O]',
// 				'errors' => [ 
// 					'in_list' => 'Informe um sexo válido.'
// 				]
// 			],
			"telefone_1" => [ 
				'label' => 'Telefone 1',
				'rules' => 'trim|required|validate_phone',
				'errors' => [ 
					'validate_phone' => 'Informe um telefone válido.'
				]
			],
			"telefone_2" => [ 
				'label' => 'Telefone 2',
				'rules' => 'trim|validate_phonelandline',
				'errors' => [ 
					'validate_phone' => 'Informe um telefone válido.'
				]
			],
			"cep" => [ 
				'label' => 'CEP',
				'rules' => 'required|validate_cep',
				'errors' => [ 
					'validate_cep' => 'Digite um CEP válido.'
				]
			],
			"numero" => [ 
				'label' => 'Número',
				'rules' => 'trim|required'
			],
			"complemento" => [ 
				'label' => 'Complemento',
				'rules' => 'trim'
			],
			"referencias" => [ 
				'label' => 'Referências',
				'rules' => 'trim'
			],
			"profissao" => [ 
				'label' => 'Profissão',
				'rules' => 'trim'
			],
			"estado_civil" => [ 
				'label' => 'Estado civil',
				'rules' => 'trim'
			],
			"indicado_por" => [ 
				'label' => 'Indicado por',
				'rules' => 'trim'
			],
			"bairro" => [ 
				'label' => 'Bairro',
				'rules' => 'trim|required'
			],
			"cidade" => [ 
				'label' => 'Cidade',
				'rules' => 'trim|required'
			],
			"estado" => [ 
				'label' => 'Estado',
				'rules' => 'trim|required'
			],
			"logradouro" => [ 
				'label' => 'Logradouro',
				'rules' => 'trim|required'
			]
		];

	}

	static public function update(): array {

		return [ 
			"nome" => [ 
				'label' => 'Nome',
				'rules' => 'trim|required'
			],
			"descricao" => [ 
				'label' => 'Descricao',
				'rules' => 'trim'
			],
			"email" => [ 
				'label' => 'Email',
				'rules' => 'required|valid_email'
			],
			"rg" => [ 
				'label' => 'RG',
				'rules' => 'trim',
				'errors' => [ 
					'validate_rg' => 'Informe um RG válido'
				]
			],
			"data_nascimento" => [ 
				'label' => 'Data de nascimento',
				'rules' => 'required|validate_date|validate_birthdate',
				'errors' => [ 
					'validate_date' => 'Informe uma data válida.',
					'validate_birthdate' => "Sua idade deve estar entre 18 e 70 anos."
				]
			],
			"cpf" => [ 
				'label' => 'CPF',
				'rules' => 'required|validate_cpf',
				'errors' => [ 
					'validate_cpf' => 'Informe um CPF válido.'
				]
			],
			"genero" => [ 
				'label' => 'Gênero',
				'rules' => 'required|in_list[M,F,O]',
				'errors' => [ 
					'in_list' => 'Informe um sexo válido.'
				]
			],
			"telefone_1" => [ 
				'label' => 'Telefone 1',
				'rules' => 'trim|required|validate_phone',
				'errors' => [ 
					'validate_phone' => 'Informe um telefone válido.'
				]
			],
			"telefone_2" => [ 
				'label' => 'Telefone 2',
				'rules' => 'trim|validate_phonelandline',
				'errors' => [ 
					'validate_phone' => 'Informe um telefone válido.'
				]
			],
			"cep" => [ 
				'label' => 'CEP',
				'rules' => 'required|validate_cep',
				'errors' => [ 
					'validate_cep' => 'Digite um CEP válido.'
				]
			],
			"numero" => [ 
				'label' => 'Número',
				'rules' => 'trim|required'
			],
			"complemento" => [ 
				'label' => 'Complemento',
				'rules' => 'trim'
			],
			"referencias" => [ 
				'label' => 'Referências',
				'rules' => 'trim'
			],
			"profissao" => [ 
				'label' => 'Profissão',
				'rules' => 'trim'
			],
			"estado_civil" => [ 
				'label' => 'Estado civil',
				'rules' => 'trim'
			],
			"indicado_por" => [ 
				'label' => 'Indicado por',
				'rules' => 'trim'
			],
			"bairro" => [ 
				'label' => 'Bairro',
				'rules' => 'trim|required'
			],
			"cidade" => [ 
				'label' => 'Cidade',
				'rules' => 'trim|required'
			],
			"estado" => [ 
				'label' => 'Estado',
				'rules' => 'trim|required'
			],
			"logradouro" => [ 
				'label' => 'Logradouro',
				'rules' => 'trim|required'
			]
		];

	}

	static public function update_obs(): array {

		return [ 
			"observacao" => [ 
				'label' => 'Observação',
				'rules' => 'trim|required'
			]
		];

	}

	static public function selfRegister(): array {

		$rules = PacienteValidation::register();
		$rules ["senha"] = [ 
			'label' => 'Senha',
			'rules' => 'required|min_length[6]'
		];
		unset( $rules ['adicionado_por'] );
		return $rules;

	}

}