<?php

namespace Database\Factories;

use App\Modules\Catalog\Models\Product;
use App\Modules\Order\Models\Order;
use App\Modules\Order\Models\OrderItem;
use Illuminate\Database\Eloquent\Factories\Factory;

class OrderItemFactory extends Factory
{
    protected $model = OrderItem::class;

    public function definition(): array
    {
        $unitPrice = fake()->randomFloat(2, 100, 2000);
        $qty       = fake()->numberBetween(1, 5);

        return [
            'order_id'     => Order::factory(),
            'product_id'   => Product::factory(),
            'product_name' => fake()->words(3, true),
            'sku'          => strtoupper(fake()->bothify('??-####')),
            'quantity'     => $qty,
            'unit_price'   => $unitPrice,
            'discount_amount' => 0,
            'tax_amount'   => round($unitPrice * $qty * 0.13, 2),
            'tax_rate'     => 13.00,
            'total_price'  => round($unitPrice * $qty, 2),
        ];
    }
}
