# ═══════════════════════════════════════════════════════════
# MESHTASTIC ITALIA NETWORK APP v1.2.0 — DIPENDENZE PYTHON
# ═══════════════════════════════════════════════════════════
# Installazione: pip install -r requirements.txt
# ═══════════════════════════════════════════════════════════

# ── CORE WEB SERVER ─────────────────────────────────────
flask>=3.0                # Web server locale (localhost:5555)
flask-cors>=4.0           # CORS headers

# ── COMUNICAZIONE DISPOSITIVO ───────────────────────────
pyserial>=3.5             # Porta seriale USB (COM/ttyUSB/ttyACM)
meshtastic>=2.3.0         # CLI + Python API Meshtastic
pypubsub>=4.0.3           # Event bus sync (richiesto da meshtastic >= 2.5)

# ── PROTOBUF (pin compat meshtastic-python) ─────────────
protobuf>=4.25,<6.0       # Serialization Meshtastic (MeshPacket, Data, Admin...)

# ── CRITTOGRAFIA ───────────────────────────────────────
cryptography>=43.0        # Ed25519 + AES-256-GCM licenze + X25519 base
pynacl>=1.5.0             # X25519 ECDH nativo (PKI DM decrypt)
pycryptodomex>=3.21.0     # AES-CCM robusto + ChaCha20Poly1305 backup crypto

# ── COMPRESSIONE MESHTASTIC ─────────────────────────────
unishox2-py3>=1.0.0       # Decompressione TEXT_MESSAGE_COMPRESSED_APP (portnum 7)

# ── MQTT BRIDGE ─────────────────────────────────────────
paho-mqtt>=2.1.0          # Client MQTT per bridge broker esterno (mqtt.meshtastic.org)

# ── UTILITY PERFORMANCE / VALIDATION ────────────────────
orjson>=3.10.11           # JSON veloce (SSE + MessageToDict)
pydantic>=2.8             # Schema validation pacchetti + API
python-dateutil>=2.9.0    # Timestamp parsing robusto

# ── FINGERPRINT HARDWARE (Setup Doctor v1) ─────────────
# Forniscono lettura MAC/CPU/disco affidabile su OS dove uuid.getnode()
# o wmic falliscono (es. Ubuntu senza net-tools, Windows 11 22H2+).
getmac>=0.9.0             # Lettura MAC address multi-piattaforma (8+ metodi)
psutil>=5.9.0             # Info hardware multi-piattaforma (sostituisce wmic)

# ── QR CODE ────────────────────────────────────────────
qrcode[pil]>=7.4          # Generazione QR code
Pillow>=10.0              # Immagini PNG

# ── MOD FIRMWARE (opzionale — pip install esptool) ─────
# esptool>=4.7            # Flash/erase ESP32 — decommentare se serve
# adafruit-nrfutil>=0.5.3 # Flash nRF52 via DFU — decommentare se serve

# ═══════════════════════════════════════════════════════════
# DRIVER USB (installare dal sito del produttore):
# ═══════════════════════════════════════════════════════════
# CP210x (Silicon Labs) → silabs.com/developers — Heltec, T-Beam, la maggior parte
# CH340/CH341 (WCH)     → wch-ic.com/downloads  — Cloni, board economiche
# FTDI FT232            → ftdichip.com/drivers   — Adattatori USB-TTL
# CDC ACM (nRF52)       → Integrato in Win10+/macOS/Linux — T-Echo, RAK
# Linux: sudo usermod -a -G dialout $USER && logout/login
