feat(Mail template & Membership relationship)

This commit is contained in:
2026-02-16 14:16:52 +01:00
parent 45920c083e
commit 6e73c82787
37 changed files with 1374 additions and 169 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Jobs;
use App\Models\Member;
use App\Models\NotificationTemplate;
use App\Notifications\SubscriptionExpiredPhase1;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
@@ -11,22 +12,21 @@ class SendSubscriptionExpiredPhase1Notifications implements ShouldQueue
{
use Queueable;
/**
* Create a new job instance.
*/
public function __construct()
{
}
public function __construct() {}
/**
* Execute the job.
*/
public function handle(): void
{
Member::isExpired()
->chunk(100, function ($members) {
$template = NotificationTemplate::findByIdentifier('subscription_expired_phase1');
if (! $template) {
return;
}
Member::query()
->whereHas('memberships', fn ($query) => $query->where('status', 'expired'))
->chunk(100, function ($members) use ($template) {
foreach ($members as $member) {
$member->notify(new SubscriptionExpiredPhase1());
$member->notify(new SubscriptionExpiredPhase1($template));
}
});
}