-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
18 changed files
with
602 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace App\Enum; | ||
|
||
enum OrderFieldsFieldEnum: int | ||
{ | ||
|
||
case url = 1; | ||
case email = 2; | ||
case phone = 3; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace App\Enum; | ||
|
||
enum OrderStatusEnum: int | ||
{ | ||
|
||
case new = 0; | ||
case paid = 1; | ||
case completed = 2; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use Illuminate\Database\Eloquent\Builder; | ||
use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
use Illuminate\Database\Eloquent\Model; | ||
use Illuminate\Database\Eloquent\Relations\BelongsTo; | ||
|
||
/** | ||
* App\Models\Cart | ||
* | ||
* @property int $id | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @property int|null $user_id | ||
* @property int $product_id | ||
* @property int $count | ||
* @property string|null $session_id | ||
* @method static Builder|Cart newModelQuery() | ||
* @method static Builder|Cart newQuery() | ||
* @method static Builder|Cart query() | ||
* @method static Builder|Cart whereCount($value) | ||
* @method static Builder|Cart whereCreatedAt($value) | ||
* @method static Builder|Cart whereId($value) | ||
* @method static Builder|Cart whereProductId($value) | ||
* @method static Builder|Cart whereSessionId($value) | ||
* @method static Builder|Cart whereUpdatedAt($value) | ||
* @method static Builder|Cart whereUserId($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class Cart extends Model | ||
{ | ||
use HasFactory; | ||
|
||
protected function user(): BelongsTo | ||
{ | ||
return $this->belongsTo(User::class); | ||
} | ||
|
||
protected function product(): BelongsTo | ||
{ | ||
return $this->belongsTo(Product::class); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use App\Enum\OrderStatusEnum; | ||
use Illuminate\Database\Eloquent\Builder; | ||
use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
use Illuminate\Database\Eloquent\Model; | ||
use Illuminate\Database\Eloquent\Relations\BelongsTo; | ||
|
||
/** | ||
* App\Models\Order | ||
* | ||
* @property int $id | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @property int|null $user_id | ||
* @property int $status | ||
* @property string $price | ||
* @method static Builder|Order newModelQuery() | ||
* @method static Builder|Order newQuery() | ||
* @method static Builder|Order query() | ||
* @method static Builder|Order whereCreatedAt($value) | ||
* @method static Builder|Order whereId($value) | ||
* @method static Builder|Order wherePrice($value) | ||
* @method static Builder|Order whereStatus($value) | ||
* @method static Builder|Order whereUpdatedAt($value) | ||
* @method static Builder|Order whereUserId($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class Order extends Model | ||
{ | ||
use HasFactory; | ||
|
||
protected $casts = [ | ||
'status' => OrderStatusEnum::class, | ||
]; | ||
|
||
public function user(): BelongsTo | ||
{ | ||
return $this->belongsTo(User::class); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use App\Enum\OrderFieldsFieldEnum; | ||
use Illuminate\Database\Eloquent\Builder; | ||
use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
use Illuminate\Database\Eloquent\Model; | ||
use Illuminate\Database\Eloquent\Relations\BelongsTo; | ||
|
||
/** | ||
* App\Models\OrderField | ||
* | ||
* @property int $id | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @property int $order_id | ||
* @property int $field | ||
* @property string $value | ||
* @method static Builder|OrderField newModelQuery() | ||
* @method static Builder|OrderField newQuery() | ||
* @method static Builder|OrderField query() | ||
* @method static Builder|OrderField whereCreatedAt($value) | ||
* @method static Builder|OrderField whereField($value) | ||
* @method static Builder|OrderField whereId($value) | ||
* @method static Builder|OrderField whereOrderId($value) | ||
* @method static Builder|OrderField whereUpdatedAt($value) | ||
* @method static Builder|OrderField whereValue($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class OrderField extends Model | ||
{ | ||
use HasFactory; | ||
|
||
protected $casts = [ | ||
'field' => OrderFieldsFieldEnum::class, | ||
]; | ||
|
||
protected function order(): BelongsTo | ||
{ | ||
return $this->belongsTo(Order::class); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
|
||
namespace App\Models; | ||
|
||
use Illuminate\Database\Eloquent\Builder; | ||
use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
use Illuminate\Database\Eloquent\Model; | ||
use Illuminate\Database\Eloquent\Relations\BelongsTo; | ||
|
||
/** | ||
* App\Models\OrderProduct | ||
* | ||
* @property int $id | ||
* @property \Illuminate\Support\Carbon|null $created_at | ||
* @property \Illuminate\Support\Carbon|null $updated_at | ||
* @property int $order_id | ||
* @property int $product_id | ||
* @property int $count | ||
* @property string $price | ||
* @method static Builder|OrderProduct newModelQuery() | ||
* @method static Builder|OrderProduct newQuery() | ||
* @method static Builder|OrderProduct query() | ||
* @method static Builder|OrderProduct whereCount($value) | ||
* @method static Builder|OrderProduct whereCreatedAt($value) | ||
* @method static Builder|OrderProduct whereId($value) | ||
* @method static Builder|OrderProduct whereOrderId($value) | ||
* @method static Builder|OrderProduct wherePrice($value) | ||
* @method static Builder|OrderProduct whereProductId($value) | ||
* @method static Builder|OrderProduct whereUpdatedAt($value) | ||
* @mixin \Eloquent | ||
*/ | ||
class OrderProduct extends Model | ||
{ | ||
use HasFactory; | ||
|
||
protected function order(): BelongsTo | ||
{ | ||
return $this->belongsTo(Order::class); | ||
} | ||
|
||
protected function product(): BelongsTo | ||
{ | ||
return $this->belongsTo(Product::class); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
|
||
namespace Database\Factories; | ||
|
||
use App\Models\Category; | ||
use App\Models\Product; | ||
use App\Models\ProductCategory; | ||
use Illuminate\Database\Eloquent\Factories\Factory; | ||
|
||
/** | ||
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Product> | ||
*/ | ||
class ProductFactory extends Factory | ||
{ | ||
/** | ||
* Define the model's default state. | ||
* | ||
* @return array<string, mixed> | ||
*/ | ||
public function definition() | ||
{ | ||
|
||
return [ | ||
'meta_title' => ['en' => $this->faker->text(100), 'ru' => $this->faker->text(100)], | ||
'meta_description' => ['en' => $this->faker->text(), 'ru' => $this->faker->text()], | ||
'name' => ['en' => $this->faker->text(100), 'ru' => $this->faker->text(100)], | ||
'slug' => $this->faker->slug, | ||
'short_description' => $this->faker->text(200), | ||
'description' => $this->faker->text(1000), | ||
'price' => $this->faker->randomFloat(2), | ||
'old_price' => $this->faker->randomFloat(2), | ||
]; | ||
|
||
} | ||
|
||
public function configure() | ||
{ | ||
return $this->afterCreating(function (Product $product) { | ||
$productCategory = new ProductCategory(); | ||
$productCategory->product()->associate($product); | ||
$productCategory->category()->associate(Category::query()->whereNotNull('category_id')->get()->random()); | ||
$productCategory->save(); | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.