<?php

namespace App\Jobs;

use App\Components\Functions;
use App\Models\Hostel;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class GenerateDynamicLinkHostel implements ShouldQueue {
	use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

	/**
	 * Create a new job instance.
	 *
	 * @return void
	 */
	protected $hostelId;

	public function __construct( $hostelId ) {
		//
		$this->hostelId = $hostelId;

	}

	/**
	 * Execute the job.
	 *
	 * @return void
	 */
	public function handle() {
		//
		$hostelId = $this->hostelId;
		$hostel   = Hostel::find( $hostelId );
		if ( ! $hostel ) {
			return;
		}
		$link = Functions::generateDynamicLinkHostel($hostel);

		$hostel->dynamic_link = $link;
		$hostel->save();
	}
}
