#!/bin/bash

# RSC Revolution Market Analytics - Dynamic Cron Setup
# This script automatically detects the project directory and sets up cron jobs

# Get the directory where this script is located (project root)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$SCRIPT_DIR"

# Determine Python executable
# Try virtual environment first, then system python3
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
    PYTHON_PATH="$PROJECT_ROOT/venv/bin/python"
elif command -v python3 &> /dev/null; then
    PYTHON_PATH="python3"
else
    echo "Error: Python 3 not found"
    exit 1
fi

echo "Setting up cron jobs for RSC Revolution Market Analytics"
echo "Project directory: $PROJECT_ROOT"
echo "Python executable: $PYTHON_PATH"

# Remove existing analytics cron jobs
crontab -l 2>/dev/null | grep -v "market_analytics\|RSC Revolution" | crontab -

# Add new cron jobs with dynamic paths
(crontab -l 2>/dev/null; cat << EOL

# RSC Revolution Market Analytics (auto-generated)
# Scripts handle their own logging to individual log files in logs/

# Market snapshot - every 15 minutes (logs to snapshot.log) - runs first
*/15 * * * * cd $PROJECT_ROOT && $PYTHON_PATH collectors/snapshot.py

# Current state - every 5 minutes offset by 1 min (logs to current_state.log) - runs after snapshot
1-56/5 * * * * cd $PROJECT_ROOT && $PYTHON_PATH collectors/current_state.py

# Notable trades - every hour at :05 (logs to notable_trades.log)
5 * * * * cd $PROJECT_ROOT && $PYTHON_PATH collectors/notable_trades.py

# Hourly aggregation - every hour at :02 (logs to hourly_aggregator.log)
2 * * * * cd $PROJECT_ROOT && $PYTHON_PATH aggregators/hourly_aggregator.py

# Daily aggregation - daily at 00:05 (no built-in logging, uses cron.log)
5 0 * * * cd $PROJECT_ROOT && $PYTHON_PATH aggregators/daily_aggregator.py >> logs/cron.log 2>&1

# Health check - every 10 minutes (logs to health_check.log)
*/10 * * * * cd $PROJECT_ROOT && $PYTHON_PATH monitoring/health_check.py

# Cleanup old data - daily at 01:00 (logs to cleanup.log)
0 1 * * * cd $PROJECT_ROOT && $PYTHON_PATH maintenance/cleanup_old_data.py

# Log rotation - daily at 01:30 (logs to log_rotation.log)
30 1 * * * cd $PROJECT_ROOT && $PYTHON_PATH maintenance/log_rotation.py

# Market analysis - every 2 hours (logs to analysis.log)
0 */2 * * * cd $PROJECT_ROOT && $PYTHON_PATH analyzers/run_analysis.py

EOL
) | crontab -

echo "Cron jobs installed successfully!"
echo ""
echo "Commands to manage:"
echo "  View cron jobs: crontab -l"
echo "  Monitor all logs: tail -f $PROJECT_ROOT/logs/*.log"
echo "  Check health:     tail -f $PROJECT_ROOT/logs/health_check.log"
echo "  Check collectors: tail -f $PROJECT_ROOT/logs/current_state.log"
echo ""
echo "Log files will be created in: $PROJECT_ROOT/logs/"
echo "Each script logs to its own file (e.g., current_state.log, snapshot.log)"