import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:logging/logging.dart'; import 'package:fcs/vo/user.dart'; import '../vo/user.dart'; import 'base_model.dart'; import 'constants.dart'; import 'firebase_helper.dart'; class EmployeeModel extends BaseModel { final log = Logger('EmployeeModel'); List employees = [ User(name: 'Ko Nyi', phoneNumber: '+95 9 717273634',), User(name: 'Ko Phyu', phoneNumber: '+1 (939) 382-3844'), User(name: 'Ko Ye', phoneNumber: '+95 9 983734783',status: "Delivered"), ]; void initUser(user) async { super.initUser(user); _loadEmployees(); } @override logout() async { employees = []; } Future _loadEmployees() async { if (!user.isOwnerAndAbove() && !user.hasAccount()) { return; } try { Firestore.instance .collection("/$biz_collection/${setting.okEnergyId}/$user_collection") .where("is_employee", isEqualTo: true) .snapshots() .listen((QuerySnapshot snapshot) { employees.clear(); employees = snapshot.documents.map((documentSnapshot) { var user = User.fromMap(documentSnapshot.data, documentSnapshot.documentID); return user; }).toList(); notifyListeners(); }).onError((e) { log.warning("Error! $e"); }); } catch (e) { log.warning("Error!! $e"); } } Future updatePrivileges(String userID, List privileges) async { try { await request("/employee/privileges", "PUT", payload: {"id": userID, "privileges": privileges}, token: await getToken()); } catch (e) { throw Exception(e); } } }