<?php

namespace Codi22\VLAN\Workflow;

use Exception;
use Litepie\Workflow\Exceptions\WorkflowActionNotPerformedException;

use Codi22\VLAN\Models\VLANS;

class VLANSAction
{
    /**
     * Perform the complete action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */
    public function complete(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'complete';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }

    /**
     * Perform the verify action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */public function verify(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'verify';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }

    /**
     * Perform the approve action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */public function approve(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'approve';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }

    /**
     * Perform the publish action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */public function publish(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'publish';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }

    /**
     * Perform the archive action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */
    public function archive(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'archive';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }

    /**
     * Perform the unpublish action.
     *
     * @param VLANS $v_l_a_n_s
     *
     * @return VLANS
     */
    public function unpublish(VLANS $v_l_a_n_s)
    {
        try {
            $v_l_a_n_s->status = 'unpublish';
            return $v_l_a_n_s->save();
        } catch (Exception $e) {
            throw new WorkflowActionNotPerformedException();
        }
    }
}