@extends('layout') @section('styles') @endsection @section('content')
@if($user->avatar) {{ $user->name }} @else
{{ strtoupper(substr($user->name, 0, 1)) }}
@endif

{{ $user->name }}

@if($user->username){{ $user->username }} — @endif {{ $user->email }}

@php $isTalent = (!empty($user->is_talent) || ($user->role ?? '') === 'talent'); $isAdminKota = ($user->role ?? '') === 'admin_kota'; $adminKota = $isTalent && $user->admin_kota_id ? \App\Models\User::find($user->admin_kota_id) : null; @endphp @if($isTalent && $adminKota)

Fasilitator Operasional: {{ $adminKota->username }}

@endif @if($isTalent && $totalRatings > 0)

★ {{ number_format($averageRating, 1) }}/5 ({{ $totalRatings }} ulasan)

@endif @if(!$isTalent)

@if($isAdminKota) {{ $user->getAdminKotaLevelIcon() }} {{ $user->admin_kota_level ?? 'Pemula' }} @else {{ $user->getCustomerLevelLabel() }} @endif

@endif
@if(session('success')) @endif @php $isTalent = (!empty($user->is_talent) || ($user->role ?? '') === 'talent'); $isAdminKota = ($user->role ?? '') === 'admin_kota'; @endphp @if(!$isTalent) @if(!$isAdminKota) @php $completedCount = $user->bookings()->where('status', 'completed')->count(); $levelColor = $user->customer_level === 'gold' ? '#FFD700' : ($user->customer_level === 'silver' ? '#C0C0C0' : '#CD7F32'); $levelIcon = $user->customer_level === 'gold' ? '🥇' : ($user->customer_level === 'silver' ? '🥈' : '🥉'); $bgClass = $user->customer_level === 'gold' ? 'bg-warning text-dark' : ($user->customer_level === 'silver' ? 'bg-info text-white' : 'bg-secondary text-white'); @endphp
Status Member

Level Anda:

{{ $levelIcon }} {{ $user->getCustomerLevelLabel() }}

Mulai Sesi Selesai:

{{ $completedCount }} / 100


🥉 Bronze 0-9 Mulai Sesi selesai
🥈 Silver 10-99 Mulai Sesi selesai
🥇 Gold VIP 100+ Mulai Sesi selesai - Dapatkan diskon khusus!
@endif @endif
Update Profil
@csrf
@error('phone')
{{ $message }}
@enderror
@error('gender')
{{ $message }}
@enderror
@error('avatar')
{{ $message }}
@enderror
@if($isTalent || $isAdminKota)
@error('ktp')
{{ $message }}
@enderror @if($user->ktp_path) @endif
@endif
@if($isTalent || $isAdminKota)
@error('ktp_selfie')
{{ $message }}
@enderror @if($user->ktp_selfie_path) @endif
@endif
Batal
Galeri Foto (Max 4)

Upload hingga 4 foto profil

@csrf
Format: JPG, PNG, GIF. Ukuran max 5MB per foto.
@if($isTalent || $isAdminKota)
Bank Account
@php $hasBankData = !empty($user->bank_name) && !empty($user->bank_account_name) && !empty($user->bank_account_number); @endphp
@csrf
@error('bank_name')
{{ $message }}
@enderror
@error('bank_account_name')
{{ $message }}
@enderror
@error('bank_account_number')
{{ $message }}
@enderror
@if($hasBankData) @else @endif
@if($hasBankData)
Data bank sudah tersimpan. Untuk mengubah data bank, hubungi admin.
@endif
NPWP Details
@csrf
@error('nama_npwp')
{{ $message }}
@enderror
@error('nomor_npwp')
{{ $message }}
@enderror @php $npwpInput = old('nomor_npwp', $user->nomor_npwp ?? ''); $digits = preg_replace('/\D+/', '', $npwpInput); $formattedNpwp = ''; if ($digits !== '') { $d = $digits; $p1 = strlen($d) > 0 ? substr($d,0,2) : ''; $p2 = strlen($d) > 2 ? substr($d,2,3) : ''; $p3 = strlen($d) > 5 ? substr($d,5,3) : ''; $p4 = strlen($d) > 8 ? substr($d,8,1) : ''; $p5 = strlen($d) > 9 ? substr($d,9,3) : ''; $p6 = strlen($d) > 12 ? substr($d,12,3) : ''; $out = ''; if($p1 !== '') $out .= $p1; if($p2 !== '') $out .= '.' . $p2; if($p3 !== '') $out .= '.' . $p3; if($p4 !== '') $out .= '.' . $p4; if($p5 !== '') $out .= '-' . $p5; if($p6 !== '') $out .= '.' . $p6; $formattedNpwp = $out; } @endphp @if(!empty($npwpInput))
Preview: Orang Pribadi {{ $formattedNpwp }}
@endif
@endif @if($isAdminKota)
Admin Kota Level & Limit Mulai Sesi
@php $akLevel = $user->admin_kota_level ?? 'Pemula'; $akIcon = $user->getAdminKotaLevelIcon(); // Get booking limits from settings $bookingLimitPemula = (int) \App\Models\Setting::get('booking_limit_pemula'); $bookingLimitProfesional = (int) \App\Models\Setting::get('booking_limit_profesional'); // Get subscription fees from settings $profesionalCost = (int) \App\Models\Setting::get('sub_fee_admin_kota_profesional_coins'); $prioritasCost = (int) \App\Models\Setting::get('sub_fee_admin_kota_prioritas_coins'); $profesionalActive = (bool) (\App\Models\Setting::where('key','sub_fee_admin_kota_profesional_coins')->first()->active ?? true); $prioritasActive = (bool) (\App\Models\Setting::where('key','sub_fee_admin_kota_prioritas_coins')->first()->active ?? true); $subscriptionExpires = $user->subscription_expires_at ? \Carbon\Carbon::parse($user->subscription_expires_at) : null; $isExpired = $subscriptionExpires && $subscriptionExpires->isPast(); // Get current wallet/coin balance $wallet = \App\Models\Wallet::where('id_coin', $user->id)->first(); $currentCoins = $wallet ? $wallet->coins : 0; // Count bookings completed this month by talents under this admin_kota $currentMonth = \Carbon\Carbon::now()->month; $currentYear = \Carbon\Carbon::now()->year; $bookingCount = \App\Models\Booking::whereHas('talent', function($q) { $q->where('admin_kota_id', auth()->id()); })->where('status', 'completed') ->whereMonth('created_at', $currentMonth) ->whereYear('created_at', $currentYear) ->count(); // Determine limits based on current level $currentBookingLimit = $akLevel === 'Pemula' ? $bookingLimitPemula : ($akLevel === 'Profesional' ? $bookingLimitProfesional : null); $bookingPercentage = $currentBookingLimit ? min(($bookingCount / $currentBookingLimit) * 100, 100) : 0; @endphp

Level saat ini: {{ $akIcon }} {{ $akLevel }} @if($akLevel !== 'Pemula') Aktif @endif

Saldo Coin: {{ $currentCoins }} coins

@if($subscriptionExpires && $akLevel !== 'Pemula')
@if($isExpired) Langganan telah kadaluarsa pada {{ $subscriptionExpires->format('d M Y H:i') }} @else Berlaku sampai: {{ $subscriptionExpires->format('d M Y H:i') }}
({{ $subscriptionExpires->diffForHumans() }}) @endif
@endif

@if($akLevel !== 'Prioritas')

Status Limit Bulan Ini:

📊 Mulai Sesi Selesai: {{ $bookingCount }}/{{ $currentBookingLimit }} {{ round($bookingPercentage) }}%
@if($bookingPercentage >= 100)
Limit tercapai! Komisi tidak akan diterima untuk Mulai Sesi yang melebihi limit bulan ini.
@elseif($bookingPercentage >= 80)
Anda sudah menggunakan {{ round($bookingPercentage) }}% limit Mulai Sesi.
@endif

@endif

Struktur Level Admin Kota:

  • Pemula: {{ $bookingLimitPemula }} Mulai Sesi/bulan - Komisi terbatas
  • Profesional: {{ $bookingLimitProfesional }} Mulai Sesi/bulan - Komisi lebih besar
  • Prioritas: Unlimited Mulai Sesi - Komisi penuh tanpa batasan
Catatan: Jika Mulai Sesi melebihi limit bulan ini, komisi TIDAK akan diterima untuk pengiriman yang melebihi.
@if($akLevel === 'Pemula')
@csrf
@csrf
@elseif($akLevel === 'Profesional' && !$isExpired)
@csrf
Langganan aktif, tunggu expire untuk turun level @elseif($akLevel === 'Prioritas' && !$isExpired)
Anda di level tertinggi (Prioritas) - Unlimited Mulai Sesi!
Langganan berakhir: {{ $subscriptionExpires->format('d M Y H:i') }}
@elseif($isExpired)
Langganan Anda telah kadaluarsa
Level akan kembali ke Pemula, silahkan upgrade kembali jika ingin melanjutkan
@endif
Catatan: Langganan dibeli menggunakan coin dan berlaku per bulan. Setelah kadaluarsa, level kembali ke Pemula.
@endif @if($isTalent)
Talent Level & Langganan
@php // Always get talent_level from database $currentTalentLevel = $user->talent_level ?? 'expert'; $levelDisplay = $user->getTalentLevelLabel(); $levelIcon = $user->getTalentLevelIcon(); // Get subscription fees from settings $exclusiveCost = (int) \App\Models\Setting::get('sub_fee_exclusif_coins'); $eliteCost = (int) \App\Models\Setting::get('sub_fee_elite_coins'); $exclusiveActive = (bool) (\App\Models\Setting::where('key','sub_fee_exclusif_coins')->first()->active ?? true); $eliteActive = (bool) (\App\Models\Setting::where('key','sub_fee_elite_coins')->first()->active ?? true); $subscriptionExpires = $user->subscription_expires_at ? \Carbon\Carbon::parse($user->subscription_expires_at) : null; $isExpired = $subscriptionExpires && $subscriptionExpires->isPast(); @endphp

Level saat ini: {{ $levelIcon }} {{ $levelDisplay }} @if($currentTalentLevel !== 'expert') Aktif @endif

@if($subscriptionExpires && $currentTalentLevel !== 'expert')
@if($isExpired) Langganan telah kadaluarsa pada {{ $subscriptionExpires->format('d M Y H:i') }} @else Berlaku sampai: {{ $subscriptionExpires->format('d M Y H:i') }}
({{ $subscriptionExpires->diffForHumans() }}) @endif
@endif
@if($currentTalentLevel === 'expert')
@csrf
@csrf
@elseif($currentTalentLevel === 'exclusif' && !$isExpired)
@csrf
Langganan aktif, tunggu expire untuk turun level @elseif($currentTalentLevel === 'elite' && !$isExpired)
Anda di level tertinggi (Elite)
Langganan berakhir: {{ $subscriptionExpires->format('d M Y H:i') }}
@elseif($isExpired)
Langganan Anda telah kadaluarsa
Level akan kembali ke Expert, silahkan upgrade kembali jika ingin melanjutkan
@endif
Catatan: Langganan dibeli menggunakan coin dan berlaku per bulan. Setelah kadaluarsa, level kembali ke Expert.
@endif
Ubah Password
@csrf
@error('current_password')
{{ $message }}
@enderror
@error('password')
{{ $message }}
@enderror
Share Link Referral

Bagikan link referral Anda untuk mendapatkan komisi 1% dari setiap transaksi yang dilakukan oleh orang yang mendaftar melalui link Anda.

Total user yang daftar via link Anda: {{ $referralRegistrations }}

@if($referredUsers->count() > 0)
@foreach($referredUsers as $referredUser)
{{ $referredUser->name }} @if($referredUser->username) ({{ $referredUser->username }}) @endif
{{ $referredUser->created_at->format('d M Y') }}
@endforeach
@if($referredUsers->hasPages())
{{ $referredUsers->links('pagination::bootstrap-4') }}
@endif
@endif
Pilih tipe pendaftaran untuk link:
Info: Komisi 1% per transaksi. Setelah limit tercapai, Anda akan mendapat email notifikasi.
@endsection