* chore: add husky pre-commit and pre-push hooks * feat: frontend audit — formulário de contato, a11y, SEO, performance e conteúdo * test: regenerate visual baselines from CI environment
59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers\PublicSite;
|
|
|
|
use App\Application\Data\PageMeta;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\SiteSetting;
|
|
use Illuminate\Contracts\View\View;
|
|
|
|
final class PageController extends Controller
|
|
{
|
|
public function about(): View
|
|
{
|
|
$settings = SiteSetting::instance();
|
|
|
|
return view('pages.about', [
|
|
'siteSettings' => $settings,
|
|
'pageMeta' => PageMeta::forPage(
|
|
canonical: route('about'),
|
|
settings: $settings,
|
|
title: PageMeta::withBrandSuffix('Sobre', $settings),
|
|
description: $settings->about_summary ?: ('Conheça a '.$settings->brand_name.'.'),
|
|
),
|
|
]);
|
|
}
|
|
|
|
public function privacy(): View
|
|
{
|
|
$settings = SiteSetting::instance();
|
|
|
|
return view('pages.privacy', [
|
|
'siteSettings' => $settings,
|
|
'pageMeta' => PageMeta::forPage(
|
|
canonical: route('privacy'),
|
|
settings: $settings,
|
|
title: PageMeta::withBrandSuffix('Política de privacidade', $settings),
|
|
description: 'Política de privacidade da '.$settings->brand_name.'.',
|
|
),
|
|
]);
|
|
}
|
|
|
|
public function contact(): View
|
|
{
|
|
$settings = SiteSetting::instance();
|
|
|
|
return view('pages.contact', [
|
|
'siteSettings' => $settings,
|
|
'pageMeta' => PageMeta::forPage(
|
|
canonical: route('contact'),
|
|
settings: $settings,
|
|
title: PageMeta::withBrandSuffix('Contato', $settings),
|
|
description: 'Fale com a '.$settings->brand_name.'.',
|
|
),
|
|
]);
|
|
}
|
|
}
|