Extract read-only reporting methods from PRAutoBlogger_Cost_Tracker into a new PRAutoBlogger_Cost_Reporter class. This reduces Cost_Tracker from 313 to 206 lines and Reporter to 141 lines, both under the 300-line cap. Changed files: - Create includes/core/class-cost-reporter.php with reporting methods: * get_monthly_spend(): float * get_daily_spend(int $days = 30): array * get_spend_by_stage(string $start_date, string $end_date): array * get_budget_utilization(): float - Update includes/core/class-cost-tracker.php: * Remove reporting methods * Update is_budget_exceeded() and would_exceed_budget() to use Cost_Reporter * Keep get_current_run_cost() (tracks current pipeline run only) * Add @see cross-reference to Cost_Reporter - Update templates and admin classes to instantiate Cost_Reporter: * templates/admin/metrics-page.php * templates/admin/settings-page.php * includes/admin/class-admin-notices.php * includes/admin/class-dashboard-widget.php - Split tests/unit/Core/CostTrackerTest.php: * Create tests/unit/Core/CostReporterTest.php for reporter methods * Keep run ID and budget enforcement tests in CostTrackerTest Autoloader automatically discovers PRAutoBlogger_Cost_Reporter class. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.7 KiB
Executable File
2.7 KiB
Executable File