Files
amare/app/Filament/Resources/WeddingPackages/Schemas/WeddingPackageForm.php
Manoel Freitas 484ac77ce7 feat: Home editorial conforme preview (header, footer, 8 seções) (#53)
* feat: modalidades de casamento e etapas corporativas

* feat: home editorial e header/footer conforme preview

* docs: proposta openspec home editorial

* test: CTA hero agora ancora #sobre conforme preview

* test: speed browser suite via visit reuse

Collapse route×viewport cartesian products, merge home motion
asserts, skip existing VisualContentSeeder JPEGs, ignore Screenshots.
2026-08-11 18:14:24 -03:00

58 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Filament\Resources\WeddingPackages\Schemas;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class WeddingPackageForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->label('Nome da modalidade')
->required()
->maxLength(255),
TextInput::make('level')
->label('Número / tipo (ex.: 01 / COMPLETA)')
->required()
->maxLength(255),
Textarea::make('summary')
->label('Resumo')
->required()
->rows(4),
Repeater::make('scope_items')
->label('O que está incluído')
->schema([
TextInput::make('item')
->label('Item')
->required()
->maxLength(255),
])
->defaultItems(4)
->minItems(1)
->addActionLabel('Adicionar item')
->required(),
TextInput::make('cta_label')
->label('Texto do botão')
->required()
->maxLength(255),
TextInput::make('sort_order')
->label('Ordem')
->numeric()
->default(0)
->required(),
DateTimePicker::make('published_at')
->label('Publicado em')
->seconds(false),
]);
}
}