<?php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
use App\Models\UserProfile;
use App\Models\Professional;
use App\Models\ProfessionalId;
use Illuminate\Support\Facades\DB;
class UserFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $isOnce = true;
    protected $model = User::class;
    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        if($this->isOnce){
            $count = $this->count;
            DB::statement('SET FOREIGN_KEY_CHECKS=0;');
            UserProfile::factory()->count($count)->create();
            Professional::factory()->count($count)->create();
            ProfessionalId::factory()->count($count)->create();
            DB::statement('SET FOREIGN_KEY_CHECKS=1;');
            $this->isOnce = false;
        }
        return [
            'username' => $this->faker->name,
            'email' => Str::slug($this->faker->email),
            'role_id' => 3,
            'status' => "active",
            'verified' => 1,
            'display_name' => $this->faker->name,
            'uuid' => $this->faker->numerify( '####-####-####'),
            'app_id' =>config('desxpert.app_id'),
            'created_by'=> 1
        ];
    }
}