private function registerGuest() { $guest = new EntityDefinition(Guest::class); $guest->table('guest'); $guest->required('_id', MongoId::class); $guest->required('site_id', MongoId::class); $guest->required('mac', Text::class); // MAC $guest->required('ap_mac', Text::class); // MAC $guest->required('start', Text::class); // Number $guest->required('end', Text::class); // Number $guest->required('duration', Text::class); // Number $guest->required('authorized_by', Text::class); $guest->required('unauthorized_by', Text::class); $guest->scope('authed', function ($query) { //TODO: Figure out MongoDB-local timestamp function //TODO: Auth time needs to be site-dependent return $query->whereNull('unauthorized_by')->where('end', '>', time() - 120 * 60); }); $this->remodel->register($guest); }