components([ TextInput::make('name') ->label('Ady') ->required(), TextInput::make('price') ->label('Bahasy') ->required() ->numeric() ->prefix('TMT'), TextInput::make('price_unit') ->label('Baha birligi') ->required() ->default('kg'), TextInput::make('sort_order') ->label('Tertip') ->required() ->numeric() ->default(0), Toggle::make('is_active') ->label('Işjeň') ->default(true), Textarea::make('description') ->label('Beýany') ->rows(3) ->columnSpanFull(), FileUpload::make('image') ->label('Surat') ->image() ->disk('public') ->directory('signature-items') ->columnSpanFull(), ]); } public static function table(Table $table): Table { return $table ->columns([ ImageColumn::make('image') ->label('Surat') ->disk('public') ->circular(), TextColumn::make('name') ->label('Ady') ->searchable(), TextColumn::make('price') ->label('Bahasy') ->formatStateUsing(fn ($state) => number_format($state, 2).' TMT / ') ->sortable(), TextColumn::make('price_unit') ->label('Birlik'), IconColumn::make('is_active') ->label('Işjeň') ->boolean(), TextColumn::make('sort_order') ->label('Tertip') ->numeric() ->sortable(), TextColumn::make('created_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->defaultSort('sort_order') ->filters([]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } public static function getPages(): array { return [ 'index' => ManageSignatureItems::route('/'), ]; } }