Current File : /var/www/vinorea/modules/ipexportimport/classes/import/order/EIACronExpression.php
<?php
/**
 *
 * NOTICE OF LICENSE
 *
 *  @author    SmartPresta <tehran.alishov@gmail.com>
 *  @copyright 2024 SmartPresta
 *  @license   Commercial License
 */

if (!defined('_PS_VERSION_')) {
    exit;
}

require_once(_PS_MODULE_DIR_ . 'ipexportimport/libraries/Schedule/CrontabValidator.php');
require_once(_PS_MODULE_DIR_ . 'ipexportimport/libraries/Schedule/CronSchedule.php');
require_once(_PS_MODULE_DIR_ . 'ipexportimport/libraries/Schedule/csd_parser.php');

class EIACronExpression
{
    private $expression;
    const DEFAULT_EXPRESSION = '0 * * * *';

    public function __construct($expression)
    {
        $this->expression = trim($expression);
        $this->expression = preg_replace('#\s+#', ' ', $expression);
        $this->expression = $this->decode($expression);
    }

    public function get()
    {
        return $this->expression;
    }

    private function decode($encoded_expression)
    {
        switch ($encoded_expression) {
            case "@yearly":
            case "@annually":
                return  "0 0 1 1 *";
            case "@monthly":
                return  "0 0 1 * *";
            case "@weekly":
                return  "0 0 * * 0";
            case "@daily":
            case "@midnight":
                return "0 0 * * *";
            case "@hourly":
                return "0 * * * *";
            default:
                return $encoded_expression;
        }
    }
    
}