HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/medvalue.komma.pro/app/KommaApp/Shop/Factories/OrderRelatedFactories.php
<?php
/*
|--------------------------------------------------------------------------
| Product Factories
|--------------------------------------------------------------------------
|
| Here you may define all of your model factories.
| Model factories give
| you a convenient way to create models for testing and seeding your
| database. Just tell the factory how a default model should look.
*/


use App\KommaApp\Shop\Orders\Models\Order;
use App\KommaApp\Shop\Orders\OrderStatus;
use App\KommaApp\Shop\Orders\Product\OrderedProduct;
use App\KommaApp\Shop\Orders\ProductComposite\OrderedProductComposite;
use App\KommaApp\Shop\Orders\ProductGroup\OrderedProductGroup;
use App\KommaApp\Users\Genders;
use App\KommaApp\Users\Models\User;

$prefix = '';

$factory->define(OrderedProduct::class, function (Faker\Generator $faker) use ($prefix) {
    $faker->addProvider(\App\KommaApp\Shop\Factories\Fakers\ProductNamesFaker::class);

    return [
        'title' => $prefix.$faker->productName(),
        'price' => $faker->randomNumber(4),
        'stock_keeping_unit' => $faker->ean13,
        'created_at' => \Carbon\Carbon::now()->toDateTimeString(),
        'updated_at' => \Carbon\Carbon::now()->toDateTimeString()
    ];
});

$factory->define(OrderedProductGroup::class, function (Faker\Generator $faker) use ($prefix) {
    return [
        'active' => true,
        'title' => $prefix.$faker->word,
    ];
});

$factory->define(OrderedProductComposite::class, function (Faker\Generator $faker) use ($prefix) {
    return [
        'active' => true,
        'title' => $prefix.$faker->word,
    ];
});

$factory->define(Order::class, function (Faker\Generator $faker) use ($prefix) {
    /** @var User $customer */
    $customer = User::inRandomOrder()->where('role_id', '=', \App\KommaApp\Users\Roles::Customer)->first();
    return [
        'user_id' => $customer->id,
        'status' => OrderStatus::awaiting_payment,
        'total_price' => rand(1000, 100000),
        'discount' => '',
        'invoice_gender' => $faker->randomElement([Genders::Male, Genders::Female, Genders::Neutral]),
        'invoice_title' => '',
        'invoice_first_name' => $customer->first_name,
        'invoice_last_name' => $customer->last_name,
        'invoice_email' => $customer->email,
        'invoice_company' => $customer->company_name,
        'invoice_country' => $customer->country,
        'invoice_postal_code' => $customer->postal_code,
        'invoice_city' => $customer->city,
        'invoice_street' => $customer->street,
        'invoice_house_number' => $customer->house_number,
        'invoice_telephone' => $customer->telephone,
        'shipping_gender' => '',
        'shipping_title' => '',
        'shipping_first_name' => $customer->first_name,
        'shipping_last_name' => $customer->last_name,
        'shipping_email' => $customer->email,
        'shipping_company' => $customer->company_name,
        'shipping_country' => $customer->country,
        'shipping_postal_code' => $customer->postal_code,
        'shipping_city' => $customer->city,
        'shipping_street' => $customer->street,
        'shipping_house_number' => $customer->house_number,
        'shipping_telephone' => $customer->telephone
    ];
});