* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ namespace Joomla\Component\MokoSuiteBackup\Administrator\Model; defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\AdminModel; class RemoteModel extends AdminModel { public function getForm($data = [], $loadData = true) { $form = $this->loadForm( 'com_mokosuitebackup.remote', 'remote', ['control' => 'jform', 'load_data' => $loadData] ); return $form ?: false; } protected function loadFormData(): object { $data = Factory::getApplication()->getUserState('com_mokosuitebackup.edit.remote.data', []); if (empty($data)) { $data = $this->getItem(); } return is_array($data) ? (object) $data : $data; } public function getTable($name = 'Remote', $prefix = 'Administrator', $options = []) { return parent::getTable($name, $prefix, $options); } /** * Get all enabled remotes for a given profile. * * @param int $profileId The profile ID * * @return array Array of remote objects */ public function getEnabledByProfile(int $profileId): array { $db = $this->getDatabase(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__mokosuitebackup_remotes')) ->where($db->quoteName('profile_id') . ' = ' . (int) $profileId) ->where($db->quoteName('enabled') . ' = 1') ->order($db->quoteName('ordering') . ' ASC'); $db->setQuery($query); return $db->loadObjectList() ?: []; } }