<?php

namespace App\Http\Middleware;

use App\User;
use Closure;

class AffiliateTracking {
	/**
	 * Handle an incoming request.
	 *
	 * @param \Illuminate\Http\Request $request
	 * @param \Closure $next
	 *
	 * @return mixed
	 */
	public function handle( $request, Closure $next ) {
		$response = $next( $request );
		$minutes  = 60 * 24 * 30;
		if ( $request->has( 'ref' ) ) {
			if(!empty($request->get('ref'))) {
				$userItem = User::query()->where( 'refer_code', $request->get( 'ref' ) )->first();
				if ( $userItem ) {
					if ( ! $request->hasCookie( 'affiliate_id' ) ) {
						return $response->withCookie( cookie( 'affiliate_id', $userItem->id, $minutes ) );
					}
				}
			}
		}

		return $response;
	}
}
