#!/usr/bin/env php format('Y-m-d') !== $date) { echo "Error: Invalid date format. Expected Y-m-d (e.g., 2025-01-01)\n"; echo "Usage: php bin/hourly_summary.php [date]\n"; echo " If date is omitted, defaults to yesterday\n"; exit(1); } try { // Get database connection $dbHost = AppConfig::get('DB_HOST', 'localhost'); $dbName = AppConfig::get('DB_NAME', ''); $dbUser = AppConfig::get('DB_USER', ''); $dbPass = AppConfig::get('DB_PASS', ''); if (empty($dbName) || empty($dbUser)) { echo "Error: Database configuration not found in .env\n"; exit(1); } $db = Database::getConnection($dbHost, $dbName, $dbUser, $dbPass); // Initialize service $service = new HourlySummaryService($db); // Run aggregation echo "Processing hourly summary for date: {$date}\n"; $result = $service->aggregateForDate($date); echo "Success!\n"; echo "Date: {$result['date']}\n"; echo "Rows processed: {$result['rows_processed']}\n"; exit(0); } catch (Exception $e) { echo "Error: " . $e->getMessage() . "\n"; exit(1); }