Skip to content

Commit

Permalink
use the HasFactory trait
Browse files Browse the repository at this point in the history
  • Loading branch information
iamgergo committed Mar 29, 2021
1 parent 8259e62 commit c157469
Show file tree
Hide file tree
Showing 45 changed files with 305 additions and 207 deletions.
9 changes: 3 additions & 6 deletions database/migrations/2020_01_01_000000_extend_users_table.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php

use Bazar\Models\User;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Expand All @@ -14,11 +13,9 @@ class ExtendUsersTable extends Migration
*/
public function up(): void
{
$column = User::proxy()->getDeletedAtColumn();

Schema::table('users', static function (Blueprint $table) use ($column): void {
if (! Schema::hasColumn('users', $column)) {
$table->softDeletes($column);
Schema::table('users', static function (Blueprint $table): void {
if (! Schema::hasColumn('users', 'deleted_at')) {
$table->softDeletes();
}
});
}
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Address.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@
use Bazar\Concerns\Filterable;
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\Address as Contract;
use Bazar\Database\Factories\AddressFactory;
use Bazar\Support\Countries;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Http\Request;

class Address extends Model implements Contract
{
use BazarRoutable, Filterable, InteractsWithProxy;
use BazarRoutable, Filterable, HasFactory, InteractsWithProxy;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -97,6 +99,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): AddressFactory
{
return AddressFactory::new();
}

/**
* Get the addressable model for the address.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Cart.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
use Bazar\Concerns\InteractsWithItems;
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\Cart as Contract;
use Bazar\Database\Factories\CartFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;

class Cart extends Model implements Contract
{
use Addressable, HasUuid, InteractsWithDiscounts, InteractsWithItems, InteractsWithProxy;
use Addressable, HasFactory, HasUuid, InteractsWithDiscounts, InteractsWithItems, InteractsWithProxy;

/**
* The attributes that should have default values.
Expand Down Expand Up @@ -100,6 +102,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): CartFactory
{
return CartFactory::new();
}

/**
* Lock the cart.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Concerns\Sluggable;
use Bazar\Contracts\Models\Category as Contract;
use Bazar\Database\Factories\CategoryFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Http\Request;

class Category extends Model implements Contract
{
use BazarRoutable, Filterable, HasMedia, InteractsWithProxy, Sluggable, SoftDeletes;
use BazarRoutable, Filterable, HasFactory, HasMedia, InteractsWithProxy, Sluggable, SoftDeletes;

/**
* The attributes that are mass assignable.
Expand Down Expand Up @@ -55,6 +57,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): CategoryFactory
{
return CategoryFactory::new();
}

/**
* Get the products for the category.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Medium.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
use Bazar\Concerns\Filterable;
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\Medium as Contract;
use Bazar\Database\Factories\MediumFactory;
use Bazar\Support\Facades\Conversion;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Storage;
Expand All @@ -15,7 +17,7 @@

class Medium extends Model implements Contract
{
use Filterable, InteractsWithProxy;
use Filterable, HasFactory, InteractsWithProxy;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -90,6 +92,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): MediumFactory
{
return MediumFactory::new();
}

/**
* Create a new medium from the given path.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Order.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
use Bazar\Concerns\InteractsWithItems;
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\Order as Contract;
use Bazar\Database\Factories\OrderFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
Expand All @@ -19,7 +21,7 @@

class Order extends Model implements Contract
{
use Addressable, BazarRoutable, Filterable, InteractsWithDiscounts, InteractsWithItems, InteractsWithProxy, SoftDeletes;
use Addressable, BazarRoutable, Filterable, HasFactory, InteractsWithDiscounts, InteractsWithItems, InteractsWithProxy, SoftDeletes;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -85,6 +87,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): OrderFactory
{
return OrderFactory::new();
}

/**
* Create a new order from the given cart.
*
Expand Down
18 changes: 15 additions & 3 deletions src/Models/Product.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
use Bazar\Concerns\InteractsWithStock;
use Bazar\Concerns\Sluggable;
use Bazar\Contracts\Models\Product as Contract;
use Bazar\Database\Factories\ProductFactory;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
Expand All @@ -23,7 +25,7 @@

class Product extends Model implements Contract
{
use BazarRoutable, Filterable, InteractsWithProxy, InteractsWithStock, HasMedia, Sluggable, SoftDeletes;
use BazarRoutable, Filterable, HasFactory, InteractsWithProxy, InteractsWithStock, HasMedia, Sluggable, SoftDeletes;

/**
* The accessors to append to the model's array form.
Expand All @@ -42,8 +44,8 @@ class Product extends Model implements Contract
*/
protected $attributes = [
'prices' => '[]',
'properties' => '[]',
'inventory' => '[]',
'properties' => '[]',
];

/**
Expand All @@ -66,8 +68,8 @@ class Product extends Model implements Contract
'name',
'slug',
'prices',
'properties',
'inventory',
'properties',
'description',
];

Expand All @@ -88,6 +90,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): ProductFactory
{
return ProductFactory::new();
}

/**
* Get the filter options for the model.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Shipping.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Concerns\InteractsWithTaxes;
use Bazar\Contracts\Models\Shipping as Contract;
use Bazar\Database\Factories\ShippingFactory;
use Bazar\Support\Facades\Shipping as Manager;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Support\Str;
use Throwable;

class Shipping extends Model implements Contract
{
use Addressable, InteractsWithProxy, InteractsWithTaxes;
use Addressable, HasFactory, InteractsWithProxy, InteractsWithTaxes;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -75,6 +77,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): ShippingFactory
{
return ShippingFactory::new();
}

/**
* Get the shippable model for the shipping.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/Transaction.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,19 @@

use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\Transaction as Contract;
use Bazar\Database\Factories\TransactionFactory;
use Bazar\Support\Facades\Gateway;
use DateTimeInterface;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Carbon;
use Throwable;

class Transaction extends Model implements Contract
{
use InteractsWithProxy;
use HasFactory, InteractsWithProxy;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -64,6 +66,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): TransactionFactory
{
return TransactionFactory::new();
}

/**
* Get the order for the transaction.
*
Expand Down
14 changes: 13 additions & 1 deletion src/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
use Bazar\Concerns\Filterable;
use Bazar\Concerns\InteractsWithProxy;
use Bazar\Contracts\Models\User as Contract;
use Bazar\Database\Factories\UserFactory;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\MorphMany;
Expand All @@ -22,7 +24,7 @@

class User extends Authenticatable implements Contract, MustVerifyEmail
{
use BazarRoutable, Filterable, InteractsWithProxy, Notifiable, SoftDeletes;
use BazarRoutable, Filterable, HasFactory, InteractsWithProxy, Notifiable, SoftDeletes;

/**
* The accessors to append to the model's array form.
Expand Down Expand Up @@ -96,6 +98,16 @@ public static function getProxiedContract(): string
return Contract::class;
}

/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory(): UserFactory
{
return UserFactory::new();
}

/**
* Get the filter options for the model.
*
Expand Down
Loading

0 comments on commit c157469

Please sign in to comment.