<?php


/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2025 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */

use Joomla\CMS\Language\Text;
use Joomla\CMS\Table\Table;

// No direct access
defined('_JEXEC') or die('Restricted access');

/**
 * Defines the trait for a Editor Controller Class.
 *
 * @since 4.1.0
 */
trait PageDuplicateTrait
{
    /**
     * Method to duplicate page item into the table.
     *
     * @param   integer     $id         Key to the sppagebuilder table.
     * @param   Table       $table      Content table object being loaded.
     *
     * @return  mixed       return the response.
     *
     * @since   4.1.0
     */
    public function duplicate()
    {
        $method = $this->getInputMethod();
        $this->checkNotAllowedMethods(['POST', 'PUT', 'DELETE', 'PATCH'], $method);

        $this->duplicatePage();
    }

    private function duplicatePage()
    {
        $id = $this->getInput('id', 0, 'INT');
        $model = $this->getModel('Editor');

        if (!$id)
        {
            $response['message'] = Text::_("COM_SPPAGEBUILDER_PAGE_ID_MISSING");
            $this->sendResponse($response, 400);
        }

        $data = $model->duplicatePage($id);

        $this->sendResponse($data->response, $data->code);
    }
}
