@extends('layouts.admin') @section('title', 'Admin') @section('content') @php $activeTab = request('tab', 'pelanggan'); @endphp {{-- Copy Mesej Modal --}} @if(session('new_slug'))

Akaun Berjaya Dibuat!

Salin mesej di bawah dan hantar kepada pelanggan:

Assalamualaikum ๐Ÿ‘‹ Akaun undangan digital anda telah berjaya dicipta di *SatuJiwa*! ๐Ÿ”— *Link Undangan:* satujiwa.my/{{ session('new_slug') }} ๐Ÿ” *Maklumat Login Dashboard:* Email: {{ session('new_email') }} Password: {{ session('new_password') }} ๐Ÿ“ฑ *Cara Setup:* 1. Pergi ke satujiwa.my/login 2. Login dengan email dan password di atas 3. Isi semua maklumat majlis anda 4. Klik *Simpan Perubahan* 5. Kongsi link undangan kepada tetamu anda Selamat menggunakan SatuJiwa! ๐ŸŒธ Hubungi kami jika ada sebarang pertanyaan.
@endif {{-- Reset Password Success Modal --}} @if(session('reset_user'))

Password Berjaya Ditukar!

Akaun: {{ session('reset_user') }}
Password Baru: {{ session('reset_password') }}

@endif {{-- PAGE HEADER --}}

Panel Admin

SatuJiwa ยท Urus pelanggan & undangan

{{-- STATS --}}
{{ $stats['total'] }}
Pelanggan
{{ $stats['aktif'] }}
Aktif
{{ $stats['tamat'] }}
Tamat
{{ $stats['pending'] }}
Pending
{{-- Tabs removed, already in sidebar --}} {{-- โ•โ• TAB: PELANGGAN โ•โ• --}} @if($activeTab == 'pelanggan')

Senarai Pelanggan

{{ $users->total() }} akaun
{{-- โ”€โ”€ CARIAN & FILTER โ”€โ”€ --}}
@forelse($users as $user) @php $status = !$user->invitation ? 'pending' : ($user->invitation->isExpired() ? 'tamat' : 'aktif'); @endphp
{{ $user->name }}
{{ $user->email }}
@if($user->invitation)
satujiwa.my/{{ $user->invitation->slug }} @if($user->vendor)
Vendor: {{ $user->vendor->name }}
@endif
@endif
@if(!$user->invitation) Pending @elseif($user->invitation->isExpired()) Tamat @else Aktif @endif @if($user->invitation)
Tamat: {{ $user->invitation->expires_at?->format('d/m/Y') }}
@endif
@if($user->invitation)
@csrf
@endif
@csrf @method('DELETE')
@empty
Tiada pelanggan dijumpai.
@endforelse
@if($users->hasPages())
{{ $users->links() }}
@endif
@endif {{-- โ•โ• TAB: BUAT AKAUN โ•โ• --}} @if($activeTab == 'buat')

Buat Akaun Baru

@csrf
satujiwa.my/โ€”
@if($errors->any())
@foreach($errors->all() as $error)
โ€ข {{ $error }}
@endforeach
@endif
@endif {{-- โ•โ• TAB: VENDOR โ•โ• --}} @if($activeTab == 'vendor')
{{-- Daftar Vendor Baru --}}

Daftar Vendor Baru

@csrf
{{-- Senarai Vendor --}}

Senarai Vendor Berdaftar

{{ $vendors->count() }} vendor
@forelse($vendors as $vendor)
{{ $vendor->name }}
{{ $vendor->email }}
Daftar pada: {{ $vendor->created_at->format('d M Y') }}
{{ $vendor->customers_count }}
Pelanggan
Aktif: {{ $vendor->active_customers }}
Login sebagai Vendor
@empty
Belum ada vendor berdaftar.
@endforelse
@endif {{-- โ•โ• TAB: TEMPLATE โ•โ• --}} @if($activeTab == 'template')

Muat Naik Template

@csrf

Boleh pilih banyak serentak. Nama fail automatik NP0001, NP0002...

Senarai Template

{{ $templates->count() }} keping
@forelse($templates as $tmp)
{{ $tmp->nama }} @if($tmp->category) {{ $tmp->category }} @endif
@csrf @method('DELETE')
@empty
Belum ada template.
@endforelse
@endif {{-- โ•โ• TAB: LAPORAN โ•โ• --}} @if($activeTab == 'report') @php $aktifPct = $stats['total'] > 0 ? round(($stats['aktif'] / $stats['total']) * 100) : 0; $tamatPct = $stats['total'] > 0 ? round(($stats['tamat'] / $stats['total']) * 100) : 0; $pendingPct = $stats['total'] > 0 ? round(($stats['pending'] / $stats['total']) * 100) : 0; @endphp {{-- Filter Laporan --}}

Tapis Data

Pendaftaran {{ $stats['analytics']['period_label'] }}
{{ $stats['analytics']['monthly_total'] }}
{{ $stats['analytics']['growth'] >= 0 ? 'โ†‘' : 'โ†“' }} {{ abs($stats['analytics']['growth']) }}% vs bln lalu
Kadar Penukaran
{{ $stats['analytics']['conversion'] }}%
Akaun vs Invitation
Jumlah Keseluruhan
{{ $stats['total'] }}
Pelanggan Berdaftar
Status Majlis
{{ $stats['aktif'] }} Aktif
{{ $stats['tamat'] }} Tamat
{{-- Left Column: Charts --}}

Pendaftaran Bulanan

Prestasi Pelanggan Setiap Vendor

{{-- Right Column: Side Stats & Performance Table --}}

Status Pelanggan

Aktif {{ $stats['aktif'] }} ({{ $aktifPct }}%)
Tamat {{ $stats['tamat'] }} ({{ $tamatPct }}%)

Kedudukan Vendor

@foreach($vendorPerformance as $vp) @endforeach
Vendor Akaun
{{ $vp->name }}
Bulan Ini
{{ $vp->customers_count }}
@endif {{-- Reset Password Modal --}} @endsection