import paramiko
import sys
import os

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

FILES = [
    ("public/index.php", f"{REMOTE_BASE}/public/index.php"),
    ("public/action.php", f"{REMOTE_BASE}/public/action.php"),
    ("public/suspicion.php", f"{REMOTE_BASE}/public/suspicion.php"),
    ("public/spam.php", f"{REMOTE_BASE}/public/spam.php"),
    ("public/payplug.php", f"{REMOTE_BASE}/public/payplug.php"),
    ("public/factures.php", f"{REMOTE_BASE}/public/factures.php"),
    ("public/tags.php", f"{REMOTE_BASE}/public/tags.php"),
    ("public/includes/header.php", f"{REMOTE_BASE}/public/includes/header.php"),
    ("public/includes/nav.php", f"{REMOTE_BASE}/public/includes/nav.php"),
    ("public/includes/footer.php", f"{REMOTE_BASE}/public/includes/footer.php"),
    ("data/spam.csv", f"{REMOTE_BASE}/data/spam.csv"),
    ("data/factures.csv", f"{REMOTE_BASE}/data/factures.csv"),
    ("core/CsvHandler.php", f"{REMOTE_BASE}/core/CsvHandler.php"),
    ("core/SpamFilter.php", f"{REMOTE_BASE}/core/SpamFilter.php"),
    ("core/AiEngine.php", f"{REMOTE_BASE}/core/AiEngine.php"),
    ("core/PrestaShop.php", f"{REMOTE_BASE}/core/PrestaShop.php"),
    ("core/ImapClient.php", f"{REMOTE_BASE}/core/ImapClient.php"),
    ("scripts/scan.php", f"{REMOTE_BASE}/scripts/scan.php"),
]

def main():
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(HOST, username=USER, password=PASS)
        
        for local, remote in FILES:
            # Files are relative to project root, which is one level up from this script
            local_full = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), local)
            print(f"Deploying {local} -> {remote}")
            
            with open(local_full, 'r') as f:
                content = f.read()
            
            stdin, stdout, stderr = ssh.exec_command(f"sudo tee {remote} > /dev/null")
            stdin.write(content)
            stdin.channel.shutdown_write()
            
            err = stderr.read().decode()
            if err:
                print(f"Error deploying {local}: {err}")
            
        ssh.close()
        print("Frontend deployed successfully with sudo.")
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    main()
