File manager - Edit - /var/www/html/homologBancodetalentos/app/Http/Controllers/PaginasController.php
Back
<?php namespace App\Http\Controllers; use App\Models\News; use Illuminate\Http\Request; use Illuminate\Support\Facades\Schema; class PaginasController extends Controller { /** * Login fictício (sessão, sem banco). CPF = candidato, CNPJ (14 dígitos) = empresa. */ public function entrarForm() { return view('pages.entrar'); } public function entrarSubmit(Request $request) { $request->validate([ 'cpf_cnpj' => 'required|string', 'password' => 'required|string|min:1', ], [ 'cpf_cnpj.required' => 'Informe o CPF ou CNPJ.', 'password.required' => 'Informe a senha.', ]); $doc = preg_replace('/\D/', '', (string) $request->input('cpf_cnpj', '')); if ($doc === '') { return back()->withErrors(['cpf_cnpj' => 'CPF/CNPJ inválido.'])->withInput(); } $tipo = strlen($doc) >= 14 ? 'empresa' : 'candidato'; $nome = $tipo === 'empresa' ? self::empresaPerfilMock()['nome'] : 'Gustavo de Campos Silva'; session([ 'mock_auth' => [ 'tipo' => $tipo, 'nome' => $nome, 'documento' => $doc, ], ]); return redirect()->route($tipo === 'empresa' ? 'perfil-empresa' : 'perfil'); } public function sairMock() { session()->forget('mock_auth'); return redirect()->route('home'); } public function home(Request $request) { $connection = (new News())->getConnectionName(); // Evita erro fatal quando a base local nao possui a tabela de noticias. if (!Schema::connection($connection)->hasTable('news')) { $noticias = collect(); } else { $noticias = News::where([ ["tags", "like", "%BANCO_DE_TALENTOS%"] ])->inRandomOrder()->limit(12)->get(); } return view("pages.home", compact(['noticias'])); } public function perfil() { $auth = session('mock_auth'); $nome = is_array($auth) && ($auth['tipo'] ?? '') === 'candidato' ? ($auth['nome'] ?? 'Gustavo de Campos Silva') : 'Gustavo de Campos Silva'; return view('pages.perfil', [ 'nomeUsuario' => $nome, ]); } public function curriculo() { return view("pages.curriculo", [ 'usuario' => (object) [ 'foto' => null, 'nome' => 'Usuário', 'cargo' => '', 'perfil' => '', 'data_nascimento' => '', 'sexo' => '', 'telefone' => '', 'estado_civil' => '', 'outro_campo' => '', 'status' => '', ], 'experiencias' => collect(), 'formacoes' => collect(), 'conhecimentos' => collect(), 'idiomas' => collect(), 'habilidades' => collect(), ]); } public function editarCurriculo() { return view("pages.alterar-cadastro", [ 'profileData' => [ 'email' => '', 'email_confirmation' => '', 'cpf' => '', 'full_name' => '', 'birth_date' => '', 'gender' => '', 'marital_status' => '', 'ethnicity' => '', 'pcd' => '', 'desired_role' => '', 'cep' => '', 'address' => '', 'neighborhood' => '', 'phone_home' => '', 'phone_cell' => '', 'last_salary' => '', 'expected_salary' => '', 'resume' => '', 'first_job' => '', 'experience' => [], 'education' => [], 'knowledge' => [], 'languages' => [], 'skills' => [], ], ]); } public function criacaoVaga() { return view('pages.criacao-vaga', [ 'vaga' => self::vagaFormularioPadrao(), ]); } public function editarVaga(string $codigo) { $vagas = self::vagasMockPorCodigo(); if (! isset($vagas[$codigo])) { abort(404); } return view('pages.editar-vaga', [ 'vaga' => $vagas[$codigo], ]); } public function candidatosVaga(string $codigo) { $vagas = self::vagasMockPorCodigo(); if (! isset($vagas[$codigo])) { abort(404); } $candidatos = collect(); return view('pages.candidatos-vaga', [ 'empresa' => self::empresaPerfilMock(), 'vaga' => $vagas[$codigo], 'totalCandidatos' => $candidatos->count(), 'candidatos' => $candidatos, ]); } public function perfilEmpresa() { return view('pages.perfil-empresa', [ 'empresa' => self::empresaPerfilMock(), 'vagas' => collect(array_values(self::vagasMockPorCodigo())), ]); } private static function empresaPerfilMock(): array { return [ 'nome' => 'teste10', ]; } /** * Campos do formulário "Dados da vaga" (mesma estrutura da criação). */ private static function vagaFormularioPadrao(): array { return [ 'role' => '', 'salary' => '', 'hide_company' => '0', 'hiring' => '1', 'contract' => '', 'modality' => '', 'experience_level' => '', 'neighborhood' => '', 'workload' => '', 'total' => '', 'filled' => '', 'description' => '', 'required_skills' => '', 'optional_skills' => '', 'benefits' => '', 'other_info' => '', ]; } /** * Dados de exemplo por código — alinhados ao que aparece em perfil-empresa. */ private static function vagasMockPorCodigo(): array { return [ '2131313123' => array_merge(self::vagaFormularioPadrao(), [ 'codigo' => '2131313123', 'titulo' => 'Acupunturista', 'role' => 'Acupunturista', 'salary' => 'R$ 3.000 - R$ 5.000', 'hide_company' => '0', 'hiring' => '1', 'contract' => 'Temporário', 'modality' => 'Presencial', 'experience_level' => 'Pleno', 'neighborhood' => 'Centro', 'workload' => '40h semanais', 'total' => '3', 'filled' => '1', 'description' => 'Atendimento em clínica e domicílio. Experiência em acupuntura tradicional.', 'required_skills' => 'Registro no conselho profissional. Disponibilidade de horário flexível.', 'optional_skills' => 'Experiência em moxabustão.', 'benefits' => 'Vale transporte, refeição no local.', 'other_info' => 'Entrevista presencial.', 'tags' => ['Temporário', 'Assistente', 'Estágio', 'Temporário'], 'status' => 'Aberta', ]), ]; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings