import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:fcs/vo/fcs_profile.dart'; import 'package:fcs/vo/pickup.dart'; import 'package:logging/logging.dart'; import 'base_model.dart'; class PickUpModel extends BaseModel { final log = Logger('PickUpModel'); StreamSubscription listener; var profile = FCSProfile( id: '1', usaAddress: '154-19 64th Ave.\nFlushing, NY 11367', mmAddress: 'FCS Trading Myanmar\nRoom 333, Yangon', usaContactNumber: '1 (929) 215-2247', mmContactNumber: '+95 9 700224723', mail: 'admin@fcs.com', facebook: 'https://facebook.com/fcs'); List pickups = [ PickUp( id: "P200412 - 12 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: 'Pending', date: DateTime(2020, 5, 1), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200125 - 12 May 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: 'Assigned', date: DateTime(2020, 5, 6), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200441 - 13 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: "Pickuped", date: DateTime(2020, 5, 9), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200412 - 12 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: 'Pickuped', date: DateTime(2020, 5, 15), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200125 - 12 May 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: 'Pickuped', date: DateTime(2020, 5, 20), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200441 - 13 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: "Pickuped", date: DateTime(2020, 5, 21), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200441 - 10 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: "Canceled", date: DateTime(2020, 5, 25), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), PickUp( id: "P200441 - 6 Apr 2020", userName: "Ko Kyaw Nyi", phoneNumber: '+959111111111', fromTime: '1PM', toTime: '3PM', numberOfPackage: 5, weight: 25, status: "Canceled", date: DateTime(2020, 5, 27), address: '154-19 64th Ave.\nFlushing, NY 11367', handlingFee: 5000), ]; List get canceled { List _p = pickups.where((e) => e.status == "Canceled").toList() ..sort((e1, e2) { return e2.date.compareTo(e1.date); }); return _p; } List get completed { return pickups.where((e) => e.status == "Pickuped").toList() ..sort((e1, e2) { return e2.date.compareTo(e1.date); }); } List get upcoming { return pickups .where((e) => e.status == "Pending" || e.status == "Assigned" || e.status == "Processed" || e.status == "Rescheduled") .toList() ..sort((e1, e2) { return e2.date.compareTo(e1.date); }); } void initUser(user) { super.initUser(user); } @override logout() async { if (listener != null) await listener.cancel(); pickups = []; } }