requiredMapping() ->exampleHeader('Plant Name') ->example('Ransar Industries-I') ->label('Plant Name') ->relationship(resolveUsing: 'name') ->rules(['required']), ImportColumn::make('invoice_number') ->requiredMapping() ->exampleHeader('Invoice Number') ->example('3RA002514') ->label('Invoice Number') ->rules(['required']), ImportColumn::make('serial_number') ->requiredMapping() ->exampleHeader('Serial Number') ->example('25145441154545') ->label('Serial Number') ->rules(['required']), ImportColumn::make('pallet_number') ->exampleHeader('Pallet Number') ->example('') ->label('Pallet Number'), ImportColumn::make('locator_number') ->exampleHeader('Locator Number') ->example('') ->label('Locator Number'), ImportColumn::make('scanned_status') ->exampleHeader('Scanned Status') ->example('') ->label('Scanned Status'), ImportColumn::make('upload_status') ->requiredMapping() ->exampleHeader('Upload Status') ->example('Y') ->label('Upload Status') ->rules(['required']), ImportColumn::make('created_by') ->requiredMapping() ->exampleHeader('Created By') ->example('admin') ->label('Created By') ->rules(['required']), ImportColumn::make('scanned_by') ->exampleHeader('Scanned By') ->example('admin') ->label('Scanned By'), ImportColumn::make('updated_by') ->exampleHeader('Updated By') ->example('admin') ->label('Updated By'), ImportColumn::make('reworked_by') ->exampleHeader('Reworked By') ->example('admin') ->label('Reworked By'), ImportColumn::make('created_at') ->exampleHeader('Created At') ->example('2025-06-17 08:42:16') ->label('Created At') ->rules(['date_format:Y-m-d H:i:s']), ImportColumn::make('scanned_at') ->exampleHeader('Scanned At') ->example('2025-06-17 08:42:16') ->label('Scanned At') ->rules(['date_format:Y-m-d H:i:s']), ImportColumn::make('reworked_at') ->exampleHeader('Reworked At') ->example('2025-06-17 08:42:16') ->label('Reworked At') ->rules(['date_format:Y-m-d H:i:s']), ]; } public function resolveRecord(): ?ReworkLocatorInvoiceValidation { // return ReworkLocatorInvoiceValidation::firstOrNew([ // // Update existing records, matching them by `$this->data['column_name']` // 'email' => $this->data['email'], // ]); return new ReworkLocatorInvoiceValidation(); } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your rework locator invoice validation 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; } }