// Décode les QR codes d'images PNG via le framework Vision de macOS (natif, zéro dépendance).
// Run: swift decode-qr.swift <file1.png> [file2.png ...]
import Foundation
import Vision
import AppKit

let args = Array(CommandLine.arguments.dropFirst())
if args.isEmpty { print("usage: swift decode-qr.swift <png...>"); exit(1) }

for p in args {
    let name = (p as NSString).lastPathComponent
    guard let img = NSImage(contentsOfFile: p),
          let cg = img.cgImage(forProposedRect: nil, context: nil, hints: nil) else {
        print("\(name) → ERREUR: image illisible"); continue
    }
    let req = VNDetectBarcodesRequest()
    req.symbologies = [.qr]
    let handler = VNImageRequestHandler(cgImage: cg)
    do {
        try handler.perform([req])
        let values = (req.results ?? []).compactMap { $0.payloadStringValue }
        if values.isEmpty { print("\(name) → AUCUN QR détecté") }
        else { for v in values { print("\(name) → ENCODE: \(v)") } }
    } catch {
        print("\(name) → ERREUR Vision: \(error)")
    }
}
