components([ Schemas\Components\Section::make() ->columns(2) ->schema([ Forms\Components\TextInput::make('name')->label('Denumire')->required() ->placeholder('ex: Revizie completă 15.000 km')->columnSpanFull(), Forms\Components\Select::make('category') ->label('Categorie') ->options(array_combine(Labor::CATEGORIES, Labor::CATEGORIES)) ->searchable(), Forms\Components\Toggle::make('is_active')->label('Activ')->default(true), Forms\Components\Textarea::make('notes')->label('Observații')->columnSpanFull()->rows(2), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('name')->searchable()->sortable(), Tables\Columns\TextColumn::make('category')->badge()->placeholder('—'), Tables\Columns\TextColumn::make('items_count')->counts('items')->label('Linii')->alignRight(), Tables\Columns\IconColumn::make('is_active')->label('Activ')->boolean(), ]) ->filters([ Tables\Filters\TernaryFilter::make('is_active')->label('Active'), ]) ->actions([ Actions\EditAction::make(), Actions\DeleteAction::make(), ]) ->emptyStateHeading('Niciun șablon') ->emptyStateDescription('Grupează manopere + piese frecvente într-un șablon (ex: „Schimb ulei complet") și aplică-l pe o fișă cu un click.') ->emptyStateIcon('heroicon-o-clipboard-document-list') ->defaultSort('name'); } public static function getRelations(): array { return [ RelationManagers\ItemsRelationManager::class, ]; } public static function getPages(): array { return [ 'index' => Pages\ListServiceTemplates::route('/'), 'create' => Pages\CreateServiceTemplate::route('/create'), 'edit' => Pages\EditServiceTemplate::route('/{record}/edit'), ]; } }