Your IP : 216.73.216.79


Current Path : /var/www/html/redd/database/seeders/
Upload File :
Current File : /var/www/html/redd/database/seeders/BackendUserSeeder.php

<?php

namespace Database\Seeders;

use App\Models\Backend\BackendUser;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Spatie\Activitylog\Models\Activity;

class BackendUserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // Disable activity log temporarily
        activity()->disableLogging();

        $backendUser = BackendUser::updateOrCreate(
            ['email' => 'superadmin@example.com'],
            [
                'username' => 'superadmin',
                'password' => Hash::make('password'),
                'first_name' => 'Super',
                'last_name' => 'Admin',
                'is_active' => true,
                'email_verified_at' => now(),
                'last_login_at' => now(),
            ]
        );

        // Re-enable logging
        activity()->enableLogging();

        // Delete any existing seeder log to avoid duplicate
        Activity::where('log_name', 'Backend User Seeder')->delete();

        // Create single manual activity log
        activity()
            ->causedBy($backendUser)
            ->tap(function (Activity $activity) use ($backendUser) {
                $activity->log_name = 'Backend User Seeder';
                $activity->subject_type = 'App\Models\Backend\BackendUser';
                $activity->subject_id = $backendUser->id;  // Fixed: use actual ID instead of string
                $activity->event = 'seeded';
                $activity->causer_type = 'App\Models\Backend\BackendUser';
                $activity->causer_id = $backendUser->id;
                $activity->attribute_changes = [
                    "old" => [
                        "email" => "superadmin@example.com",
                        "username" => "superadmin",
                        "is_active" => true,
                        "last_name" => "Admin",
                        "first_name" => "Super",
                        "last_login_at" => now(),
                    ],
                    "attributes" => [
                        "email" => "superadmin@example.com",
                        "username" => "superadmin",
                        "is_active" => true,
                        "last_name" => "Admin",
                        "first_name" => "Super",
                        "last_login_at" => now(),
                    ]
                ];
                $activity->url = request()?->fullUrl();
                $activity->ip_address = request()?->ip();
                $activity->user_agent = request()?->userAgent();
            })
            ->log('Backend user seeded successfully');
    }
}