public static function getInstance()
 {
     if (!self::$_instance) {
         // If no instance then make one
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 public function retrieveCaptainFromBook($captain_id)
 {
     $db = DatabaseBook::getInstance();
     $mysqli = $db->getConnection();
     $query = "SELECT * FROM ea_users WHERE id = {$captain_id}";
     $result = $mysqli->query($query);
     $counter = 0;
     $captList = array();
     while ($news_row = $result->fetch_array()) {
         $captain = new Captain();
         $captain->setFirstName($news_row['first_name']);
         $captain->setLastName($news_row['last_name']);
         $captain->setEmail($news_row['email']);
         $captain->setStreet($news_row['address']);
         $captain->setCity($news_row['city']);
         $captain->setState($news_row['state']);
         $captain->setZip($news_row['zip_code']);
         $captain->setCaptainId($news_row['id']);
         $captList[$counter] = $captain;
         $counter++;
     }
     return $captList;
 }
 public function retrieveAppointments($user_type, $email, $appointment_cat)
 {
     include_once "DatabaseBook.class.php";
     $db = DatabaseBook::getInstance();
     $mysqli = $db->getConnection();
     if ($user_type == "Captain") {
         $query = "select * from ea_appointments as ap inner join ea_users as usr on ap.id_users_providers = usr.id where usr.email = '{$email}'";
     } elseif ($user_type == "Customer") {
         $query = "select * from ea_appointments as ap inner join ea_users as usr on ap.id_users_customer = usr.id where usr.email = '{$email}'";
     }
     if ($appointment_cat == "past") {
         $query .= " AND ap.end_datetime < curdate()";
     } elseif ($appointment_cat == "upcoming") {
         $query .= " AND ap.start_datetime > curdate()";
     }
     $result = $mysqli->query($query);
     $counter = 0;
     $list = array();
     while ($news_row = $result->fetch_array()) {
         $appointment = new Appointment();
         //$appointment = $appointment->createObject($appointment,$news_row);
         $appointment->setAppointmentId($news_row[0]);
         $appointment->setAppointmentDate($news_row['start_datetime']);
         //  $appointment -> setAppointmentDeposit($news_row['appointment_deposit']);
         //  $appointment -> setHullId($news_row['hull_id']);
         $appointment->setUserId($news_row['id_users_customer']);
         $appointment->setCaptainId($news_row['id_users_provider']);
         // $appointment -> setAppointmentStatus($news_row['appointment_status']);
         $list[$counter] = $appointment;
         $counter++;
     }
     return $list;
 }