import 'package:niogu_app/core/constants/app_key.dart'; import 'package:niogu_app/core/enums/user_role.dart'; import 'package:shared_preferences/shared_preferences.dart'; class SystemSetting { static Future isLoggedIn() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getBool(AppKey.USER_LOGIN) ?? false; } static Future setIsLoggedIn() async { final prefs = await SharedPreferences.getInstance(); await prefs.setBool(AppKey.USER_LOGIN, true); } static Future getTenantId() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.TENANT_ID); } static Future getTenantCode() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.TENANT_CODE); } static Future getTenantName() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.TENANT_NAME); } static Future setTenant({ String? tenantId, String? tenantCode, String? tenantName, }) async { final prefs = await SharedPreferences.getInstance(); if (tenantId != null) { prefs.setString(AppKey.TENANT_ID, tenantId); } if (tenantCode != null) { prefs.setString(AppKey.TENANT_CODE, tenantCode); } if (tenantName != null) { prefs.setString(AppKey.TENANT_NAME, tenantName); } } static Future getOutletIdByOwner() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.OUTLET_ID_BY_OWNER); } static Future setOutletIdByOwner(String? outletId) async { final prefs = await SharedPreferences.getInstance(); if (outletId != null) { prefs.setString(AppKey.OUTLET_ID_BY_OWNER, outletId); } } static Future getCurrentOutletId() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.OUTLET_ID); } static Future getCurrentOutletName() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.OUTLET_NAME); } static Future switchOutlet({ String? outletId, String? outletName, }) async { final prefs = await SharedPreferences.getInstance(); if (outletId != null) { prefs.setString(AppKey.OUTLET_ID, outletId); } if (outletName != null) { prefs.setString(AppKey.OUTLET_NAME, outletName); } } static Future getCurrentUserId() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.USER_ID); } static Future getCurrentUserName() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.USER_NAME); } static Future getCurrentUserEmail() async { final prefs = await SharedPreferences.getInstance(); return await prefs.getString(AppKey.USER_EMAIL); } static Future getCurrentUserRole() async { final prefs = await SharedPreferences.getInstance(); final userRole = await prefs.getString(AppKey.USER_ROLE); return UserRole.values.byName(userRole ?? 'owner'); } static Future setUser({ String? userId, String? userName, String? userEmail, UserRole? userRole, }) async { final prefs = await SharedPreferences.getInstance(); if (userId != null) { prefs.setString(AppKey.USER_ID, userId); } if (userName != null) { prefs.setString(AppKey.USER_NAME, userName); } if (userEmail != null) { prefs.setString(AppKey.USER_EMAIL, userEmail); } if (userRole != null) { prefs.setString(AppKey.USER_ROLE, userRole.role); } } static Future clear() async { final prefs = await SharedPreferences.getInstance(); await prefs.clear(); } }