#!/usr/bin/env python3
"""
Google Ads Agency Agent - Main Entry Point
Unified CLI for all Google Ads management operations.

Usage:
    gads.py status           - Quick account status
    gads.py daily            - Run daily health check
    gads.py weekly           - Generate weekly report
    gads.py waste [--days N] - Find wasted spend
    gads.py monitor          - Hourly monitoring (cron)
    gads.py recs             - List pending recommendations
    gads.py approve <id>     - Approve a recommendation
    gads.py reject <id>      - Reject a recommendation
    gads.py track            - Track change impacts
    gads.py learn            - Run pattern learning
    gads.py help             - Show this help
"""

import sys
import os

# Ensure scripts directory is in path
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, SCRIPT_DIR)


def main():
    if len(sys.argv) < 2:
        print(__doc__)
        sys.exit(0)
    
    command = sys.argv[1].lower()
    args = sys.argv[2:]
    
    if command in ['status', 'quick', 's']:
        from quick_status import main as quick_main
        sys.argv = ['quick_status.py'] + args
        quick_main()
    
    elif command in ['daily', 'health', 'd']:
        from daily_health import main as daily_main
        sys.argv = ['daily_health.py'] + args
        daily_main()
    
    elif command in ['weekly', 'report', 'w']:
        from weekly_report import main as weekly_main
        sys.argv = ['weekly_report.py'] + args
        weekly_main()
    
    elif command in ['waste', 'find', 'f']:
        from find_waste import main as waste_main
        sys.argv = ['find_waste.py'] + args
        waste_main()
    
    elif command in ['monitor', 'hourly', 'm']:
        from monitor_hourly import main as monitor_main
        sys.argv = ['monitor_hourly.py'] + args
        monitor_main()
    
    elif command in ['recs', 'recommendations', 'pending', 'r']:
        from execute_action import list_pending_recommendations, format_pending_recommendations
        print(format_pending_recommendations())
    
    elif command in ['approve', 'a']:
        if not args:
            print("Usage: gads.py approve <recommendation_id>")
            sys.exit(1)
        from execute_action import approve_recommendation
        success, message = approve_recommendation(args[0])
        print(message)
        sys.exit(0 if success else 1)
    
    elif command in ['reject']:
        if not args:
            print("Usage: gads.py reject <recommendation_id> [reason]")
            sys.exit(1)
        from execute_action import reject_recommendation
        reason = ' '.join(args[1:]) if len(args) > 1 else None
        success = reject_recommendation(args[0], reason)
        if success:
            print(f"✅ Rejected recommendation {args[0]}")
        else:
            print(f"❌ Could not find recommendation {args[0]}")
            sys.exit(1)
    
    elif command in ['approve-all']:
        from execute_action import main as execute_main
        sys.argv = ['execute_action.py', 'approve-all'] + args
        execute_main()
    
    elif command in ['track', 'changes', 't']:
        from track_changes import main as track_main
        sys.argv = ['track_changes.py'] + args
        track_main()
    
    elif command in ['learn', 'patterns', 'l']:
        from learn_patterns import main as learn_main
        sys.argv = ['learn_patterns.py'] + args
        learn_main()
    
    elif command in ['help', 'h', '-h', '--help']:
        print(__doc__)
    
    else:
        print(f"Unknown command: {command}")
        print(__doc__)
        sys.exit(1)


if __name__ == "__main__":
    main()
