import 'package:test_sa/models/hospital.dart';
import 'package:test_sa/models/lookup.dart';

class VisitsSearch{
  String deviceSerialNumber;
  Hospital hospital;
  String brand;
  Lookup model;
  Lookup contactStatus;
  DateTime expectedDateFrom;
  DateTime expectedDateTo;
  DateTime actualDateFrom;
  DateTime actualDateTo;
  Lookup statusValue;

  VisitsSearch({
    this.deviceSerialNumber,
    this.statusValue,
    this.brand,
    this.hospital,
    this.actualDateTo,
    this.actualDateFrom,
    this.model,
    this.contactStatus,
    this.expectedDateFrom,
    this.expectedDateTo,
  });

  fromSearch(VisitsSearch newSearch){
    deviceSerialNumber = newSearch.deviceSerialNumber;
    brand = newSearch.brand;
    hospital = newSearch.hospital;
    actualDateTo = newSearch.actualDateTo;
    actualDateFrom = newSearch.actualDateFrom;
    model = newSearch.model;
    contactStatus = newSearch.contactStatus;
    expectedDateFrom = newSearch.expectedDateFrom;
    expectedDateTo = newSearch.expectedDateTo;
    statusValue = newSearch.statusValue;
  }

  Map<String,dynamic> toMap(){
    Map<String,dynamic> _search = {};
    if(deviceSerialNumber != null  && deviceSerialNumber.isNotEmpty){
      _search["assetId"]= deviceSerialNumber;
    }

    if(hospital != null){
     _search["siteId"]= hospital.id;
    }

    if(brand != null  && brand.isNotEmpty){
      // todo get new key
     _search[""]= brand;
    }

    if(model != null){
     _search["modelId"]= model.id;
    }

    if(expectedDateFrom != null){
     _search["expectedDateFrom"]= expectedDateFrom.toIso8601String();
    }

    if(expectedDateTo != null){
     _search["expectedDateTo"]= expectedDateTo.toIso8601String();
    }

    if(actualDateFrom != null){
     _search["actualDateFrom"]= actualDateFrom.toIso8601String();
    }

    if(actualDateTo != null){
     _search["actualDateTo"]= actualDateTo.toIso8601String();
    }

    if(statusValue != null){
     _search["visitStatusId"]= statusValue.id;
    }

    if(contactStatus != null){
     _search["assignedToId"]= contactStatus.id;
    }
    return _search;
  }
}

