import paramiko
import csv
from io import StringIO

HOST = "135.125.102.180"
USER = "ubuntu"
PASS = "BotPascal2026!"
REMOTE_BASE = "/var/www/html/repondeur_mail_grok"

def main():
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(HOST, username=USER, password=PASS)
        
        # Get queue.csv
        stdin, stdout, stderr = ssh.exec_command(f"cat {REMOTE_BASE}/data/queue.csv")
        queue_content = stdout.read().decode()
        
        # Get send_queue.csv
        stdin, stdout, stderr = ssh.exec_command(f"cat {REMOTE_BASE}/data/send_queue.csv")
        send_queue_content = stdout.read().decode()
        
        # Get archives.csv count
        stdin, stdout, stderr = ssh.exec_command(f"wc -l {REMOTE_BASE}/data/archives.csv")
        archives_count = stdout.read().decode().strip()
        
        ssh.close()
        
        print("=" * 60)
        print("📩 QUEUE (En attente de validation)")
        print("=" * 60)
        if queue_content.strip():
            reader = csv.DictReader(StringIO(queue_content))
            rows = list(reader)
            if rows:
                for i, row in enumerate(rows, 1):
                    print(f"\n[{i}] ID: {row.get('id', 'N/A')}")
                    print(f"    De: {row.get('email', 'N/A')}")
                    print(f"    Sujet: {row.get('subject', 'N/A')}")
                    print(f"    Date: {row.get('date_received', 'N/A')}")
                    print(f"    Tag: {row.get('tag_zimbra', 'N/A')}")
                    print(f"    Status: {row.get('status', 'N/A')}")
                print(f"\nTotal: {len(rows)} message(s)")
            else:
                print("Vide ✅")
        else:
            print("Vide ✅")
            
        print("\n" + "=" * 60)
        print("📤 SEND QUEUE (Prêt à envoyer)")
        print("=" * 60)
        if send_queue_content.strip():
            reader = csv.DictReader(StringIO(send_queue_content))
            rows = list(reader)
            if rows:
                for i, row in enumerate(rows, 1):
                    print(f"\n[{i}] ID: {row.get('id', 'N/A')}")
                    print(f"    Vers: {row.get('email', 'N/A')}")
                    print(f"    Sujet: {row.get('subject', 'N/A')}")
                print(f"\nTotal: {len(rows)} message(s)")
            else:
                print("Vide ✅")
        else:
            print("Vide ✅")
            
        print("\n" + "=" * 60)
        print("✅ ARCHIVES (Envoyés)")
        print("=" * 60)
        print(archives_count)
        
    except Exception as e:
        print(f"❌ Error: {e}")

if __name__ == "__main__":
    main()
