/database/factories/ModelFactory.php

https://gitlab.com/Ellomend/tasks · PHP · 189 lines · 141 code · 35 blank · 13 comment · 2 complexity · 92d8ce426b62022f3a4225ea2018cb77 MD5 · raw file

  1. <?php
  2. /*
  3. |--------------------------------------------------------------------------
  4. | Model Factories
  5. |--------------------------------------------------------------------------
  6. |
  7. | Here you may define all of your model factories. Model factories give
  8. | you a convenient way to create models for testing and seeding your
  9. | database. Just tell the factory how a default model should look.
  10. |
  11. */
  12. /** @var \Illuminate\Database\Eloquent\Factory $factory */
  13. $factory->define(App\User::class, function (Faker\Generator $faker) {
  14. static $password;
  15. return [
  16. 'name' => $faker->name,
  17. 'email' => $faker->unique()->firstName.'@test.com',
  18. 'password' => $password ?: $password = bcrypt('secret'),
  19. 'remember_token' => str_random(10),
  20. ];
  21. });
  22. $factory->define(App\Task::class, function (Faker\Generator $faker) {
  23. $randomDate = function () {
  24. $random = rand(1,25);
  25. if ($random % 2 == 0) {
  26. return \Carbon\Carbon::today()->subDays($random)->format('Y-m-d');
  27. }
  28. return \Carbon\Carbon::today()->addDays($random)->format('Y-m-d');
  29. };
  30. return [
  31. 'name' => $faker->words(5, true),
  32. 'description' => $faker->paragraphs(3, true),
  33. // 'status' => $faker->randomElement(['active' ,'done', 'inbox', 'failed', 'moved', 'canceled', 'nailed']),
  34. 'status' => $faker->randomElement(['active', 'done']),
  35. 'type' => $faker->randomElement([1, 0]),
  36. 'start' => $randomDate,
  37. 'end' => $randomDate,
  38. 'user_id' => App\User::all()->random()->id
  39. ];
  40. });
  41. $factory->define(App\Context::class, function (Faker\Generator $faker) {
  42. return [
  43. 'name' => $faker->words(1, true),
  44. 'description' => $faker->paragraphs(3, true),
  45. 'color' => '#ff0000',
  46. 'user_id' => App\User::all()->random()->id
  47. ];
  48. });
  49. $factory->define(App\Mood::class, function (Faker\Generator $faker) {
  50. return [
  51. 'name' => $faker->words(1, true),
  52. 'description' => $faker->paragraphs(3, true),
  53. 'value' => rand(1,20),
  54. 'user_id' => App\User::all()->random()->id
  55. ];
  56. });
  57. $factory->define(App\Block::class, function (Faker\Generator $faker) {
  58. $startTime = \Carbon\Carbon::today()->addHours(rand(1, 9));
  59. $start = $startTime->format('H:i:s');
  60. $end = $startTime->addHours(rand(2, 9))->format('H:i:s');
  61. return [
  62. 'name' => $faker->words(1, true),
  63. 'description' => $faker->paragraphs(3, true),
  64. 'user_id' => App\User::all()->random()->id,
  65. 'start' => $start,
  66. 'end' => $end
  67. ];
  68. });
  69. $factory->define(\App\Goal::class, function (Faker\Generator $faker) {
  70. $startRand = rand(-20, 20);
  71. return [
  72. 'name' => $faker->words(1, true),
  73. 'description' => $faker->paragraphs(3, true),
  74. 'category_id' => \App\Category::all()->random()->id,
  75. 'priority' => $faker->randomDigitNotNull,
  76. 'points' => $faker->randomDigitNotNull,
  77. // 'type' => $faker->randomElement(['yearly' ,'monthly', 'weekly', 'daily', 'hourly', 'minutly', 'secondly']),
  78. 'type' => $faker->randomElement(['weekly', 'daily']),
  79. 'duration' => $faker->randomDigitNotNull,
  80. 'count' => $faker->randomDigitNotNull,
  81. 'start' => \Carbon\Carbon::now()->subDays($startRand)->toDateString(),
  82. 'user_id' => App\User::all()->random()->id
  83. ];
  84. });
  85. $factory->define(\App\Category::class, function (Faker\Generator $faker) {
  86. return [
  87. 'name' => $faker->words(1, true),
  88. 'description' => $faker->paragraphs(3, true)
  89. ];
  90. });
  91. $factory->define(\App\Project::class, function (Faker\Generator $faker) {
  92. return [
  93. 'name' => $faker->words(1, true),
  94. 'description' => $faker->paragraphs(3, true)
  95. ];
  96. });
  97. $factory->define(\App\Step::class, function (Faker\Generator $faker) {
  98. return [
  99. 'name' => $faker->words(1, true),
  100. 'description' => $faker->paragraphs(3, true),
  101. 'start_date' => \Carbon\Carbon::today()->toDateString(),
  102. 'end_date' => \Carbon\Carbon::tomorrow()->toDateString(),
  103. 'goal_id' => App\Goal::all()->random()->id,
  104. 'status' => $faker->randomElement(['active', 'done']),
  105. ];
  106. });
  107. $factory->define(\App\Routine::class, function (Faker\Generator $faker) {
  108. return [
  109. 'name' => $faker->words(1, true),
  110. 'description' => $faker->paragraphs(3, true),
  111. 'user_id' => App\User::all()->random()->id
  112. ];
  113. });
  114. $factory->define(\App\Chore::class, function (Faker\Generator $faker) {
  115. return [
  116. 'name' => $faker->words(1, true),
  117. 'description' => $faker->paragraphs(3, true),
  118. 'completed_at' => \Carbon\Carbon::today()->toDateString(),
  119. 'routine_id' => App\Routine::all()->random()->id,
  120. 'status' => $faker->randomElement(['active', 'done']),
  121. ];
  122. });
  123. $factory->define(\App\Stack::class, function (Faker\Generator $faker) {
  124. return [
  125. 'name' => $faker->words(1, true),
  126. 'description' => $faker->paragraphs(3, true),
  127. 'user_id' => App\User::all()->random()->id
  128. ];
  129. });
  130. $factory->define(\App\Item::class, function (Faker\Generator $faker) {
  131. return [
  132. 'name' => $faker->words(1, true),
  133. 'description' => $faker->paragraphs(3, true),
  134. 'stack_id' => App\Stack::all()->random()->id,
  135. 'status' => $faker->randomElement(['active', 'done']),
  136. ];
  137. });
  138. $factory->define(\App\Checklist::class, function (Faker\Generator $faker) {
  139. return [
  140. 'name' => $faker->words(1, true),
  141. 'description' => $faker->paragraphs(3, true),
  142. 'type' => rand(0,2),
  143. 'user_id' => App\User::all()->random()->id
  144. ];
  145. });
  146. $factory->define(\App\Point::class, function (Faker\Generator $faker) {
  147. return [
  148. 'name' => $faker->words(1, true),
  149. 'description' => $faker->paragraphs(3, true),
  150. 'checklist_id' => App\Checklist::all()->random()->id,
  151. 'status' => $faker->randomElement(['active', 'complete']),
  152. 'order' => $faker->randomNumber(1)
  153. ];
  154. });