| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Database\Factories;
- use App\Models\MafOrder;
- use App\Models\Product;
- use App\Models\User;
- use Illuminate\Database\Eloquent\Factories\Factory;
- /**
- * @extends Factory<MafOrder>
- */
- class MafOrderFactory extends Factory
- {
- protected $model = MafOrder::class;
- public function definition(): array
- {
- $quantity = fake()->numberBetween(1, 20);
- return [
- 'year' => (int) date('Y'),
- 'order_number' => fake()->unique()->bothify('MO-####'),
- 'status' => 'active',
- 'user_id' => User::factory(),
- 'product_id' => Product::factory(),
- 'quantity' => $quantity,
- 'in_stock' => fake()->numberBetween(0, $quantity),
- ];
- }
- public function forProduct(Product $product): static
- {
- return $this->state(fn (array $attributes) => [
- 'product_id' => $product->id,
- ]);
- }
- public function fullyInStock(): static
- {
- return $this->state(function (array $attributes) {
- $qty = $attributes['quantity'] ?? 10;
- return [
- 'in_stock' => $qty,
- ];
- });
- }
- }
|