import os
import zipfile
import datetime

ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
BACKUP_DIR = os.path.join(ROOT, "backups")

os.makedirs(BACKUP_DIR, exist_ok=True)

json_files = [
    "machines.json",
    "users.json",
    "repairs.json",
    "upgrades.json",
    "servers.json",
    "activity_log.json",
    "reallocation_log.json",
    "purchases.json",
    "reserve_assets.json",
    "cost_settings.json",
]

stamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
backup_path = os.path.join(BACKUP_DIR, f"backup_{stamp}.zip")

with zipfile.ZipFile(backup_path, "w", zipfile.ZIP_DEFLATED) as z:
    for fn in json_files:
        full = os.path.join(ROOT, fn)
        if os.path.exists(full):
            z.write(full, fn)

print("Backup created:", backup_path)
