From 912e6c2d3768021a24f8d4e9180de597bcbad503 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Wed, 29 Oct 2025 19:17:59 +0700 Subject: [PATCH] feat(purchase): menambahkan kolom user_id dan menyesuaikan relasinya --- app/Models/PurchaseItem.php | 13 +++++++++++++ app/Models/User.php | 5 +++++ ...025_10_03_080031_create_purchase_items_table.php | 1 + 3 files changed, 19 insertions(+) diff --git a/app/Models/PurchaseItem.php b/app/Models/PurchaseItem.php index 5e40459..a33189c 100644 --- a/app/Models/PurchaseItem.php +++ b/app/Models/PurchaseItem.php @@ -2,6 +2,8 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -23,11 +25,22 @@ protected function casts(): array ]; } + #[Scope] + public function currentUser(Builder $query): void + { + $query->where('user_id', auth()->id()); + } + public function purchase(): BelongsTo { return $this->belongsTo(Purchase::class); } + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + public function purchasable(): MorphTo { return $this->morphTo(); diff --git a/app/Models/User.php b/app/Models/User.php index 942e10e..48099d8 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -92,6 +92,11 @@ public function orderItems(): HasMany return $this->hasMany(OrderItem::class); } + public function purchaseItems(): HasMany + { + return $this->hasMany(PurchaseItem::class); + } + public function payments(): HasMany { return $this->hasMany(Payment::class); diff --git a/database/migrations/2025_10_03_080031_create_purchase_items_table.php b/database/migrations/2025_10_03_080031_create_purchase_items_table.php index 1732367..2a42a75 100644 --- a/database/migrations/2025_10_03_080031_create_purchase_items_table.php +++ b/database/migrations/2025_10_03_080031_create_purchase_items_table.php @@ -14,6 +14,7 @@ public function up(): void Schema::create('purchase_items', function (Blueprint $table) { $table->id(); $table->foreignId('purchase_id')->nullable()->constrained()->cascadeOnDelete(); + $table->foreignId('user_id')->constrained()->cascadeOnDelete(); $table->morphs('purchasable'); $table->unsignedInteger('quantity'); $table->unsignedInteger('unit_price');