@extends('admin.layout') @php $isEdit = $mitra->exists; $action = $isEdit ? route('admin.mitra.update', $mitra) : route('admin.mitra.store'); $status = old('verification_status', $mitra->verification_status->value ?? 'pending'); $input = 'w-full rounded-xl border border-line px-3.5 py-2.5 text-sm outline-none focus:border-brand focus:ring-2 focus:ring-brand/20'; @endphp @section('title', $isEdit ? 'Ubah Mitra' : 'Tambah Mitra') @section('subtitle', $isEdit ? $mitra->user?->name : 'Daftarkan mitra baru dari CMS') @section('content') ‹ Kembali
@csrf @if ($isEdit) @method('PUT') @endif

Akun

@error('name')

{{ $message }}

@enderror
@error('phone')

{{ $message }}

@enderror
@error('email')

{{ $message }}

@enderror
@error('password')

{{ $message }}

@enderror

Profil mitra

{{-- Foto profil: yang tampil sebagai avatar mitra di aplikasi. Kosong berarti aplikasi memakai inisial namanya. --}}
@if ($mitra->user?->avatarUrl()) Foto {{ $mitra->user->name }} @else
{{ $mitra->user?->initials() ?: '—' }}
@endif
@error('avatar')

{{ $message }}

@enderror @if ($mitra->user?->avatarUrl()) @endif
@error('bio')

{{ $message }}

@enderror
@error('address')

{{ $message }}

@enderror
@error('area_note')

{{ $message }}

@enderror
{{-- Titik peta. Kolom lat/lng tetap ada dan tetap bisa diketik manual (koordinat hasil salin-tempel masih dipakai), tapi yang biasa dipakai adalah menandainya di peta — sama seperti layar Ubah Profil di aplikasi mitra. --}}

Klik peta untuk menandai, atau geser penandanya. Tanpa titik, mitra ini tidak pernah ikut dihitung pada pencocokan order terdekat.

@error('lat')

{{ $message }}

@enderror
@error('lng')

{{ $message }}

@enderror
@error('verification_status')

{{ $message }}

@enderror
{{-- Unggah KTP tidak lagi ada di form ini. KTP yang sudah pernah terunggah tetap tersimpan dan tetap bisa dilihat di halaman detail Mitra; verifikasi kini bersandar pada dokumen. --}}

Foto pekerjaan

Tampil di portofolio mitra pada aplikasi. Keterangan boleh diubah; centang “Hapus” untuk membuang fotonya saat disimpan.

@if ($mitra->workPhotos->count())
@foreach ($mitra->workPhotos as $photo)
@if ($photo->url()) {{ $photo->label ?? 'Foto pekerjaan' }} @else Tanpa gambar @endif
@endforeach
@else

Belum ada foto pekerjaan.

@endif {{-- Tiga slot unggah sekaligus: cukup untuk sekali input dari CMS, dan tiap slot punya keterangannya sendiri. --}}
@for ($i = 0; $i < 3; $i++)
@endfor @error('work_photos.*')

{{ $message }}

@enderror

Dokumen & sertifikasi

Sertifikat, SIUP, atau berkas pendukung verifikasi. PDF/JPG/PNG, maksimal 8 MB per berkas. Berkasnya tersimpan privat — hanya bisa dibuka dari CMS ini.

@if ($mitra->exists && $mitra->documents->count())
@foreach ($mitra->documents as $doc)
{{ $doc->name }} {{ $doc->mime ?? '—' }} @if ($doc->size) · {{ $doc->size >= 1048576 ? number_format($doc->size / 1048576, 1).' MB' : max(1, (int) round($doc->size / 1024)).' KB' }} @endif · {{ $doc->created_at?->translatedFormat('d M Y') }}
@endforeach
@else

Belum ada dokumen.

@endif {{-- Tiga slot sekaligus, mengikuti pola Foto pekerjaan di atas. --}}
@for ($i = 0; $i < 3; $i++)
@endfor @error('documents.*')

{{ $message }}

@enderror @error('document_names.*')

{{ $message }}

@enderror
{{-- Pemilihan kategori/jasa sengaja tidak ada di form ini: pencocokan mitra dengan pekerjaan akan ditentukan AI, bukan dicentang manual. Relasi `categories` dan data yang sudah ada tidak dihapus — hanya tidak lagi bisa diubah dari sini. --}}
Batal
{{-- Peta pemilih titik. Leaflet + tile OSM, sama seperti peta di aplikasi, jadi titik yang ditandai admin dan yang ditandai mitra berasal dari peta yang sama persis. Geocoding lewat endpoint sendiri (/api/geocode/*), bukan langsung ke Nominatim: cache dan User-Agent-nya sudah diurus di sana. --}} @endsection