schema([ TextInput::make('slug') ->label('Slug') ->required() ->unique(ignoreRecord: true) ->maxLength(255), KeyValue::make('title') ->label('Title (de/en)') ->keyLabel('locale') ->valueLabel('value') ->default(['de' => '', 'en' => '']) ->required(), SchemaTabs::make('content_tabs') ->label('Content Localization') ->tabs([ SchemaTab::make('German') ->icon('heroicon-o-language') ->schema([ MarkdownEditor::make('body_markdown.de') ->label('Content (German)') ->required() ->columnSpanFull(), ]), SchemaTab::make('English') ->icon('heroicon-o-language') ->schema([ MarkdownEditor::make('body_markdown.en') ->label('Content (English)') ->required() ->columnSpanFull(), ]), ]) ->columnSpanFull(), Toggle::make('is_published') ->label('Is Published') ->default(true), DatePicker::make('effective_from') ->label('Effective From') ->required(), TextInput::make('version') ->label('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'), ]; } }