function setSeatForUser($eventId, $userId, $seatId)
{
    if (getUserInSeat($eventId, $seatId)) {
        return;
        // dont overwrite
    }
    // if getSeatForUser != null, insert
    $sql = 'UPDATE seatingplan_seat_selections s SET seat = :seat WHERE event = :event and USER = :user';
    $stmt = DatabaseFactory::getInstance()->prepare($sql);
    $stmt->bindValue(':seat', $seatId);
    $stmt->bindValue(':event', $eventId);
    $stmt->bindValue(':user', $userId);
    $stmt->execute();
}
    echo json_encode(array('type' => 'error', 'message' => $errorMessage));
    exit;
}
function jsonSuccess($message, array $seatChanges)
{
    echo json_encode(array('type' => 'success', 'message' => $message, 'seatChanges' => $seatChanges));
    exit;
}
if (!Session::isLoggedIn()) {
    jsonError('You are not logged in!');
}
$status = getSignupStatus(Session::getUser()->getId(), $event['id']);
if ($status != 'PAID' && $status != 'CONFIRMED' && $status != 'PAYPAL_WAITING' && $status != 'STAFF') {
    jsonError("You haven't paid for a ticket!");
}
if (getUserInSeat($event['id'], $seat)) {
    jsonError("That seat is already occupied!");
}
$seatChanges = array();
$currentSeats = getSeatForUser($event['id']);
foreach ($currentSeats as $itemCurrentSeat) {
    $seatChanges[] = getJsonSeatChange('delete', $itemCurrentSeat['seat'], Session::getUser()->getUsername());
}
deleteSeatsForUser($event['id']);
setUserInSeat($event['id'], $seat);
$seatChanges[] = getJsonSeatChange('set', $seat, Session::getUser()->getUsername());
jsonSuccess('Seat selected!', $seatChanges);
?>