40 lines
1014 B
PHP
40 lines
1014 B
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Enums\PriceType;
|
|
use App\Models\Order;
|
|
use App\Models\OrderItem;
|
|
use App\Models\Product;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends Factory<OrderItem>
|
|
*/
|
|
class OrderItemFactory extends Factory
|
|
{
|
|
protected $model = OrderItem::class;
|
|
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
$qty = $this->faker->numberBetween(1, 10);
|
|
$price = $this->faker->numberBetween(50000, 200000);
|
|
|
|
return [
|
|
'user_id' => User::inRandomOrder()->first()?->id ?? User::factory(),
|
|
'order_id' => Order::factory(),
|
|
'product_id' => Product::inRandomOrder()->first()?->id ?? Product::factory(),
|
|
'price' => $price,
|
|
'qty' => $qty,
|
|
'total' => $price * $qty,
|
|
'price_type' => $this->faker->randomElement(PriceType::cases()),
|
|
];
|
|
}
|
|
}
|