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