You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.3 KiB
62 lines
2.3 KiB
<?php
|
|
|
|
use App\Business;
|
|
use App\User;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class TaskSeeder extends Seeder
|
|
{
|
|
public function run()
|
|
{
|
|
/** @var User $owner */
|
|
// every project has it's own tasks
|
|
|
|
/**
|
|
* Every task has it's own tags, which must be present in business that this tags belongs to it.
|
|
*/
|
|
$businesses = Business::with('owners', 'projects')->get();
|
|
$tasks = [];
|
|
|
|
$left = count($businesses);
|
|
$now = Carbon::now()->toDateTimeString();
|
|
$future = Carbon::now()->addDays(10)->toDateTimeString();
|
|
foreach ($businesses as $business) {
|
|
foreach ($business->owners as $owner) {
|
|
foreach ($business->projects as $project) {
|
|
foreach ($business->members as $member) {
|
|
for ($i = 1; $i <= 30; $i++) {
|
|
foreach ($business->workflows as $workflow) {
|
|
$status = $workflow->workstatuses->random();
|
|
$tasks[] = [
|
|
'business_id' => $business->id,
|
|
// 'creator_id' => $owner->id,
|
|
// 'project_id' => $project->id,
|
|
// 'user_id' => $member->id,
|
|
// 'workflow_id' => $workflow->id,
|
|
// 'work_status_id' => $status->id,
|
|
// 'name' => 'Task #' . rand(111111, 999999),
|
|
// 'time' => "10:00:00",
|
|
// 'cost' => 10000,
|
|
// 'completed' => $status->done,
|
|
// 'due_date' => $status->done ? $now : $future,
|
|
];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$this->command->info(--$left . " Business is left.");
|
|
}
|
|
|
|
dd('here');
|
|
$chunks = array_chunk($tasks, 1000);
|
|
$number = count($chunks);
|
|
foreach ($chunks as $value) {
|
|
DB::table('tasks')->insert($value);
|
|
$this->command->info(--$number . " Chunk is left.");
|
|
}
|
|
}
|
|
}
|