requiredMapping() ->exampleHeader('Created DateTime') ->example('30-01-2025 16:44:00') ->label('Created DateTime') ->rules(['required']), ImportColumn::make('plan_quantity') ->requiredMapping() ->exampleHeader('Plan Quantity') ->example('500') ->label('Plan Quantity') ->numeric() ->rules(['required', 'integer']), ImportColumn::make('production_quantity') ->requiredMapping() ->exampleHeader('Production Quantity') ->example('501') ->label('Production Quantity') ->numeric() ->rules(['required', 'integer']), ImportColumn::make('line') ->requiredMapping() ->exampleHeader('Line Name') ->example('4 inch pump line') ->label('Line Name') ->relationship(resolveUsing:'name') ->rules(['required']), ImportColumn::make('shift') ->requiredMapping() ->exampleHeader('Shift Name') ->example('Day') ->label('Shift Name') ->relationship(resolveUsing:'name') ->rules(['required']), ImportColumn::make('plant') ->requiredMapping() ->exampleHeader('Plant Name') ->example('Ransar Industries-I') ->label('Plant Name') ->relationship(resolveUsing:'name') ->rules(['required']), ImportColumn::make('updated_at') ->requiredMapping() ->exampleHeader('Updated DateTime') ->example('30-01-2025 19:11:00') ->label('Updated DateTime') ->rules(['required']), ]; } public function resolveRecord(): ?ProductionPlan { // return ProductionPlan::firstOrNew([ // // Update existing records, matching them by `$this->data['column_name']` // 'email' => $this->data['email'], // ]); return new ProductionPlan(); } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your production plan 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; } }