/**
 * Deactivates the given site
 */
function deactivate_site_license()
{
    authorize_request();
    $license_id = sanitize_text_field($_GET['license_id']);
    $site_url = sanitize_text_field($_GET['site_url']);
    edd_software_licensing()->delete_site($license_id, $site_url);
    die('<script>window.close();</script>');
}
function add_or_remove_allergy($add_or_remove)
{
    $return_value = array();
    if (!check_params(["party_id", "auth_token", "person_id", "allergy"])) {
        $return_value["status"] = false;
        $return_value["reason"] = "Invalid Parameters";
    } else {
        $party_id = $_POST["party_id"];
        $auth_token = $_POST["auth_token"];
        $person_id = $_POST["person_id"];
        $allergy = $_POST["allergy"];
        $db_conn = open_db_conn();
        if (is_null($db_conn)) {
            $return_value["status"] = false;
            $return_value["reason"] = "Database Error";
        } else {
            // Validate client input
            if (strlen($allergy) <= 0) {
                $return_value["status"] = false;
                $return_value["reason"] = "Must enter an allergy";
            } else {
                if (authorize_request($party_id, $auth_token, $db_conn, $return_value)) {
                    $result = false;
                    if ($add_or_remove == "add") {
                        $result = add_allergy($person_id, $allergy, $db_conn);
                    } else {
                        $result = remove_allergy($person_id, $allergy, $db_conn);
                    }
                    if (!$result) {
                        $return_value["status"] = false;
                        $return_value["reason"] = "Database Error";
                    } else {
                        $return_value["status"] = true;
                        $return_value["person_id"] = $person_id;
                        $return_value["allergy"] = $allergy;
                    }
                }
            }
        }
    }
    return $return_value;
}
    $return_value["reason"] = "Invalid Parameters";
} else {
    $party_id = $_POST["party_id"];
    $auth_token = $_POST["auth_token"];
    $person_id = $_POST["person_id"];
    $first_name = $_POST["first_name"];
    $last_name = $_POST["last_name"];
    $food_pref = $_POST["food_pref"];
    $over_21 = $_POST["over_21"];
    $is_attending = $_POST["is_attending"];
    $db_conn = open_db_conn();
    if (is_null($db_conn)) {
        $return_value["status"] = false;
        $return_value["reason"] = "Database Error";
    } else {
        if (authorize_request($party_id, $auth_token, $db_conn, $return_value)) {
            if (!update_person($person_id, $first_name, $last_name, $food_pref, $over_21, $is_attending, $db_conn)) {
                $return_value["status"] = false;
                $return_value["reason"] = "Database Error";
            } else {
                $return_value["status"] = true;
                $return_value["person_id"] = $person_id;
                $return_value["first_name"] = $first_name;
                $return_value["last_name"] = $last_name;
                $return_value["food_pref"] = $food_pref;
                $return_value["over_21"] = $over_21;
                $return_value["is_attending"] = $is_attending;
            }
        }
    }
}
function add_or_remove_music_suggestion($add_or_remove)
{
    require_once "create_db_conn.php";
    require_once "db_utils.php";
    require_once "utils.php";
    define("MAX_MUSIC_SUGGESTIONS", 10);
    $return_value = array();
    if (!check_params(["party_id", "auth_token", "artist_name", "song_title"])) {
        $return_value["status"] = false;
        $return_value["reason"] = "Invalid Parameters";
    } else {
        $party_id = $_POST["party_id"];
        $auth_token = $_POST["auth_token"];
        $artist_name = $_POST["artist_name"];
        $song_title = $_POST["song_title"];
        $db_conn = open_db_conn();
        if (is_null($db_conn)) {
            $return_value["status"] = false;
            $return_value["reason"] = "Database Error";
        } else {
            // Validate client data (just make sure artist and song are non-empty)
            if (strlen($artist_name) <= 0) {
                $return_value["status"] = false;
                $return_value["reason"] = "Must enter an artist name";
            } else {
                if (strlen($song_title) <= 0) {
                    $return_value["status"] = false;
                    $return_value["reason"] = "Must enter a song title";
                } else {
                    if (authorize_request($party_id, $auth_token, $db_conn, $return_value)) {
                        if ($add_or_remove == "add") {
                            $suggestion_count = music_suggestion_count($party_id, $db_conn);
                            if ($suggestion_count >= MAX_MUSIC_SUGGESTIONS) {
                                $return_value["status"] = false;
                                $return_value["reason"] = "Music suggestion limit reached";
                                return $return_value;
                            }
                        }
                        // Special case: Make sure Nathan can't remove what's hannenin
                        if ($party_id == 2 && $artist_name == "Soulja Boy" && $song_title == "What's Hannenin'") {
                            $return_value["status"] = false;
                            $return_value["reason"] = "Sorry Nathan, I can't let you do that";
                        } else {
                            $result = false;
                            if ($add_or_remove == "add") {
                                $result = add_music_suggestion($party_id, $artist_name, $song_title, $db_conn);
                            } else {
                                $result = remove_music_suggestion($party_id, $artist_name, $song_title, $db_conn);
                            }
                            if (!$result) {
                                $return_value["status"] = false;
                                $return_value["reason"] = "Database Error";
                            } else {
                                $return_value["status"] = true;
                                $return_value["artist_name"] = $artist_name;
                                $return_value["song_title"] = $song_title;
                            }
                        }
                    }
                }
            }
        }
    }
    return $return_value;
}