where('role', 'mechanic'); } public static function form(Schema $schema): Schema { return $schema->components([ Schemas\Components\Section::make('Date personale') ->columns(2) ->schema([ Forms\Components\TextInput::make('name')->label('Nume')->required()->maxLength(120), Forms\Components\TextInput::make('phone')->label('Telefon')->tel()->maxLength(40), Forms\Components\TextInput::make('email')->label('Email')->email()->maxLength(120), Forms\Components\Select::make('status') ->options(['active' => 'Activ', 'inactive' => 'Inactiv', 'blocked' => 'Blocat']) ->default('active') ->required(), ]), Schemas\Components\Section::make('Profesie') ->columns(2) ->schema([ Forms\Components\TextInput::make('specialization') ->label('Specializare') ->placeholder('Motor / Frâne / Electrică ...') ->maxLength(120), Forms\Components\ColorPicker::make('color')->label('Culoare în calendar'), Forms\Components\TextInput::make('hourly_rate')->label('Tarif/oră')->numeric(), Forms\Components\Hidden::make('role')->default('mechanic'), ]), Schemas\Components\Section::make('Acces în aplicație (opțional)') ->columns(1) ->collapsed() ->schema([ Forms\Components\TextInput::make('password') ->label('Parolă (lasă gol pentru a nu schimba)') ->password() ->minLength(6) ->dehydrated(fn ($state) => filled($state)) ->dehydrateStateUsing(fn ($state) => Hash::make($state)), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ Tables\Columns\ColorColumn::make('color')->label(''), Tables\Columns\TextColumn::make('name')->searchable()->sortable(), Tables\Columns\TextColumn::make('specialization')->label('Specializare')->placeholder('—'), Tables\Columns\TextColumn::make('phone')->copyable()->placeholder('—'), Tables\Columns\TextColumn::make('hourly_rate')->label('Tarif/h')->money('MDL')->alignRight()->placeholder('—'), Tables\Columns\TextColumn::make('status') ->badge() ->colors([ 'success' => ['active'], 'warning' => ['inactive'], 'danger' => ['blocked'], ]), ]) ->actions([ Actions\EditAction::make(), Actions\DeleteAction::make(), ]) ->defaultSort('name'); } public static function getPages(): array { return [ 'index' => Pages\ListMasters::route('/'), 'create' => Pages\CreateMaster::route('/create'), 'edit' => Pages\EditMaster::route('/{record}/edit'), ]; } }