Files
2026-08-10 17:01:30 +05:30

36 lines
1.2 KiB
Dart

import 'package:shared_preferences/shared_preferences.dart';
/// Persisted app settings + employee session.
class Settings {
static const _kBaseUrl = 'base_url';
static const _kToken = 'emp_token';
static const _kName = 'emp_name';
static const _kRole = 'emp_role';
static const defaultBaseUrl = 'https://api.scalar360.in';
late SharedPreferences _prefs;
Future<void> load() async => _prefs = await SharedPreferences.getInstance();
String get baseUrl => (_prefs.getString(_kBaseUrl) ?? defaultBaseUrl).trim();
set baseUrl(String v) => _prefs.setString(_kBaseUrl, v.trim());
String? get token => _prefs.getString(_kToken);
String? get name => _prefs.getString(_kName);
String get role => _prefs.getString(_kRole) ?? 'EMPLOYEE';
bool get isManager => role == 'MANAGER';
bool get isLoggedIn => (token ?? '').isNotEmpty;
Future<void> saveSession({required String token, String? name, String? role}) async {
await _prefs.setString(_kToken, token);
if (name != null) await _prefs.setString(_kName, name);
if (role != null) await _prefs.setString(_kRole, role);
}
Future<void> clearSession() async {
await _prefs.remove(_kToken);
await _prefs.remove(_kName);
await _prefs.remove(_kRole);
}
}