<?php

namespace Laracart\Return;

use User;

class Return
{
    /**
     * $return object.
     */
    protected $return;    /**
     * $return_reason object.
     */
    protected $return_reason;

    /**
     * Constructor.
     */
    public function __construct(\Laracart\Return\Interfaces\ReturnRepositoryInterface $return,        \Laracart\Return\Interfaces\ReturnReasonRepositoryInterface $return_reason)
    {
        $this->return = $return;        $this->return_reason = $return_reason;
    }

    /**
     * Returns count of return.
     *
     * @param array $filter
     *
     * @return int
     */
    public function count()
    {
        return  0;
    }

    /**
     * Make gadget View
     *
     * @param string $view
     *
     * @param int $count
     *
     * @return View
     */
    public function gadget($view = 'admin.return.gadget', $count = 10)
    {

        if (User::hasRole('user')) {
            $this->return->pushCriteria(new \Litepie\Laracart\Repositories\Criteria\ReturnUserCriteria());
        }

        $return = $this->return->scopeQuery(function ($query) use ($count) {
            return $query->orderBy('id', 'DESC')->take($count);
        })->all();

        return view('return::' . $view, compact('return'))->render();
    }    /**
     * Make gadget View
     *
     * @param string $view
     *
     * @param int $count
     *
     * @return View
     */
    public function gadget($view = 'admin.return_reason.gadget', $count = 10)
    {

        if (User::hasRole('user')) {
            $this->return_reason->pushCriteria(new \Litepie\Laracart\Repositories\Criteria\ReturnReasonUserCriteria());
        }

        $return_reason = $this->return_reason->scopeQuery(function ($query) use ($count) {
            return $query->orderBy('id', 'DESC')->take($count);
        })->all();

        return view('return::' . $view, compact('return_reason'))->render();
    }
}