<?php
/**********************************************************************
 * ProxmoxVPS developed. (26.03.19)
 * *
 *
 *  CREATED BY MODULESGARDEN       ->       http://modulesgarden.com
 *  CONTACT                        ->       contact@modulesgarden.com
 *
 *
 * This software is furnished under a license and may be used and copied
 * only  in  accordance  with  the  terms  of such  license and with the
 * inclusion of the above copyright notice.  This software  or any other
 * copies thereof may not be provided or otherwise made available to any
 * other person.  No title to and  ownership of the  software is  hereby
 * transferred.
 *
 *
 **********************************************************************/

namespace ModulesGarden\Servers\ProxmoxVps\App\Http\Actions;

use ModulesGarden\ProxmoxAddon\App\Models\ModuleSettings;
use ModulesGarden\ProxmoxAddon\App\Models\Whmcs\Hosting;
use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService;
use ModulesGarden\Servers\ProxmoxVps\App\Helpers\AppParams;
use ModulesGarden\Servers\ProxmoxVps\App\Helpers\ProxmoxAddonValidator;
use ModulesGarden\Servers\ProxmoxVps\App\UI\Validators\Validator;
use ModulesGarden\Servers\ProxmoxVps\Core\App\Controllers\Instances\AddonController;
use ModulesGarden\Servers\ProxmoxVps\Core\UI\Traits\WhmcsParams;

class ResetBandwidth extends AddonController
{

    use WhmcsParams;
    use ProductService;

    public function execute($params = null)
    {
        if(!ProxmoxAddonValidator::isInstalled()){
            return ProxmoxAddonValidator::failAsString();
        }
        (new AppParams())->initFromWhmcsParams();
        try
        {
            Hosting::where("id", $this->getWhmcsParamByKey('serviceid'))
                   ->update(["bwusage" => 0]);
            return "success";
        }
        catch (\Exception $ex)
        {
            if (ModuleSettings::isDebug())
            {
                logModuleCall(
                    'ProxmoxVps',
                    __CLASS__,
                    [],
                    null,
                    $ex->getMessage() . " " . $ex->getTraceAsString()
                );
            }
            return $ex->getMessage();
        }
    }
}