24 lines
882 B
PHP
24 lines
882 B
PHP
<?php
|
|
|
|
namespace Modules\Core\Providers;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Modules\Core\Review\Models\ProductReview;
|
|
|
|
/**
|
|
* Keeps a product's Meilisearch document in sync with its reviews. A review is
|
|
* created/edited independently of its product (customer submission, staff reply),
|
|
* so the product's own save/update events never fire for it — without this listener,
|
|
* Modules\Core\Search\ProductIndexer's review data would only refresh on the next
|
|
* full product reindex.
|
|
*/
|
|
class ReviewServiceProvider extends ServiceProvider
|
|
{
|
|
public function boot(): void
|
|
{
|
|
ProductReview::created(fn (ProductReview $review) => $review->product?->searchable());
|
|
ProductReview::updated(fn (ProductReview $review) => $review->product?->searchable());
|
|
ProductReview::deleted(fn (ProductReview $review) => $review->product?->searchable());
|
|
}
|
|
}
|