requiredMapping() ->exampleHeader('Plant Name') ->example('Ransar Industries-I') ->label('Plant Name') ->relationship(resolveUsing: 'name') ->rules(['required']), ImportColumn::make('name') ->requiredMapping() ->exampleHeader('Guard Name') ->example('Shivaram') ->label('Guard Name') ->rules(['required']), ImportColumn::make('identification1') ->requiredMapping() ->exampleHeader('Identification 1') ->example('1234567890123456') ->label('Identification 1') ->rules(['required']), ImportColumn::make('identification2') ->requiredMapping() ->exampleHeader('Identification 2') ->example('') ->label('Identification 2'), ImportColumn::make('created_by') ->requiredMapping() ->exampleHeader('Created By') ->example(Filament::auth()->user()->name ?? 'Admin') ->label('Created By') ->rules(['required']), ]; } public function resolveRecord(): ?GuardName { $warnMsg = []; $plant = Plant::where('name', $this->data['plant'])->first(); if (!$plant) { $warnMsg[] = "Plant not found"; // '" . $this->data['plant'] . "' } if (Str::length($this->data['name']) < 3) { // || !ctype_alnum($this->data['name']) $warnMsg[] = "Invalid guard name found"; } if (Str::length($this->data['identification1']) < 5) { $warnMsg[] = "Invalid identification-1 found"; } $createdBy = $this->data['created_by']; if (Str::length($createdBy) < 3) { // || !ctype_alnum($createdBy) $warnMsg[] = "Invalid created by name found"; } if (!empty($warnMsg)) { throw new RowImportFailedException(implode(', ', $warnMsg)); } return GuardName::updateOrCreate([ 'name' => $this->data['name'], 'plant_id' => $plant->id ], [ 'identification1' => $this->data['identification1'], 'identification2' => $this->data['identification2'], 'created_by' => $this->data['created_by'] ] ); // // return GuardName::firstOrNew([ // // // Update existing records, matching them by `$this->data['column_name']` // // 'email' => $this->data['email'], // // ]); //return new GuardName(); } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your guard name import has completed and ' . number_format($import->successful_rows) . ' ' . str('row')->plural($import->successful_rows) . ' imported.'; if ($failedRowsCount = $import->getFailedRowsCount()) { $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to import.'; } return $body; } }