-
Notifications
You must be signed in to change notification settings - Fork 243
Expand file tree
/
Copy pathCaseStartedFactory.php
More file actions
84 lines (77 loc) · 2.79 KB
/
CaseStartedFactory.php
File metadata and controls
84 lines (77 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use ProcessMaker\Constants\CaseStatusConstants;
use ProcessMaker\Models\CaseStarted;
use ProcessMaker\Models\User;
use ProcessMaker\Repositories\CaseUtils;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\ProcessMaker\Models\CaseStarted>
*/
class CaseStartedFactory extends Factory
{
protected $model = CaseStarted::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
$users = User::get();
$caseNumber = fake()->unique()->randomNumber();
$caseTitle = fake()->words(4, true);
$dataKeywords = [
'case_number' => $caseNumber,
'case_title' => $caseTitle,
];
return [
'case_number' => $caseNumber,
'user_id' => $users->random()->id,
'case_title' => $caseTitle,
'case_title_formatted' => $caseTitle,
'case_status' => fake()->randomElement([CaseStatusConstants::IN_PROGRESS, CaseStatusConstants::COMPLETED]),
'processes' => array_map(function () {
return [
'id' => fake()->randomNumber(),
'name' => fake()->words(2, true),
];
}, range(1, 3)),
'requests' => [
[
'id' => fake()->randomNumber(),
'name' => fake()->words(2, true),
'parent_request' => fake()->randomNumber(),
],
[
'id' => fake()->randomNumber(),
'name' => fake()->words(3, true),
'parent_request' => fake()->randomNumber(),
],
],
'request_tokens' => array_map(fn () => fake()->randomElement([
fake()->randomNumber(),
fake()->randomNumber(),
fake()->randomNumber(),
]), range(1, 3)),
'tasks' => [
[
'id' => fake()->numerify('node_####'),
'name' => fake()->words(4, true),
],
[
'id' => fake()->numerify('node_####'),
'name' => fake()->words(3, true),
],
[
'id' => fake()->numerify('node_####'),
'name' => fake()->words(2, true),
],
],
'participants' => array_map(fn () => fake()->randomElement($users->pluck('id')->toArray()), range(1, 3)),
'initiated_at' => fake()->dateTime(),
'completed_at' => fake()->dateTime(),
'keywords' => CaseUtils::getKeywords($dataKeywords),
];
}
}