$this->faker->text(20), 'category_id' => Category::factory(), 'location_id' => Location::factory(), 'serial' => $this->faker->uuid(), 'qty' => $this->faker->numberBetween(3, 10), 'order_number' => $this->faker->numberBetween(1000000, 50000000), 'purchase_date' => $this->faker->dateTime()->format('Y-m-d'), 'purchase_cost' => $this->faker->randomFloat(2), 'min_amt' => $this->faker->numberBetween($min = 1, $max = 2), 'company_id' => Company::factory(), 'supplier_id' => Supplier::factory(), ]; } public function ramCrucial4() { return $this->state(function () { return [ 'name' => 'Crucial 4GB DDR3L-1600 SODIMM', 'category_id' => function () { return Category::where('name', 'RAM')->first() ?? Category::factory()->componentRamCategory(); }, 'qty' => 10, 'min_amt' => 2, 'location_id' => Location::factory(), ]; }); } public function ramCrucial8() { return $this->state(function () { return [ 'name' => 'Crucial 8GB DDR3L-1600 SODIMM Memory for Mac', 'category_id' => function () { return Category::where('name', 'RAM')->first() ?? Category::factory()->componentRamCategory(); }, 'qty' => 10, 'min_amt' => 2, ]; }); } public function ssdCrucial120() { return $this->state(function () { return [ 'name' => 'Crucial BX300 120GB SATA Internal SSD', 'category_id' => function () { return Category::where('name', 'HDD/SSD')->first() ?? Category::factory()->componentHddCategory(); }, 'qty' => 10, 'min_amt' => 2, ]; }); } public function ssdCrucial240() { return $this->state(function () { return [ 'name' => 'Crucial BX300 240GB SATA Internal SSD', 'category_id' => function () { return Category::where('name', 'HDD/SSD')->first() ?? Category::factory()->componentHddCategory(); }, 'qty' => 10, 'min_amt' => 2, ]; }); } public function checkedOutToAsset(Asset $asset = null) { return $this->afterCreating(function (Component $component) use ($asset) { $component->assets()->attach($component->id, [ 'component_id' => $component->id, 'created_at' => Carbon::now(), 'user_id' => 1, 'asset_id' => $asset->id ?? Asset::factory()->create()->id, ]); }); } }