schema([ TextInput::make('slug') ->label(__('admin.legal_pages.fields.slug')) ->required() ->unique(ignoreRecord: true) ->maxLength(255), KeyValue::make('title') ->label(__('admin.legal_pages.fields.title_localized')) ->keyLabel(__('admin.common.locale')) ->valueLabel(__('admin.common.value')) ->default(['de' => '', 'en' => '']) ->required(), SchemaTabs::make('content_tabs') ->label(__('admin.legal_pages.fields.content_localization')) ->tabs([ SchemaTab::make(__('admin.common.german')) ->icon('heroicon-o-language') ->schema([ MarkdownEditor::make('body_markdown.de') ->label(__('admin.legal_pages.fields.content_de')) ->required() ->columnSpanFull(), ]), SchemaTab::make(__('admin.common.english')) ->icon('heroicon-o-language') ->schema([ MarkdownEditor::make('body_markdown.en') ->label(__('admin.legal_pages.fields.content_en')) ->required() ->columnSpanFull(), ]), ]) ->columnSpanFull(), Toggle::make('is_published') ->label(__('admin.legal_pages.fields.is_published')) ->default(true), DatePicker::make('effective_from') ->label(__('admin.legal_pages.fields.effective_from')) ->required(), TextInput::make('version') ->label(__('admin.legal_pages.fields.version')) ->required() ->default('1.0') ->maxLength(20), ])->columns(2); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('id')->sortable(), Tables\Columns\TextColumn::make('slug')->badge(), Tables\Columns\TextColumn::make('version')->badge(), Tables\Columns\IconColumn::make('is_published')->boolean(), Tables\Columns\TextColumn::make('effective_from')->date(), Tables\Columns\TextColumn::make('created_at')->since(), ]) ->filters([]) ->actions([ Actions\EditAction::make(), ]) ->bulkActions([ Actions\DeleteBulkAction::make(), ]); } public static function getPages(): array { return [ 'index' => Pages\ListLegalPages::route('/'), 'view' => Pages\ViewLegalPage::route('/{record}'), 'edit' => Pages\EditLegalPage::route('/{record}/edit'), ]; } }