<?php
/**
 * Demo Oracle — synthese des sauvegardes RMAN (section « dash/backup_summary »).
 *
 * Portage de modules/oracle/_report_dash_backup_summary.php, sans retrait :
 * ce rapport est une lecture pure, et le module complet n'y propose aucune
 * action. La demonstration le sert donc a l'identique.
 *
 * Inclus par report.php. Variables : $oraDb, $db, $currentUser, $settings.
 */

require_once __DIR__ . '/lib/DemoOracleOciConnect.php';
require_once __DIR__ . '/lib/DemoOracleDashBackupsRepository.php';

/** @var array      $oraDb       */
/** @var Database   $db          */
/** @var object     $settings    */
/** @var array|null $currentUser */

$ociError   = null;
$fetchError = null;
$conn       = demo_oracle_oci_open($oraDb, $db, $ociError, '', 'dash/backup_summary');
$dbInfo     = null;
$rows       = [];
/* Initialise AVANT le branchement : le module complet ne le fait que dans la
   branche « connexion reussie », si bien qu'un echec de connexion laisse la
   variable indefinie et la vue emet une notice. Corrige ici. */
$diagInfo   = null;

if (!$conn) {
    $fetchError = $ociError
        ? ('ORA-' . $ociError['code'] . ': ' . $ociError['message'])
        : t('demo_oracle.connect_error');
} else {
    $dbInfo = DemoOracleDashBackupsRepository::fetchDatabaseInfo($conn) ?: null;
    $summaryOraError = null;
    $rows   = DemoOracleDashBackupsRepository::fetchBackupSummary($conn, 10, $summaryOraError);
    if (empty($rows)) {
        $diagInfo = DemoOracleDashBackupsRepository::diagnoseBackupSummary($conn);
    }
    if ($summaryOraError) {
        $fetchError = $summaryOraError;
    }
    oci_close($conn);
}

View::display(__DIR__ . '/views/report/dash_backup_summary.php', [
    'fetchError' => $fetchError,
    'dbInfo'     => $dbInfo,
    'rows'       => $rows,
    'diagInfo'   => $diagInfo,
]);
