{{-- Vista BY-AXIS — mesa de trabajo cross-product, 1 eje a la vez. Cada eje renderiza columnas distintas con acciones inline contextuales. Es donde se sienta el owner del rol (designer / copywriter / dev) a trabajar. --}} @push('styles') @endpush @php $currentAxis = $data['axis']; $axisUrl = fn($a) => route('reseller.factory.index', ['view' => 'by-axis', 'axis' => $a]); $axesMeta = [ 'tecnico' => ['label' => '⚙️ Técnico', 'desc' => 'cert score, paridad vista↔schema↔admin↔json'], 'comercial' => ['label' => '💬 Comercial', 'desc' => 'copy del marketplace (tagline, persona, value props, etc)'], 'visual' => ['label' => '🖼️ Visual', 'desc' => 'imagen catálogo + assets de landing'], 'seeds' => ['label' => '📝 Seeds', 'desc' => 'JSON de contenido por módulo del core'], ]; @endphp
{{ $axesMeta[$currentAxis]['desc'] }} · ordenado por % asc (los más críticos arriba)
| Producto | Cert | Críticos | Dry-run | Real | Última cert | Acción | ||
|---|---|---|---|---|---|---|---|---|
|
{{ $row['name'] }}
{{ $row['slug'] }}
|
{{ $row['cert_score'] ?? '—' }}{{ $row['cert_score'] !== null ? '/100' : '' }} | @if($row['cert_critical'] > 0) ⚠ {{ $row['cert_critical'] }} @else ✓ @endif | @if($row['dryrun_pass'])✓@else○@endif | @if($row['real_pass'])✓@else○@endif | {{ $row['cert_at'] ? \Carbon\Carbon::parse($row['cert_at'])->diffForHumans() : '—' }} | {{ $row['cmd_recert'] }} |
||
| Producto | % | tagline | persona | pain | value | cta | keywords | Acción |
|
{{ $row['name'] }}
{{ $row['slug'] }}
|
{{ $row['pct'] }}% | @foreach(['tagline','target_persona','pain_points','value_props','cta_primary','keywords'] as $f)@if($row['fields'][$f]['filled']) ✓ @else ✗ @endif | @endforeachEditar | |||||
| Producto | % | Catálogo (/products-catalogue) |
Card | Hero | Parallax | Grid 1·2·3 | ||
|
{{ $row['name'] }}
{{ $row['slug'] }}
|
{{ $row['pct'] }}% | {{-- Catalog image --}}
@if($row['first_catalog'])
@endif
|
{{-- Card image --}}
@if($row['card_image'])
@endif
|
{{-- Hero --}}
@if($row['hero_poster'])
@endif
|
{{-- Parallax --}}
@if($row['parallax_image'])
@endif
|
{{-- Grid 1·2·3 --}}
@foreach(['grid_image_1','grid_image_2','grid_image_3'] as $g) @if($row[$g]) @else @endif @endforeach | ||
| Producto | % | Seeds por módulo del core | Faltantes | |||||
|
{{ $row['name'] }}
{{ $row['slug'] }}
|
{{ $row['pct'] }}% | @foreach($row['seeds'] as $mod => $info) @if($info['exists']) ✓ {{ $mod }} @else ✗ {{ $mod }} @endif @endforeach |
@if(count($missing) > 0)
Crear: {{ count($missing) }} seed(s) en
@foreach($missing as $m)
database/seeders/products/core/seeds/
{{ $m }}-{{ $row['core_slug'] }}.json
@endforeach
@else
completo
@endif
|
--verbose-details para ver qué falla.
@elseif($currentAxis === 'seeds')
Dev: cada seed faltante es un JSON nuevo en database/seeders/products/core/seeds/.
@endif