<?php

/**
 * OpenKM, Open Knowledge Management System S.L.  (http://www.openkm.com)
 * Copyright (c) 2006-2023
 *
 * No bytes were intentionally harmed during the development of this application.
 *
 * This program is commercial software; you can use it under the terms of the
 * EULA - OpenKM SDK End User License Agreement as published by OpenKM Knowledge Management System S.L.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * EULA - OpenKM SDK End User License Agreement for more details:
 * http://docs.openkm.com/kcenter/view/licenses/eula-openkm-sdk-end-user-license-agreement.html
 */

namespace openkm\definition;

/**
 * BaseRepository
 * 
 * @author sochoa
 */
interface BaseRepository {

    public function getRootFolder();

    public function getTrashFolder();

    public function getTrashFolderBase();

    public function getTemplatesFolder();

    public function getPersonalFolder();

    public function getPersonalFolderBase();

    public function getMailFolder();

    public function getMailFolderBase();

    public function getThesaurusFolder();

    public function getCategoriesFolder();

    public function purgeTrash();

    public function getUpdateMessage();

    public function getRepositoryUuid();

    public function hasNode($nodeId);

    public function getNodePath($uuid);

    public function getNodeUuid($nodePath);

    public function getAppVersion();

    public function copyAttributes($nodeId, $dstId, $categories, $keywords, $propertyGroups, $notes, $wiki);

    public function executeScript($content);

    public function executeSqlQuery($content);

    public function executeHqlQuery($content);

    public function getTranslations($lang, $module);

    public function getConfiguration($key);

    public function getChangeLog($nodePath, $modificationsFrom);
}

?>
