import 'dart:io';

import 'package:path_provider/path_provider.dart';

/// Basisverzeichnis für alle lokalen App-Daten (pyramid.sqlite, auth_log.txt,
/// Media-Cache).
///
/// Normalfall: das Application-Support-Verzeichnis der Plattform – exakt wie
/// bisher, es ändert sich NICHTS.
///
/// Nur auf dem Desktop kann die Umgebungsvariable `PYRAMID_PROFILE_DIR` ein
/// abweichendes Verzeichnis erzwingen. Zweck: Testläufe mit den
/// Autopilot-Testkonten in einem eigenen Profil, parallel zur echten
/// Session desselben Windows-Nutzers (die echte Session sieht die Variable
/// nie und bleibt unberührt). Bewusst NICHT umgeleitet werden
/// shared_preferences und flutter_secure_storage – deren Plugins lösen ihre
/// Pfade selbst auf; ein Testprofil teilt sich also den DB-Schlüssel
/// (`db_cipher_key`) und die UI-Prefs mit dem Hauptprofil. Für Tests ist das
/// unkritisch (der Schlüssel wird nur GELESEN, nie überschrieben), echte
/// Zweitkonten bräuchten mehr.
Future<Directory> appSupportDir() async {
  final override = Platform.isWindows || Platform.isLinux || Platform.isMacOS
      ? Platform.environment['PYRAMID_PROFILE_DIR']
      : null;
  if (override != null && override.trim().isNotEmpty) {
    final dir = Directory(override.trim());
    await dir.create(recursive: true);
    return dir;
  }
  return getApplicationSupportDirectory();
}
