use App\Enums\OfferStatus;
use App\Models\Project;
use App\Models\User;
use Illuminate\Database\Seeder;
class DemoTableSeeder extends Seeder
{
public function run()
{
factory(User::class)->create([
'id' => 2,
'external_id' => Uuid::uuid4(),
'name' => 'DaybydayCRM',
'password' => bcrypt('Daybydaycrm123'),
])->each(function ($user) {
$this->createData($user);
});
}
//
private function createData(User $user) {
factory(App\Models\Client::class, rand(1,5))->create(['user_id' => $user->id])->each(function ($client) use ($user) {
$project = null;
if(rand(1,3) == 2) {
$project = factory(Project::class)->create([
'client_id' => $client->id,
'user_created_id' => $user->id,
'user_assigned_id' => $user->id,
]);
});
factory(Lead::class, rand(3,7))->create([
'client_id' => $client->id,
'user_created_id' => $user->id,
'user_assigned_id' => $user->id,
])->each(function ($lead) use ($user){
$offer = factory(App\Models\Offer::class)->create([
'status' => OfferStatus::inProgress()->getStatus(),
'source_id' => $lead->id,
'client_id' => $lead->client_id,
'source_type' => Lead::class,
]);
};
});
}
}