#pragma once
#include <Arduino.h>
#include <Arduino_APDS9960.h>
#include "filters.h"

/*
 ===========================================================
    MODULE PhiProximity
    Détection proximité infrarouge + brightness adaptative
 ===========================================================
*/

class PhiProximity {
public:
    PhiProximity();

    // Initialisation (APDS.begin() doit être appelé avant)
    bool begin();

    // Mise à jour (appeler à ~10 Hz)
    void update();

    // Métriques
    int proximity() const { return _proximity; }           // 0-255 (0=loin, 255=proche)
    float normalized() const { return _proximityNorm; }    // 0.0-1.0 normalisé
    
    // Brightness adaptative (pour matrices LED)
    uint8_t suggestedBrightness() const;
    
    // Détection présence
    bool isNear() const { return _proximity > 100; }       // Main < 10cm
    bool isVeryNear() const { return _proximity > 200; }   // Main < 3cm

private:
    int _proximity;           // Valeur brute 0-255
    float _proximityNorm;     // Normalisé 0.0-1.0
    LowPass _lpf;             // Lissage (α=0.2)
};
