requiredMapping() ->label('PLANT CODE') ->exampleHeader('PLANT CODE') ->example(['1000']) ->relationship(resolveUsing: 'code') ->rules(['required']), ImportColumn::make('line') ->requiredMapping() ->label('LINE NAME') ->exampleHeader('LINE NAME') ->example(['4 inch pump line']) ->relationship(resolveUsing: 'name') ->rules(['required']), ImportColumn::make('machine.workGroupMaster.name') ->requiredMapping() ->label('GROUP WORK CENTER') ->exampleHeader('GROUP WORK CENTER') ->example('TESTGMG01') ->relationship() ->rules(['required']), ImportColumn::make('machine.work_center') ->requiredMapping() ->label('WORK CENTER') ->exampleHeader('WORK CENTER') ->example('TESTIMG01') ->relationship() // resolveUsing: 'work_center' ->rules(['required']), ImportColumn::make('motorTestingMaster.item.code') ->requiredMapping() ->label('ITEM CODE') ->exampleHeader('ITEM CODE') ->example('ITEM001') ->relationship() ->rules(['required']), ImportColumn::make('output') ->requiredMapping() ->label('OUTPUT ID') ->exampleHeader('OUTPUT ID') ->example('Output1') ->rules(['required']), ImportColumn::make('serial_number') ->requiredMapping() ->label('MOTOR SERIAL NUMBER') ->exampleHeader('MOTOR SERIAL NUMBER') ->example('12345678901234') ->rules(['required']), ImportColumn::make('winded_serial_number') ->requiredMapping() ->label('WINDED SERIAL NUMBER') ->exampleHeader('WINDED SERIAL NUMBER') ->example('98765432101234') ->rules(['required']), ImportColumn::make('before_fr_volt') ->requiredMapping() ->label('BEFORE FR VOLTAGE') ->exampleHeader('BEFORE FR VOLTAGE') ->example('0'), ImportColumn::make('before_fr_cur') ->requiredMapping() ->label('BEFORE FR CURRENT') ->exampleHeader('BEFORE FR CURRENT') ->example('0'), ImportColumn::make('before_fr_pow') ->requiredMapping() ->label('BEFORE FR POWER') ->exampleHeader('BEFORE FR POWER') ->example('0'), ImportColumn::make('before_fr_res_ry') ->requiredMapping() ->label('BEFORE FR RESISTANCE RY') ->exampleHeader('BEFORE FR RESISTANCE RY') ->example('0'), ImportColumn::make('before_fr_res_yb') ->requiredMapping() ->label('BEFORE FR RESISTANCE YB') ->exampleHeader('BEFORE FR RESISTANCE YB') ->example('0'), ImportColumn::make('before_fr_res_br') ->requiredMapping() ->label('BEFORE FR RESISTANCE BR') ->exampleHeader('BEFORE FR RESISTANCE BR') ->example('0'), ImportColumn::make('before_fr_ir') ->requiredMapping() ->label('BEFORE FR IR') ->exampleHeader('BEFORE FR IR') ->example('0'), ImportColumn::make('before_fr_ir_r') ->requiredMapping() ->label('BEFORE FR IR R') ->exampleHeader('BEFORE FR IR R') ->example('0'), ImportColumn::make('before_fr_ir_y') ->requiredMapping() ->label('BEFORE FR IR Y') ->exampleHeader('BEFORE FR IR Y') ->example('0'), ImportColumn::make('before_fr_ir_b') ->requiredMapping() ->label('BEFORE FR IR B') ->exampleHeader('BEFORE FR IR B') ->example('0'), ImportColumn::make('before_fr_freq') ->requiredMapping() ->label('BEFORE FR FREQUENCY') ->exampleHeader('BEFORE FR FREQUENCY') ->example('0'), ImportColumn::make('before_fr_speed') ->requiredMapping() ->label('BEFORE FR SPEED') ->exampleHeader('BEFORE FR SPEED') ->example('0'), ImportColumn::make('after_fr_vol') ->requiredMapping() ->label('AFTER FR VOLTAGE') ->exampleHeader('AFTER FR VOLTAGE') ->example('0'), ImportColumn::make('after_fr_cur') ->requiredMapping() ->label('AFTER FR CURRENT') ->exampleHeader('AFTER FR CURRENT') ->example('0'), ImportColumn::make('after_fr_pow') ->requiredMapping() ->label('AFTER FR POWER') ->exampleHeader('AFTER FR POWER') ->example('0'), ImportColumn::make('after_fr_ir_hot') ->requiredMapping() ->label('AFTER FR IR HOT') ->exampleHeader('AFTER FR IR HOT') ->example('0'), ImportColumn::make('after_fr_ir_hot_r') ->requiredMapping() ->label('AFTER FR IR HOT R') ->exampleHeader('AFTER FR IR HOT R') ->example('0'), ImportColumn::make('after_fr_ir_hot_y') ->requiredMapping() ->label('AFTER FR IR HOT Y') ->exampleHeader('AFTER FR IR HOT Y') ->example('0'), ImportColumn::make('after_fr_ir_hot_b') ->requiredMapping() ->label('AFTER FR IR HOT B') ->exampleHeader('AFTER FR IR HOT B') ->example('0'), ImportColumn::make('after_fr_ir_cool') ->requiredMapping() ->label('AFTER FR IR COOL') ->exampleHeader('AFTER FR IR COOL') ->example('0'), ImportColumn::make('after_fr_ir_cool_r') ->requiredMapping() ->label('AFTER FR IR COOL R') ->exampleHeader('AFTER FR IR COOL R') ->example('0'), ImportColumn::make('after_fr_ir_cool_y') ->requiredMapping() ->label('AFTER FR IR COOL Y') ->exampleHeader('AFTER FR IR COOL Y') ->example('0'), ImportColumn::make('after_fr_ir_cool_b') ->requiredMapping() ->label('AFTER FR IR COOL B') ->exampleHeader('AFTER FR IR COOL B') ->example('0'), ImportColumn::make('after_fr_freq') ->requiredMapping() ->label('AFTER FR FREQUENCY') ->exampleHeader('AFTER FR FREQUENCY') ->example('0'), ImportColumn::make('after_fr_speed') ->requiredMapping() ->label('AFTER FR SPEED') ->exampleHeader('AFTER FR SPEED') ->example('0'), ImportColumn::make('after_fr_leak_cur') ->requiredMapping() ->label('AFTER FR LEAK CURRENT') ->exampleHeader('AFTER FR LEAK CURRENT') ->example('0'), ImportColumn::make('locked_rt_volt') ->requiredMapping() ->label('LOCKED RT VOLTAGE') ->exampleHeader('LOCKED RT VOLTAGE') ->example('0'), ImportColumn::make('locked_rt_cur') ->requiredMapping() ->label('LOCKED RT CURRENT') ->exampleHeader('LOCKED RT CURRENT') ->example('0'), ImportColumn::make('locked_rt_pow') ->requiredMapping() ->label('LOCKED RT POWER') ->exampleHeader('LOCKED RT POWER') ->example('0'), ImportColumn::make('no_load_pickup_volt') ->requiredMapping() ->label('NO LOAD PICKUP VOLTAGE') ->exampleHeader('NO LOAD PICKUP VOLTAGE') ->example('0'), ImportColumn::make('room_temperature') ->requiredMapping() ->label('ROOM TEMPERATURE') ->exampleHeader('ROOM TEMPERATURE') ->example('0'), ImportColumn::make('hv_test') ->requiredMapping() ->label('HIGH VOLTAGE TEST') ->exampleHeader('HIGH VOLTAGE TEST') ->example('Not With Stood') ->rules(['required']), ImportColumn::make('batch_number') ->requiredMapping() ->label('BATCH NUMBER') ->exampleHeader('BATCH NUMBER') ->example('261231B001') ->rules(['required']), ImportColumn::make('batch_count') ->requiredMapping() ->label('BATCH COUNT') ->exampleHeader('BATCH COUNT') ->example('1') ->rules(['required']), ImportColumn::make('result') ->requiredMapping() ->label('RESULT') ->exampleHeader('RESULT') ->example('FAIL') ->rules(['required']), ImportColumn::make('remark') ->requiredMapping() ->label('REMARK') ->exampleHeader('REMARK') ->example('Testing Remark'), ImportColumn::make('rework_count') ->requiredMapping() ->label('REWORK COUNT') ->exampleHeader('REWORK COUNT') ->example('0') ->rules(['required']), ImportColumn::make('rework_winded') ->requiredMapping() ->label('REWORK WINDED STATUS') ->exampleHeader('REWORK WINDED STATUS') ->example('0') ->rules(['required']), ImportColumn::make('update_count') ->requiredMapping() ->label('UPDATED COUNT') ->exampleHeader('UPDATED COUNT') ->example('0') ->rules(['required']), ImportColumn::make('output_flag') ->requiredMapping() ->label('OUTPUT FLAG') ->exampleHeader('OUTPUT FLAG') ->example('0') ->rules(['required']), ImportColumn::make('tested_by') ->requiredMapping() ->label('TESTED BY') ->exampleHeader('TESTED BY') ->example('RAW01234') ->rules(['required']), ImportColumn::make('updated_by') ->requiredMapping() ->label('UPDATED BY') ->exampleHeader('UPDATED BY') ->example('RAW01234'), ImportColumn::make('scanned_at') ->requiredMapping() ->label('SCANNED AT') ->exampleHeader('SCANNED AT') ->example('01-01-2026 00:08:00') ->rules(['required']), ]; } public function resolveRecord(): ?TestingPanelReading { // return TestingPanelReading::firstOrNew([ // // Update existing records, matching them by `$this->data['column_name']` // 'email' => $this->data['email'], // ]); return new TestingPanelReading; } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your testing panel reading 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; } }