@foreach ($requiredDocs as $docId)
@php
$docData = collect($documentData)->firstWhere('c_document_id', $docId);
if (!$docData) continue;
// Prefer many_latest_files when available, otherwise fall back to latest_files or wpc_repa_file_details
if (!empty($docData['many_latest_files'])) {
$allFiles = $docData['many_latest_files']
?? $docData['latest_files']
?? $docData['wpc_repa_file_details']
?? [];
} else {
$allFiles = $docData['latest_files']
?? $docData['many_latest_files']
?? $docData['wpc_repa_file_details']
?? [];
}
// Normalise to a collection — wrap single-file arrays in an outer array
$filesCollection = collect(
isset($allFiles['id']) || isset($allFiles['c_file_path'])
? [$allFiles]
: $allFiles
);
// Find the file that matches the current license ID (or has no license ID)
$fileDetails = $filesCollection->first(function ($file) use ($licId) {
$fileLicId = $file['license_id'] ?? $file['n_license_id'] ?? null;
if (!empty($licId)) {
return (string) $fileLicId === (string) $licId;
}
return is_null($fileLicId);
});
$verified = $fileDetails['c_verified'] ?? null;
$nVer = $fileDetails['n_ver'] ?? 0;
$required = $docData['is_required'] ?? false;
$version = match ($verified) {
'N' => $nVer,
'R' => $nVer + 1,
default => 0,
};
if ($verified === 'R') {
// Rejected — clear file info so the upload form starts fresh
$fileName = '';
$filePath = '';
$signDetails = [];
} else {
$fileName = $fileDetails['c_file_name'] ?? '';
$filePath = $fileDetails['c_file_path'] ?? '';
$rawSignDetails = $fileDetails['sign_details'] ?? [];
$signDetails = is_string($rawSignDetails)
? json_decode($rawSignDetails, true)
: $rawSignDetails;
}
@endphp
@if ($verified === 'Y')
{{-- File is verified — show read-only status only --}}
@elseif ($verified === 'R')
{{-- File is rejected — show status banner, then re-upload form --}}
@if (isset($isSimpleDoc))
@else
@endif
@else
{{-- File is new / pending — show upload form directly --}}
@if (isset($isSimpleDoc))
@else
@endif
@endif
@endforeach