components([ Schemas\Components\Section::make()->columns(2)->schema([ Forms\Components\TextInput::make('code')->label(__('Cod'))->required()->maxLength(32), Forms\Components\TextInput::make('name')->label(__('Denumire'))->required()->maxLength(120), Forms\Components\TextInput::make('address')->label(__('Adresă'))->columnSpanFull()->maxLength(200), Forms\Components\Toggle::make('is_default')->label(__('Depozit implicit')), Forms\Components\Toggle::make('is_active')->label(__('Activ'))->default(true), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\TextColumn::make('code')->searchable()->sortable(), Tables\Columns\TextColumn::make('name')->searchable()->sortable(), Tables\Columns\TextColumn::make('address')->placeholder('—')->toggleable(), Tables\Columns\IconColumn::make('is_default')->label(__('Implicit'))->boolean(), Tables\Columns\IconColumn::make('is_active')->label(__('Activ'))->boolean(), Tables\Columns\TextColumn::make('batches_count') ->counts('batches') ->label(__('Loturi')) ->alignRight(), ]) ->actions([ Actions\EditAction::make(), Actions\DeleteAction::make(), ]) ->emptyStateHeading(__('Niciun depozit')) ->emptyStateDescription(__('Un depozit implicit a fost creat la migrare. Adaugă altele dacă ai locații fizice separate (sucursală, hală, mobil).')) ->emptyStateIcon('heroicon-o-building-storefront') ->defaultSort('code'); } public static function getPages(): array { return [ 'index' => Pages\ListWarehouses::route('/'), 'create' => Pages\CreateWarehouse::route('/create'), 'edit' => Pages\EditWarehouse::route('/{record}/edit'), ]; } }