#!/usr/bin/env python3
"""
CIO Tagesbericht Generator - Hilfskript
Dieses Skript wird vom Cron-Job-Agenten ausgeführt.
"""

import json
import os
from datetime import datetime
from pathlib import Path

from config import BotConfig, RuntimePaths

# Pfade
CONFIG = BotConfig.from_file()
PATHS = RuntimePaths.from_config(CONFIG)
PATHS.ensure_dirs()
BASE_DIR = PATHS.runtime_dir
PORTFOLIO_FILE = PATHS.portfolio_state
TRADING_LOG = PATHS.trading_log
REPORTS_DIR = PATHS.reports_dir
REPORTS_DIR.mkdir(parents=True, exist_ok=True)

def get_last_n_lines(filepath, n=100):
    """Liest die letzten n Zeilen einer Datei."""
    if not filepath.exists():
        return []
    with open(filepath, 'r', encoding='utf-8') as f:
        lines = f.readlines()
        return lines[-n:]

def analyze_performance(log_lines):
    """Analysiert Gewinne/Verluste und Systemmeldungen des letzten Tages."""
    today = datetime.now().strftime("%Y-%m-%d")
    daily_käufe = 0
    daily_verkäufe = 0
    system_messages = []
    
    for line in log_lines:
        if today in line:
            if "KAUF" in line:
                daily_käufe += 1
            elif "VERKAUF" in line or "SELL" in line:
                daily_verkäufe += 1
            if "WARN" in line or "ERROR" in line or "CRIT" in line:
                system_messages.append(line.strip())
    
    return {
        "käufe": daily_käufe,
        "verkäufe": daily_verkäufe,
        "warnungen": system_messages
    }

def main():
    """Hauptfunktion - wird vom Agenten aufgerufen."""
    today_str = datetime.now().strftime("%Y-%m-%d")
    report_path = REPORTS_DIR / f"CIO_Tagesbericht_{today_str}.txt"
    
    # Daten laden
    log_lines = get_last_n_lines(TRADING_LOG, 100)
    portfolio_data = {}
    if PORTFOLIO_FILE.exists():
        with open(PORTFOLIO_FILE, 'r', encoding='utf-8') as f:
            try:
                portfolio_data = json.load(f)
            except:
                pass
    
    # Analyse
    perf = analyze_performance(log_lines)
    
    print(f"📊 CIO-Report-Generator gestartet")
    print(f"📁 Portfolio-Datei: {PORTFOLIO_FILE.exists()}")
    print(f"📁 Trading-Log: {len(log_lines)} Zeilen gelesen")
    print(f"📈 Käufe heute: {perf['käufe']}")
    print(f"📉 Verkäufe heute: {perf['verkäufe']}")
    print(f"⚠️  Warnungen: {len(perf['warnungen'])}")
    print(f"📝 Bericht wird generiert...")
    
    # Rückgabe für den Agenten
    return {
        "portfolio_exists": PORTFOLIO_FILE.exists(),
        "log_lines": len(log_lines),
        "performance": perf,
        "report_path": str(report_path)
    }

if __name__ == "__main__":
    result = main()
    print(f"\n✅ Vorbereitung abgeschlossen. Agent erstellt jetzt den Bericht.")
    print(f"📄 Daten für den Bericht bereit: {result}")
