<?php


namespace App\Validations;


class AssistenteValidation
{
    static public function register () : array {
        return [
            "nome" => [
                'label' => 'Nome',
                'rules' => 'trim|required|only_letters_and_spaces',
                'errors' => [
                    'only_letters_and_spaces' => 'Digite apenas caracteres alfanuméricos.'
                ]
            ],
            "email" => [
                'label' => 'Email',
                'rules' => 'required|valid_email'
            ],
            "rg" => [
                'label' => 'RG',
                'rules' => 'required',
                'errors' => [
                    'validate_rg'=> 'Informe um RG válido'
                ]
            ],
            "genero" => [
                'label' => 'Gênero',
                'rules' => 'required|in_list[M,F,O]',
                'errors' => ['in_list' => 'Informe um sexo 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."
                ]
            ],
            "estado_civil" => [
                'label' => 'Estado civil',
                'rules' => 'trim|required',
            ],
            "cpf" => [
                'label' => 'CPF',
                'rules' => 'required|validate_cpf',
                'errors' => ['validate_cpf' => 'Informe um CPF 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',
            ],
//            "medicos" => [
//                'label' => 'Médico',
//                'rules' => 'required'
//            ],
            "bairro" => [
                'label' => 'Bairro',
                'rules' => 'trim|required',
            ],
            "cidade" => [
                'label' => 'Cidade',
                'rules' => 'trim|required',
            ],
            "estado" => [
                'label' => 'Estado',
                'rules' => 'trim|required',
            ],
            "logradouro" => [
                'label' => 'Logradouro',
                'rules' => 'trim|required',
            ],
            "senha" => [
                'label' => 'Senha',
                'rules' => 'trim|min_length[6]',
            ],
            "id_perfil" => [
                'label' => 'Perfil',
                'rules' => 'trim|required',
            ],
        ];
    }

    static public function update (int $id_paciente) : array {
        return [
            "nome" => [
                'label' => 'Nome',
                'rules' => 'trim|required|only_letters_and_spaces',
                'errors' => [
                    'only_letters_and_spaces' => 'Digite apenas caracteres alfanuméricos.'
                ]
            ],
            "rg" => [
                'label' => 'RG',
                'rules' => 'required',
                'errors' => [
                    'validate_rg'=> 'Informe um RG válido'
                ]
            ],
            "genero" => [
                'label' => 'Gênero',
                'rules' => 'required|in_list[M,F,O]',
                'errors' => ['in_list' => 'Informe um sexo 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."
                ]
            ],
            "estado_civil" => [
                'label' => 'Estado civil',
                'rules' => 'trim|required',
            ],
            "cpf" => [
                'label' => 'CPF',
                'rules' => 'required|validate_cpf',
                'errors' => ['validate_cpf' => 'Informe um CPF 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',
            ],
//            "medicos" => [
//                'label' => 'Médico',
//                'rules' => 'required'
//            ],
            "bairro" => [
                'label' => 'Bairro',
                'rules' => 'trim|required',
            ],
            "cidade" => [
                'label' => 'Cidade',
                'rules' => 'trim|required',
            ],
            "estado" => [
                'label' => 'Estado',
                'rules' => 'trim|required',
            ],
            "logradouro" => [
                'label' => 'Logradouro',
                'rules' => 'trim|required',
            ],
            "id_perfil" => [
                'label' => 'Perfil',
                'rules' => 'trim|required',
            ],
        ];
    }

    static public function selfRegister () : array {
        $rules = AssistenteValidation::register();
        $rules["senha"] = [
            'label' => 'Senha',
            'rules' => 'required|min_length[6]'
        ];
        return $rules;
    }
}