import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:path_provider/path_provider.dart'; import 'package:qadirneyriz/utils/enums/status.dart'; import 'package:qadirneyriz/utils/hive/local_user.dart'; class UserLocalDb { Box? initialbox; Box? box; bool isInitialized = false; initialized() async { if (!kIsWeb) { Directory appDocDirectory = await getApplicationDocumentsDirectory(); var rootPath = Directory('${appDocDirectory.path}/dir'); await rootPath.create(recursive: true); Hive.init(rootPath.path); } isInitialized = true; } openBox() async { await initialized(); initialbox ??= await Hive.openBox('user_hive'); return initialbox; } open() { box = Hive.box('user_hive'); return box; } LocalUser getUser() { if (box == null) { open(); } String name = box!.get('name', defaultValue: ''); String token = box!.get('token', defaultValue: ''); String mobile = box!.get('mobile', defaultValue: ''); int role = box!.get('role', defaultValue: 0); List access = box!.get('access', defaultValue: []); String language = box!.get('language', defaultValue: 'en'); return LocalUser( name: name, token: token, mobile: mobile, access: access, role: role, language: language); } saveUserField(String key, value) async { open(); await box!.put(key, value); } Future logOut() async { await openBox(); // باز کردن Box await box!.clear(); // حذف تمامی داده‌ها از Box // بررسی تعداد آیتم‌های باقی‌مانده final int remainingItems = box!.length; // بازگرداندن true اگر داده‌ها حذف شدند، false در غیر این صورت return remainingItems == 0; } // Future updateUser(LocalUser user) async { // await openBox(); // box!.put('name', user.userName); // box!.put('token', user.token); // // box!.put('phone', user.phoneNumber); // // box!.put('isLogin', user.isLogin); // // box!.put('password', user.password); // await initialbox!.put('name', user.userName); // await initialbox!.put('token', user.token); // // await initialbox!.put('phone', user.phoneNumber); // // await initialbox!.put('isLogin', user.isLogin); // // await initialbox!.put('password', user.password); // } }