<?php

namespace Bixo\CrossTrade\Policies;

use Bixo\CrossTrade\Models\OfferUsVehicle;
use Illuminate\Foundation\Auth\User as Authenticatable;

trait OfferUsVehicleWorkflow
{

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function approve(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.approve')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function submit(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.submit')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function publish(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.publish')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function unpublish(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.unpublish')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function archive(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.archive')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function unarchive(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.unarchive')) {
            return true;
        }

        return false;
    }

    /**
     * Determine if the given user can approve the given offer_us_vehicle.
     *
     * @param Authenticatable $user
     *
     * @return bool
     */
    public function reject(Authenticatable $user, OfferUsVehicle $offer_us_vehicle)
    {
        if ($user->canDo('cross_trade.offer_us_vehicle.reject')) {
            return true;
        }

        return false;
    }

}