{{--
@intent Componente de SEO elegível para inclusão em formulários administrativos.
@description Input amigável, integrado via Bootstrap 5 e Bootstrap Icons.
@compliance eMAG 3.1, WCAG 2.1 AA, CSS Grid + Subgrid.
@param Model $model Registro contendo a coluna 'metadata' (Opcional).
@param string $name Prefixo do input (Padrão: metadata[seo]).
--}}
@php
$prefix = $name ?? 'metadata[seo]';
$seoData = (isset($model) && isset($model->metadata['seo'])) ? $model->metadata['seo'] : [];
$uuid = str_random(8);
@endphp
Otimização para Motores de Busca (SEO)
{{-- ==================== PREVIEW DO SNIPPET (full width) ==================== --}}
Pré-visualização do Resultado de Busca
https://www.site.gov.br/pagina-exemplo
{{ $seoData['title'] ?? 'Título da Página — Exemplo' }}
{{ \Illuminate\Support\Str::limit($seoData['description'] ?? 'Descrição da página que aparece nos resultados de busca. Recomenda-se entre 120 e 160 caracteres para uma boa exibição.', 160) }}
{{-- ==================== GRID 2 COLUNAS PRINCIPAIS ==================== --}}
{{-- COLUNA 1: Meta Title + Keywords --}}
Recomendado: até 60 caracteres.0/70
{{-- COLUNA 2: Meta Description + Imagem --}}
Recomendado: entre 120 e 160 caracteres.0/160
@php
$mediaUrl = $seoData['image_url'] ?? '';
$mediaId = $seoData['image_id'] ?? '';
if (empty($mediaId) && !empty($mediaUrl)) {
$relativePath = str_replace('/storage/', '', parse_url($mediaUrl, PHP_URL_PATH));
$mediaId = \Illuminate\Support\Facades\DB::table('v2_gallery_media')
->where('file_path', $relativePath)
->value('id') ?? '';
}
@endphp
@include('v2-service-media::components.media-input', [
'name' => 'seo_image_id',
'label' => 'Imagem de Compartilhamento (Card)',
'accept' => 'image/*',
'currentId' => $mediaId,
'currentUrl' => $mediaUrl,
'ownerModule' => 'seo',
'help' => '1200×630px (2:1). Se vazio, usa a logo padrão do site.',
])