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-####-####'),
        ];
    }
}