#!/usr/bin/env python3
"""
Genesis Session Monitor - 10 Hour Continuous Operation
Start: 2025-12-26 20:37 AEST
End Target: 2025-12-27 06:37 AEST
"""

import time
import datetime
import json
import os

SESSION_FILE = "/mnt/e/genesis-system/session_status.json"
START_TIME = datetime.datetime(2025, 12, 26, 20, 37, 0)
END_TIME = START_TIME + datetime.timedelta(hours=10)

def get_status():
    now = datetime.datetime.now()
    elapsed = now - START_TIME
    remaining = END_TIME - now
    progress = (elapsed.total_seconds() / (10 * 3600)) * 100

    return {
        "session_start": START_TIME.isoformat(),
        "session_end_target": END_TIME.isoformat(),
        "current_time": now.isoformat(),
        "elapsed_hours": round(elapsed.total_seconds() / 3600, 2),
        "remaining_hours": max(0, round(remaining.total_seconds() / 3600, 2)),
        "progress_percent": min(100, round(progress, 1)),
        "is_active": now < END_TIME,
        "status": "ACTIVE" if now < END_TIME else "COMPLETE"
    }

def log_checkpoint(videos_processed, entities_created, notes=""):
    status = get_status()
    status["videos_processed"] = videos_processed
    status["entities_created"] = entities_created
    status["notes"] = notes
    status["checkpoint_time"] = datetime.datetime.now().isoformat()

    # Append to log
    log_file = "/mnt/e/genesis-system/session_log.jsonl"
    with open(log_file, "a") as f:
        f.write(json.dumps(status) + "\n")

    # Update current status
    with open(SESSION_FILE, "w") as f:
        json.dump(status, f, indent=2)

    return status

if __name__ == "__main__":
    status = get_status()
    print(f"""
╔══════════════════════════════════════════════════════════════╗
║           GENESIS 10-HOUR SESSION MONITOR                     ║
╠══════════════════════════════════════════════════════════════╣
║ Start:     {status['session_start']}                    ║
║ End:       {status['session_end_target']}                    ║
║ Current:   {status['current_time']}                    ║
╠══════════════════════════════════════════════════════════════╣
║ Elapsed:   {status['elapsed_hours']:.2f} hours                                    ║
║ Remaining: {status['remaining_hours']:.2f} hours                                    ║
║ Progress:  {status['progress_percent']:.1f}%                                         ║
║ Status:    {status['status']}                                          ║
╚══════════════════════════════════════════════════════════════╝
""")
