@php $isAdmin = auth()->user()?->isAdmin() ?? false; @endphp {{-- ===== HERO PROFIL PREMIUM ===== --}}
{{ strtoupper(substr($student->full_name, 0, 1)) }}
{{ $student->status === 'active' ? 'Aktif' : ucfirst($student->status) }}

{{ $student->full_name }}

NISN {{ $student->nisn ?: '-' }} NIS {{ $student->student_number ?: '-' }}

{{ $student->classRoom?->name ?: '-' }} {{ $student->department?->name ?: '-' }} TA {{ $student->academicYear?->name ?: '-' }}
{{-- ===== KPI STRIP ===== --}}

Dokumen Wajib

{{ $requiredDocumentSummary['uploaded'] }}/{{ $requiredDocumentSummary['total'] }}

{{ $requiredDocumentSummary['missing'] === 0 ? 'Lengkap semua' : 'Kurang ' . $requiredDocumentSummary['missing'] . ' dokumen' }}

Prestasi

{{ $student->achievements->count() }}

{{ $student->achievements->pluck('level')->filter()->unique()->count() }} tingkat berbeda

Orang Tua / Wali

{{ $student->parents->count() }}

{{ $student->parents->filter(fn ($parent) => filled($parent->phone_number))->count() }} punya nomor HP

Histori Akademik

{{ $student->academicHistories->count() }}

{{ $student->academicHistories->where('is_current', true)->count() === 1 ? 'Posisi saat ini tercatat' : 'Riwayat penempatan' }}

{{-- ===== PROGRES DOKUMEN WAJIB ===== --}}

Kelengkapan Dokumen Wajib

Upload & verifikasi dokumen wajib siswa

{{ $requiredDocumentSummary['percentage'] }}%
{{ $requiredDocumentSummary['missing'] === 0 ? 'Upload lengkap' : 'Kurang ' . $requiredDocumentSummary['missing'] }}
{{ $requiredDocumentSummary['verification_percentage'] }}%
Terverifikasi
Upload Dokumen Wajib {{ $requiredDocumentSummary['uploaded'] }}/{{ $requiredDocumentSummary['total'] }}
Verifikasi Dokumen Wajib {{ $requiredDocumentSummary['verified'] }}/{{ $requiredDocumentSummary['total'] }}
@if ($requiredDocumentSummary['missing_items']->isNotEmpty() || $requiredDocumentSummary['unverified_items']->isNotEmpty())
@foreach ($requiredDocumentSummary['missing_items'] as $missingDocument) Belum upload: {{ $missingDocument }} @endforeach @foreach ($requiredDocumentSummary['unverified_items'] as $unverifiedDocument) Belum valid: {{ $unverifiedDocument }} @endforeach
@endif
Kartu Identitas Siswa
Data dasar yang paling sering dipakai admin
Nama: {{ $student->full_name }}
NIS: {{ $student->student_number ?: '-' }}
NISN: {{ $student->nisn ?: '-' }}
NIK: {{ $student->nik ?: '-' }}
Jenis Kelamin: {{ $student->gender === 'L' ? 'Laki-laki' : 'Perempuan' }}
TTL: {{ $student->place_of_birth ?: '-' }}, {{ $student->date_of_birth?->format('d-m-Y') ?: '-' }}
Agama: {{ $student->religion ?: '-' }}
Kewarganegaraan: {{ $student->nationality ?: '-' }}
Status: {{ ucfirst($student->status) }}
Snapshot Akademik
Posisi siswa pada struktur akademik saat ini
Tahun Angkatan: {{ $student->academicYear?->name ?: '-' }}
Program Keahlian: {{ $student->department?->name ?: '-' }}
Kelas: {{ $student->classRoom?->name ?: '-' }}
Tanggal Masuk: {{ $student->entry_date?->format('d-m-Y') ?: '-' }}
Kontak dan Domisili
Saluran komunikasi dan alamat tempat tinggal siswa
No. HP: {{ $student->phone_number ?: '-' }}
Email: {{ $student->email ?: '-' }}
Alamat: {{ $student->address ?: '-' }}
Wilayah: {{ collect([$student->village, $student->district, $student->city, $student->province])->filter()->join(', ') ?: '-' }}
Kode Pos: {{ $student->postal_code ?: '-' }}
Timeline Akademik
Riwayat perpindahan dan status akademik siswa dari waktu ke waktu
@if ($student->academicHistories->isEmpty())
Belum ada histori akademik untuk siswa ini.
@else
@foreach ($student->academicHistories as $history)
@if ($history->is_current) @else @endif
{{ $history->academicYear?->name ?: '-' }} {{ $history->is_current ? 'Aktif Sekarang' : ucfirst($history->status) }}
{{ $history->classRoom?->name ?: '-' }}
{{ $history->department?->name ?: '-' }}

{{ $history->start_date?->format('d-m-Y') ?: '-' }} s/d {{ $history->end_date?->format('d-m-Y') ?: 'Sekarang' }}

@endforeach
@endif
Total Prestasi
{{ $student->achievements->count() }}
Prestasi Terakhir
{{ $student->achievements->first()?->achievement_year ?: 'Belum ada' }}
Tingkat Tertinggi
{{ $student->achievements->pluck('level')->filter()->first() ?: 'Belum diisi' }}
Ada Piagam
{{ $student->achievements->whereNotNull('certificate_file')->count() }}
Ringkasan Prestasi
Pantau cepat performa siswa, kelengkapan piagam, dan arah prestasi tanpa pindah ke modul utama.
{{ $student->achievements->whereNotNull('activity_photo')->count() }} prestasi ada foto {{ $student->achievements->pluck('category')->filter()->unique()->count() }} kategori tercatat
@if ($student->achievements->isEmpty())
Belum ada data prestasi untuk siswa ini.
@else
@foreach ($student->achievements as $achievement) @php $certificateUrl = $achievement->certificate_file ? asset('storage/' . $achievement->certificate_file) : null; $certificateExtension = $achievement->certificate_file ? strtolower(pathinfo($achievement->certificate_file, PATHINFO_EXTENSION)) : null; $certificateIsImage = $certificateExtension && in_array($certificateExtension, ['jpg', 'jpeg', 'png', 'webp']); @endphp
{{ $achievement->achievement_name }}
@if ($achievement->level) {{ $achievement->level }} @endif @if ($achievement->rank) {{ $achievement->rank }} @endif
Kategori
{{ $achievement->category ?: '-' }}
Penyelenggara
{{ $achievement->organizer ?: '-' }}
Waktu Prestasi
{{ $achievement->achievement_year ?: '-' }} · {{ $achievement->achievement_date?->format('d-m-Y') ?: '-' }}
@if ($achievement->description)
Keterangan
{{ $achievement->description }}
@endif
@if ($achievement->certificate_file) @if ($certificateIsImage) @else Buka Piagam @endif @endif @if ($achievement->activity_photo) @endif Edit Prestasi
@endforeach
@endif
Total Data
{{ $student->parents->count() }}
Ayah / Ibu
{{ $student->parents->whereIn('relation_type', ['father', 'mother'])->count() }}
No. HP Tersedia
{{ $student->parents->filter(fn ($parent) => filled($parent->phone_number))->count() }}
Ringkasan Kontak Keluarga
Pastikan relasi keluarga inti dan kontak penting siswa sudah tersimpan lengkap.
{{ $student->parents->where('relation_type', 'guardian')->count() }} data wali {{ $student->parents->filter(fn ($parent) => filled($parent->occupation))->count() }} pekerjaan terisi
@if ($student->parents->isEmpty())
Belum ada data orang tua/wali untuk siswa ini.
@else
@foreach ($student->parents as $parent)
{{ ucfirst($parent->relation_type === 'father' ? 'Ayah' : ($parent->relation_type === 'mother' ? 'Ibu' : 'Wali')) }} - {{ $parent->name }}
{{ ucfirst($parent->relation_type === 'father' ? 'Ayah' : ($parent->relation_type === 'mother' ? 'Ibu' : 'Wali')) }}
Pekerjaan
{{ $parent->occupation ?: '-' }}
No. HP
{{ $parent->phone_number ?: '-' }}
Pendidikan
{{ $parent->education ?: '-' }}
Edit @if ($isAdmin)
@csrf @method('DELETE')
@endif
@endforeach
@endif
Total Dokumen
{{ $student->documents->count() }}
Valid
{{ $student->documents->where('verification_status', 'valid')->count() }}
Perlu Revisi
{{ $student->documents->where('verification_status', 'revision')->count() }}
Pending
{{ $student->documents->where('verification_status', 'pending')->count() }}
Ringkasan Verifikasi
Pantau kualitas dokumen siswa dan percepat tindakan verifikasi dari satu tempat.
{{ $student->documents->where('verification_status', 'invalid')->count() }} invalid {{ $student->documents->filter(fn ($document) => filled($document->verified_by))->count() }} sudah diverifikasi
@if ($student->documents->isEmpty())
Belum ada dokumen siswa yang diunggah.
@else
@foreach ($student->documents as $document) @php $verificationMap = [ 'pending' => 'bg-slate-100 text-slate-600', 'valid' => 'bg-emerald-100 text-emerald-700', 'invalid' => 'bg-rose-100 text-rose-700', 'revision' => 'bg-amber-100 text-amber-700', ]; @endphp
{{ $document->documentType?->name ?: '-' }}
{{ ucfirst($document->verification_status) }} @if ($document->verified_at) Diverifikasi {{ $document->verified_at->format('d-m-Y H:i') }} @endif
Nama File
{{ $document->file_name }}
Format
{{ strtoupper($document->file_extension ?: '-') }}
Ukuran
{{ $document->file_size ? number_format($document->file_size / 1024, 1) . ' KB' : '-' }}
@if ($document->verifiedBy)
Diverifikasi Oleh
{{ $document->verifiedBy->name }}
@endif
@if ($document->verification_note)
Catatan Verifikasi
{{ $document->verification_note }}
@endif
Lihat Download Edit @if ($isAdmin)
@csrf
@csrf
@csrf
@csrf @method('DELETE')
@endif
@endforeach
@endif