File: /var/www/vhost/disk-apps/comfama.sports-crowd.com/app/Jobs/Memberships/RenewSubscriptionJob.php
<?php
namespace App\Jobs\Memberships;
use App\Core\Membership\Application\MembershipService;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class RenewSubscriptionJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $membershipSubscriptionId;
public function __construct($membershipSubscriptionId)
{
$this->membershipSubscriptionId = $membershipSubscriptionId;
}
public function handle(MembershipService $membershipService)
{
$expiredSubscription = $membershipService->find($this->membershipSubscriptionId);
$membershipPayment = $membershipService->createFromMembershipSubscription($expiredSubscription);
$membershipService->setAsNoRenewable($expiredSubscription);
RenewSubscriptionPaymentJob::dispatch($membershipPayment->id);
}
}