@extends('layouts.app') @section('title', $consultor->full_name . ' | Meu Perfil Detalhado') @push('styles') @endpush @section('content')

{{ $consultor->full_name }}

{{ $consultor->current_title ?? 'Profissional' }}

Atualizado em {{ $consultor->updated_at->format('d M Y') }}

{{ $consultor->experience_years ?? '0' }} anos de experiência
@php // Configuração completa de todas as colunas da tabela candidates $columnsConfig = [ // Dados Pessoais (Alta Prioridade) 'first_name' => ['name' => 'Nome', 'weight' => 4, 'category' => 'Dados Pessoais'], 'last_name' => ['name' => 'Sobrenome', 'weight' => 4, 'category' => 'Dados Pessoais'], 'date_of_birth' => ['name' => 'Data de Nascimento', 'weight' => 3, 'category' => 'Dados Pessoais'], 'gender' => ['name' => 'Género', 'weight' => 2, 'category' => 'Dados Pessoais'], 'nationality' => ['name' => 'Nacionalidade', 'weight' => 2, 'category' => 'Dados Pessoais'], // Contactos (Alta Prioridade) 'phone' => ['name' => 'Telefone', 'weight' => 4, 'category' => 'Contactos'], 'address' => ['name' => 'Endereço', 'weight' => 2, 'category' => 'Contactos'], // Localização (Média Prioridade) 'province_id' => ['name' => 'Província', 'weight' => 2, 'category' => 'Localização'], 'city' => ['name' => 'Cidade', 'weight' => 2, 'category' => 'Localização'], // Perfil Profissional (Alta Prioridade) 'current_title' => ['name' => 'Título Profissional', 'weight' => 5, 'category' => 'Perfil Profissional'], 'bio' => ['name' => 'Resumo Profissional', 'weight' => 3, 'category' => 'Perfil Profissional'], 'experience_years' => ['name' => 'Anos de Experiência', 'weight' => 4, 'category' => 'Perfil Profissional'], 'education_level' => ['name' => 'Nível de Educação', 'weight' => 3, 'category' => 'Perfil Profissional'], 'expected_salary' => ['name' => 'Expectativa Salarial', 'weight' => 2, 'category' => 'Perfil Profissional'], // Competências (Alta Prioridade) 'skills' => ['name' => 'Competências', 'weight' => 4, 'category' => 'Competências', 'type' => 'array'], 'languages' => ['name' => 'Idiomas', 'weight' => 3, 'category' => 'Competências', 'type' => 'array'], // Experiência & Educação (Muito Alta Prioridade) 'experiences' => ['name' => 'Experiência Profissional', 'weight' => 6, 'category' => 'Experiência & Educação', 'type' => 'array'], 'educations' => ['name' => 'Formação Académica', 'weight' => 5, 'category' => 'Experiência & Educação', 'type' => 'array'], // Licenças & Certificados (Média Prioridade) 'licenses' => ['name' => 'Licenças e Certificados', 'weight' => 2, 'category' => 'Licenças & Certificados', 'type' => 'array'], // Preferências (Baixa Prioridade) 'preferred_locations' => ['name' => 'Localizações Preferidas', 'weight' => 1, 'category' => 'Preferências', 'type' => 'array'], 'preferred_job_types' => ['name' => 'Tipos de Emprego Preferidos', 'weight' => 1, 'category' => 'Preferências', 'type' => 'array'], // Status (Baixa Prioridade) 'is_active' => ['name' => 'Perfil Ativo', 'weight' => 1, 'category' => 'Status'], 'is_available' => ['name' => 'Disponível para Trabalho', 'weight' => 1, 'category' => 'Status'], ]; // Inicializar variáveis $totalWeight = 0; $filledWeight = 0; $completionDetails = []; $categoryProgress = []; if (isset($consultor) && $consultor) { foreach ($columnsConfig as $column => $config) { $totalWeight += $config['weight']; $isFilled = false; $value = $consultor->$column; // Verificar se o campo está preenchido if (isset($config['type']) && $config['type'] === 'array') { // Campos do tipo array/JSON if (!empty($value)) { if (is_array($value) && count($value) > 0) { $filledWeight += $config['weight']; $isFilled = true; } elseif (is_string($value)) { $decoded = json_decode($value, true); if (is_array($decoded) && count($decoded) > 0) { $filledWeight += $config['weight']; $isFilled = true; } } } } else { // Campos normais if (!empty($value)) { $filledWeight += $config['weight']; $isFilled = true; } } // Armazenar detalhes $completionDetails[$column] = [ 'name' => $config['name'], 'filled' => $isFilled, 'weight' => $config['weight'], 'category' => $config['category'], 'value' => $value ]; // Calcular progresso por categoria if (!isset($categoryProgress[$config['category']])) { $categoryProgress[$config['category']] = [ 'total' => 0, 'filled' => 0, 'items' => [] ]; } $categoryProgress[$config['category']]['total'] += $config['weight']; if ($isFilled) { $categoryProgress[$config['category']]['filled'] += $config['weight']; } $categoryProgress[$config['category']]['items'][] = $config['name']; } $completionPercentage = $totalWeight > 0 ? round(($filledWeight / $totalWeight) * 100) : 0; } else { $completionPercentage = 0; $completionDetails = []; $categoryProgress = []; } @endphp

Estado do Meu CV

Complete seu perfil para aumentar suas chances

{{ $completionPercentage }}%
Completo
{{ $filledWeight }}/{{ $totalWeight }} pontos conquistados @if($completionPercentage >= 90) - Perfil completo e pronto para candidaturas! 🎉 @elseif($completionPercentage >= 70) - Perfil quase completo. Continue assim! 💪 @elseif($completionPercentage >= 50) - Perfil moderado. Complete mais dados. 📈 @else - Perfil básico. Complete seus dados. 🚀 @endif
Progresso por Categoria:
@foreach($categoryProgress as $category => $progress) @php $categoryPercentage = $progress['total'] > 0 ? round(($progress['filled'] / $progress['total']) * 100) : 0; @endphp
{{ $category }} {{ $categoryPercentage }}%
{{ $progress['filled'] }}/{{ $progress['total'] }} pontos
@endforeach
Itens para completar seu perfil:
  • Nome completo
  • Telefone
  • Título profissional
  • Anos de experiência
  • Data de nascimento
  • Formação académica
  • Experiência profissional
  • Idiomas
  • Resumo profissional
  • Endereço completo
{{ $consultor->applications->count() }}
Candidaturas Enviadas
{{ $consultor->applications->where('status', 'in_process')->count() }}
Em Processo
{{ $taxaResposta = $consultor->applications->count() > 0 ? round(($consultor->applications->where('status', 'in_process')->count() / $consultor->applications->count()) * 100) : 0 }}%
Taxa de Resposta
0
Vagas Guardadas
@push('scripts') @endpush @endsection