components([ Forms\Components\Select::make('zone') ->label(__('Zonă')) ->options(array_combine(DamagePoint::ZONES, DamagePoint::ZONES)) ->searchable() ->required(), Forms\Components\Select::make('kind') ->label(__('Tip daună')) ->options(array_combine(DamagePoint::KINDS, DamagePoint::KINDS)) ->required(), Forms\Components\Select::make('severity') ->label(__('Gravitate')) ->options(DamagePoint::SEVERITIES) ->default('minor') ->required(), Forms\Components\Textarea::make('notes')->label(__('Observații'))->rows(2)->columnSpanFull(), ]); } public function table(Table $table): Table { return $table ->recordTitleAttribute('zone') ->columns([ Tables\Columns\TextColumn::make('zone')->label(__('Zonă'))->badge()->color('gray'), Tables\Columns\TextColumn::make('kind')->label(__('Tip')), Tables\Columns\TextColumn::make('severity') ->label(__('Gravitate')) ->formatStateUsing(fn ($s) => DamagePoint::SEVERITIES[$s] ?? $s) ->badge() ->colors(['gray' => ['minor'], 'warning' => ['medium'], 'danger' => ['severe']]), Tables\Columns\TextColumn::make('notes')->limit(40)->placeholder('—'), ]) ->headerActions([Actions\CreateAction::make()]) ->actions([Actions\EditAction::make(), Actions\DeleteAction::make()]) ->emptyStateHeading(__('Nicio daună marcată')) ->emptyStateDescription(__('Adaugă punctele de daună pe zone (capotă, ușă, aripă) cu tip și gravitate — formează harta de daune a mașinii.')); } }