info('Starting Zoho Projects export'); // Parse command line options $options = getopt('', ['include-tasks', 'format:']); $includeTasks = isset($options['include-tasks']); $format = $options['format'] ?? $config['export']['format']; // Initialize Zoho client $client = new ZohoClient($config); // Initialize Projects service $projectsService = new ProjectsService($client, $config); // Fetch open projects $logger->info('Fetching open projects', ['include_tasks' => $includeTasks]); $projects = $projectsService->getOpenProjects($includeTasks); $logger->info('Fetched projects', ['count' => count($projects)]); // Export data $exportManager = new ExportManager($config['export']['output_dir'], $format); $filepath = $exportManager->export($projects, 'open_projects'); $logger->info('Export completed', ['filepath' => $filepath]); echo "Export completed successfully!\n"; echo "Records exported: " . count($projects) . "\n"; echo "Output file: {$filepath}\n"; } catch (\Exception $e) { $logger->error('Export failed', [ 'error' => $e->getMessage(), 'trace' => $e->getTraceAsString(), ]); echo "Error: " . $e->getMessage() . "\n"; exit(1); }