import 'package:shared_preferences/shared_preferences.dart'; import '../models/produit.dart'; /// Petits réglages persistés (préférences utilisateur) pour accélérer la saisie. class Reglages { Reglages._(); static final Reglages instance = Reglages._(); static const _cleDerniereUnite = 'derniere_unite'; static const _cleServeur = 'serveur_url'; /// Adresse par défaut du serveur PocketBase (le Raspberry Pi du magasin, /// exposé via Tailscale : accessible aussi bien au magasin qu'à l'extérieur). static const serveurParDefaut = 'https://db.tailb756e1.ts.net'; /// Anciennes adresses par défaut : si la tablette a encore l'une d'elles /// enregistrée, on bascule automatiquement sur la nouvelle. static const _anciensDefauts = { 'http://192.168.1.32:8090', }; SharedPreferences? _prefs; Future get _p async => _prefs ??= await SharedPreferences.getInstance(); /// Adresse du serveur PocketBase (modifiable dans les réglages). Future serveurUrl() async { final p = await _p; final url = p.getString(_cleServeur); if (url == null || _anciensDefauts.contains(url)) { // Jamais réglé, ou ancienne adresse par défaut restée en mémoire. if (url != null) await p.setString(_cleServeur, serveurParDefaut); return serveurParDefaut; } return url; } Future setServeurUrl(String url) async => (await _p).setString(_cleServeur, url.trim()); /// Dernière unité choisie lors d'un ajout (pour la re-proposer par défaut). Future derniereUnite() async { final p = await _p; return p.getString(_cleDerniereUnite) ?? Unites.g; } Future memoriserUnite(String unite) async { final p = await _p; await p.setString(_cleDerniereUnite, unite); } }