refactor: Integrate FeedPurchaseObserver for improved stock management and remove redundant boot methods
This commit is contained in:
parent
9b2866ed0e
commit
35d0d967a1
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Observers\FeedPurchaseObserver;
|
||||||
|
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
#[ObservedBy([FeedPurchaseObserver::class])]
|
||||||
class FeedPurchase extends Model
|
class FeedPurchase extends Model
|
||||||
{
|
{
|
||||||
use HasFactory, SoftDeletes;
|
use HasFactory, SoftDeletes;
|
||||||
@ -18,23 +21,6 @@ class FeedPurchase extends Model
|
|||||||
'total_price' => 'integer',
|
'total_price' => 'integer',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected static function boot()
|
|
||||||
{
|
|
||||||
parent::boot();
|
|
||||||
|
|
||||||
static::deleted(function ($feedPurchase) {
|
|
||||||
$feedPurchase->revertFeedStock();
|
|
||||||
});
|
|
||||||
|
|
||||||
static::forceDeleted(function ($feedPurchase) {
|
|
||||||
$feedPurchase->revertFeedStock();
|
|
||||||
});
|
|
||||||
|
|
||||||
static::restored(function ($feedPurchase) {
|
|
||||||
$feedPurchase->updateFeedStock();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public function items(): HasMany
|
public function items(): HasMany
|
||||||
{
|
{
|
||||||
return $this->hasMany(FeedPurchaseItem::class);
|
return $this->hasMany(FeedPurchaseItem::class);
|
||||||
|
|||||||
32
app/Observers/FeedPurchaseObserver.php
Normal file
32
app/Observers/FeedPurchaseObserver.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Observers;
|
||||||
|
|
||||||
|
use App\Models\FeedPurchase;
|
||||||
|
|
||||||
|
class FeedPurchaseObserver
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle the FeedPurchase "deleted" event.
|
||||||
|
*/
|
||||||
|
public function deleted(FeedPurchase $feedPurchase): void
|
||||||
|
{
|
||||||
|
$feedPurchase->revertFeedStock();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the FeedPurchase "force deleted" event.
|
||||||
|
*/
|
||||||
|
public function forceDeleted(FeedPurchase $feedPurchase): void
|
||||||
|
{
|
||||||
|
$feedPurchase->revertFeedStock();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the FeedPurchase "restored" event.
|
||||||
|
*/
|
||||||
|
public function restored(FeedPurchase $feedPurchase): void
|
||||||
|
{
|
||||||
|
$feedPurchase->updateFeedStock();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user