File "OrderFactory.php"
Full Path: /home/tecassol/public_html/tecas-solar.ma/database/factories/OrderFactory.php
File size: 1.65 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Database\Factories;
use App\Models\Order;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Order>
*/
class OrderFactory extends Factory
{
protected $model = Order::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
// $statuses = array_map(fn($status) => $status->value,\App\Enums\OrderStatusEnum::cases());//['pending', 'processing', 'completed', 'canceled'];
$paymentMethods = array_map(fn($method) => $method->value,\App\Enums\OrderPaymentMethodEnum::cases());//['credit_card', 'paypal', 'bank_transfer'];
$paymentStatuses = array_map(fn($status) => $status->value,\App\Enums\OrderPaymentStatusEnum::cases());//['paid', 'unpaid', 'refunded'];
return [
'customer_id' => \App\Models\Customer::factory(),
'order_number' => 'ORD-' . $this->faker->unique()->numerify('#####'),
// 'status' => $this->faker->randomElement($statuses),
'total_amount' => $this->faker->randomFloat(2, 100, 5000),
'shipping_address' => $this->faker->streetAddress,
'shipping_city' => $this->faker->city,
'shipping_postal_code' => $this->faker->numerify('#####'),
'payment_method' => $this->faker->randomElement($paymentMethods),
'payment_status' => $this->faker->randomElement($paymentStatuses),
'notes' => $this->faker->optional()->sentence(),
'tracking_number' => $this->faker->unique()->optional()->bothify('TRK-####-####'),
];
}
}