{{ $curso->nome }}

{{ $curso->empresa->empresa_nome ?? 'Sem empresa' }} @if($curso->descricao) {{ $curso->descricao }} @endif

Informações do Curso

Dados gerais e configuração

Empresa
{{ $curso->empresa->empresa_nome ?? '—' }}
Tipo
@if ($curso->tipo) {{ $curso->tipo->nome }} @else @endif
Cadastrado / Alterado
{{ $curso->created_at ? $curso->created_at->format('d/m/Y H:i') : '—' }} / {{ $curso->updated_at ? $curso->updated_at->format('d/m/Y H:i') : '—' }}
Modalidade
@if ($curso->online) Online @endif @if ($curso->presencial) Presencial @endif @if (!$curso->online && !$curso->presencial) Não definida @endif
Disponível para Matrícula
@if ($curso->ativo_matricula) Ativo @else Inativo @endif
Disciplinas
{{ $disciplinas->count() }}
Matrículas
{{ $curso->matriculas->count() }}
Imagem de Capa
@php $imgCurso = null; if ($curso->moodle_image_path && Storage::disk('public')->exists($curso->moodle_image_path)) { $imgCurso = Storage::disk('public')->url($curso->moodle_image_path); } elseif ($curso->moodle_image_url) { $imgCurso = $curso->moodle_image_url; } @endphp @if ($imgCurso)
Imagem do curso
@else

Sem imagem cadastrada

@endif

Pré-requisitos

Cursos que o aluno deve ter cursado antes de se matricular neste

@if (isAdminPep()) @endif
{{-- Formulário de novo pré-requisito --}} @if ($showPrereqForm)

Novo pré-requisito

@error('prereq_curso_anterior_id') {{ $message }} @enderror
@error('prereq_obrigatorio') {{ $message }} @enderror
@error('prereq_exige_situacao_id') {{ $message }} @enderror

Aluno deve ter completado a duração mínima do curso anterior

Aluno não pode ter parcelas em atraso no curso anterior

@endif {{-- Lista de pré-requisitos --}}
@forelse ($prerequisitos as $prereq)
{{ $prereq->cursoAnterior->nome ?? '—' }}
@if ($prereq->obrigatorio) Obrigatório @else Só aviso @endif @if ($prereq->exige_periodo_minimo) Exige período mínimo @endif @if ($prereq->exige_adimplencia) Exige adimplência @endif @if ($prereq->exigeSituacao) Situação: {{ $prereq->exigeSituacao->nome }} @endif
@if (isAdminPep()) @endif
@empty

Nenhum pré-requisito cadastrado

Qualquer aluno pode se matricular neste curso

@endforelse
{{-- Ícone Moodle --}}

Integração Moodle (AVA)

@if ($hasMoodle) ● Integrado — Course ID: {{ $moodleCourseId }} @if ($moodleCategoryId) | Category ID: {{ $moodleCategoryId }} @endif @else ● Não integrado @endif

@if ($hasMoodle) @else @endif
{{-- Formulário de configuração Moodle --}} @if ($showMoodleForm)

Configurar integração Moodle

{{-- Campo URL --}}
{{-- Ou IDs diretos --}}
ou informe diretamente
@if ($moodleUrlInput) @else @endif
@endif {{-- Informações Moodle --}} @if ($hasMoodle)
@if ($curso->moodle_fullname || $curso->moodle_shortname || $curso->moodle_summary)
@if ($curso->moodle_fullname)
Nome completo (Moodle)
{{ $curso->moodle_fullname }}
@endif @if ($curso->moodle_shortname)
Nome curto (Moodle)
{{ $curso->moodle_shortname }}
@endif @if ($curso->moodle_synced_at)
Última sincronização
{{ $curso->moodle_synced_at->format('d/m/Y H:i') }}
@endif
@if ($curso->moodle_summary)
Resumo (Moodle)
{!! strip_tags($curso->moodle_summary, '


    1. ') !!}
@endif @else

Curso vinculado ao Moodle. Clique em "Carregar conteúdos" para visualizar as seções e atividades.

@endif {{-- Erro ao carregar conteúdos --}} @if ($moodleError)
{{ $moodleError }}
@endif {{-- Indicação de que os conteúdos foram carregados --}} @if (!empty($moodleTree['periodos']) || !empty($moodleTree['avulsas']))
✓ Conteúdos carregados ({{ count($moodleTree['periodos'] ?? []) }} período(s), {{ count($moodleTree['avulsas'] ?? []) }} avulsa(s))
@endif {{-- Loading Moodle --}}
Carregando conteúdos do Moodle...
@endif

Estrutura do Curso

{{ count($periodos) }} seção/período{{ count($periodos) === 1 ? '' : 's' }} · {{ $disciplinas->count() }} disciplina{{ $disciplinas->count() === 1 ? '' : 's' }}

@if (isAdminPep()) @endif
{{-- Formulário de disciplina --}} @if ($showDisciplinaForm)

{{ $editingDisciplinaId ? 'Editar disciplina' : 'Nova disciplina' }}

@error('disc_nome') {{ $message }} @enderror
@error('disc_descricao') {{ $message }} @enderror
@endif {{-- Formulário de Seção/Período --}} @if ($showPeriodoForm)

{{ $editingPeriodoId ? 'Editar Seção/Período' : 'Nova Seção/Período' }}

@error('per_nome') {{ $message }} @enderror
@error('per_descricao') {{ $message }} @enderror
@error('per_ordem') {{ $message }} @enderror
@endif {{-- ============================== --}} {{-- HIERARQUIA: PERÍODO > DISC > AULAS --}} {{-- ============================== --}}
{{-- Períodos / Seções --}} @forelse ($periodos as $periodo) @php $isSecao = ($periodo->tipo ?? 'periodo') === 'secao'; $borderColor = $isSecao ? 'border-indigo-200 dark:border-indigo-700/50' : 'border-amber-200 dark:border-amber-700/50'; $headerBg = $isSecao ? 'bg-indigo-50 dark:bg-indigo-900/20' : 'bg-amber-50 dark:bg-amber-900/20'; $badgeBg = $isSecao ? 'bg-indigo-100 dark:bg-indigo-900/40 text-indigo-700 dark:text-indigo-400' : 'bg-amber-100 dark:bg-amber-900/40 text-amber-700 dark:text-amber-400'; $textColor = $isSecao ? 'text-indigo-800 dark:text-indigo-300' : 'text-amber-800 dark:text-amber-300'; $subText = $isSecao ? 'text-indigo-600 dark:text-indigo-400/70' : 'text-amber-600 dark:text-amber-400/70'; $chevronColor = $isSecao ? 'text-indigo-500' : 'text-amber-500'; $tipoLabel = $isSecao ? 'Seção' : 'Período'; @endphp
{{-- Header do Período/Seção --}}
{{ $periodo->ordem ?? '#' }}

{{ $tipoLabel }}: {{ $periodo->nome }}

@if ($periodo->descricao)

{{ $periodo->descricao }}

@endif
@if (!$periodo->exibir) Oculto @endif {{ $periodo->disciplinas->count() }} disciplina{{ $periodo->disciplinas->count() === 1 ? '' : 's' }} @if (isAdminPep())
@endif
{{-- Disciplinas do Período --}}
@forelse ($periodo->disciplinas as $disciplina)
{{-- Header da Disciplina --}}
@if ($disciplina->ordem) {{ $disciplina->ordem }} @endif
{{ $disciplina->nome }} @if ($disciplina->descricao)

{{ $disciplina->descricao }}

@endif
@if ($disciplina->online) Online @endif @if ($disciplina->presencial) Presencial @endif
{{ $disciplina->conteudos->count() }} aula{{ $disciplina->conteudos->count() === 1 ? '' : 's' }}
@if (isAdminPep())
@endif
{{-- Conteúdos/Aulas da Disciplina --}}
@forelse ($disciplina->conteudos as $conteudo)
{{ $conteudo->ordem ?? '#' }}
{{ $conteudo->nome }} @if ($conteudo->tipo) {{ $conteudo->tipo }} @endif
@if (!$conteudo->exibir) Oculto @endif @if (isAdminPep())
@endif
@empty

Nenhuma aula cadastrada

@endforelse
@empty
Nenhuma disciplina neste período
@endforelse
@empty {{-- Sem períodos/seções cadastrados --}} @endforelse {{-- Disciplinas sem período (avulsas) --}} @if (count($disciplinasSemPeriodo) > 0)
{{-- Header --}}

Disciplinas sem período

Não vinculadas a nenhum período

{{ count($disciplinasSemPeriodo) }} disciplina{{ count($disciplinasSemPeriodo) === 1 ? '' : 's' }}
{{-- Disciplinas --}}
@foreach ($disciplinasSemPeriodo as $disciplina)
{{-- Header da Disciplina --}}
@if ($disciplina->ordem) {{ $disciplina->ordem }} @endif
{{ $disciplina->nome }} @if ($disciplina->descricao)

{{ $disciplina->descricao }}

@endif
@if ($disciplina->online) Online @endif @if ($disciplina->presencial) Presencial @endif
{{ $disciplina->conteudos->count() }} aula{{ $disciplina->conteudos->count() === 1 ? '' : 's' }}
@if (isAdminPep())
@endif
{{-- Conteúdos/Aulas --}}
@forelse ($disciplina->conteudos as $conteudo)
{{ $conteudo->ordem ?? '#' }}
{{ $conteudo->nome }} @if ($conteudo->tipo) {{ $conteudo->tipo }} @endif
@if (!$conteudo->exibir) Oculto @endif @if (isAdminPep())
@endif
@empty

Nenhuma aula cadastrada

@endforelse
@endforeach
@endif {{-- Estado vazio: sem períodos/seções e sem disciplinas --}} @if (count($periodos) === 0 && count($disciplinasSemPeriodo) === 0)

Nenhuma disciplina ou seção cadastrada

Adicione seções/períodos e disciplinas a este curso.

@endif
{{-- ════════════════════════════════════════════════════════════════ --}} {{-- MODAL: Conteúdos do Moodle (árvore hierárquica com vínculos) --}} {{-- Só fecha ao clicar no X --}} {{-- ════════════════════════════════════════════════════════════════ --}} @if ($showMoodleModal)
{{-- Overlay escuro (NÃO fecha ao clicar) --}}
{{-- Conteúdo do Modal --}}
{{-- Header do Modal --}}

Seções e conteúdos do Moodle

{{ count($moodleTree['periodos'] ?? []) }} período(s) · {{ count($moodleTree['avulsas'] ?? []) }} avulsa(s) · Course ID: {{ $moodleCourseId }}

{{-- Corpo do Modal (scrollável) --}}
{{-- ═══ PERÍODOS ═══ --}} @foreach ($moodleTree['periodos'] ?? [] as $pIndex => $periodo) @php $perSecId = (string) ($periodo['section']['id'] ?? ''); $perVinculado = isset($mapPeriodos[$perSecId]); $perLocalId = $mapPeriodos[$perSecId] ?? null; @endphp
{{-- Cabeçalho do Período --}}
@if ($perVinculado) @else @endif
SEC#{{ $periodo['section']['id'] ?? '—' }} 📁 {{ $periodo['section']['name'] ?? 'Sem nome' }} @if ($perVinculado) ✓ Vinculado @endif
{{ count($periodo['disciplinas'] ?? []) }} disc. @if ($perVinculado) @else @endif
{{-- Disciplinas dentro do período --}} @if (!empty($periodo['disciplinas']))
@foreach ($periodo['disciplinas'] as $dIndex => $disc) @php $discSecId = (string) ($disc['id'] ?? ''); $discVinculada = isset($mapDisciplinas[$discSecId]); $discLocalId = $mapDisciplinas[$discSecId] ?? null; @endphp
{{-- Cabeçalho da Disciplina --}}
@if ($discVinculada) @else @endif SEC#{{ $disc['id'] ?? '' }} 📄 {{ $disc['name'] ?? '' }} @if ($discVinculada) @endif
{{ count($disc['modules'] ?? []) }} mód. @if ($discVinculada) @else @endif
{{-- Módulos da Disciplina --}} @if (!empty($disc['modules']))
@foreach ($disc['modules'] as $mod) @php $modId = (string) ($mod['id'] ?? ''); $modVinculado = isset($modulosSalvos[$modId]); @endphp
@if ($modVinculado) @else @endif @if (!empty($mod['modicon'])) @endif {{ $mod['id'] ?? '' }} {{ $mod['name'] ?? '' }} {{ $mod['modname'] ?? '' }}
@if (!empty($mod['url'])) @endif @if ($modVinculado) @elseif ($discVinculada) @endif
@endforeach
@endif
@endforeach
@endif
@endforeach {{-- ═══ DISCIPLINAS AVULSAS (sem período) ═══ --}} @if (!empty($moodleTree['avulsas'])) @foreach ($moodleTree['avulsas'] as $avulsa) @php $avulsaId = (string) ($avulsa['id'] ?? ''); $avulsaVinculada = isset($mapDisciplinas[$avulsaId]); $avulsaLocalId = $mapDisciplinas[$avulsaId] ?? null; $isSecaoGeral = ($avulsa['section'] ?? -1) == 0; @endphp
@if ($avulsaVinculada) @elseif ($isSecaoGeral) @else @endif SEC#{{ $avulsa['id'] ?? '' }} {{ $isSecaoGeral ? '🏠' : '📄' }} {{ $avulsa['name'] ?? 'Sem nome' }} @if ($isSecaoGeral) (seção geral) @endif @if ($avulsaVinculada) ✓ Vinculada @endif
{{ count($avulsa['modules'] ?? []) }} mód. @if (!$isSecaoGeral) @if ($avulsaVinculada) @else @endif @endif
@if (!empty($avulsa['modules']))
@foreach ($avulsa['modules'] as $mod) @php $modId = (string) ($mod['id'] ?? ''); $modVinculado = isset($modulosSalvos[$modId]); @endphp
@if ($modVinculado) @else @endif @if (!empty($mod['modicon'])) @endif {{ $mod['id'] ?? '' }} {{ $mod['name'] ?? '' }} {{ $mod['modname'] ?? '' }}
@if (!empty($mod['url'])) @endif @if ($modVinculado) @elseif ($avulsaVinculada) @endif
@endforeach
@endif
@endforeach @endif
{{-- Footer do Modal --}}
Vinculado Período não importado Não importado
@endif