<?php

require "../../../const.php";
require SITE_URL . "init.php";
?>

<?php 
//Создаем экземпляр бд-контроллера и готовимся к коннекту
$database = new DataBaseController();
$database->_constructor($server, $username, $password, $db);
if (isset($_POST)) {
    //Если пришел запрос на выборку всех юзеров-не юристов и не админов
    if (isset($_POST['getAvailableUsers'])) {
        $database->connect();
        $result = $database->getQuery("SELECT * FROM users WHERE (role_id<> 4 and role_id<>1)");
        echo json_encode($result);
        $database->disconnect();
    }
    //Если пришел запрос на выборку юристов.
    if (isset($_POST['getLawyers'])) {
        $toSend = array();
        $database->connect();
        //Проверяем, установлен ли айди города.
        //Если да, то делаем выборку по городу
        if ($_POST['cityId'] === true) {
            $cityId = $_POST['cityId'];
            $lawyers = $database->getQuery("SELECT * FROM lawyers WHERE city_id = {$cityId}");
        } else {
            $lawyers = $database->getQuery("SELECT * FROM lawyers");
        }
        for ($i = 0; $i < count($lawyers); $i++) {
     $userEmail = strtolower($_POST['userEmail']);
     $database->connect();
     $result = $database->setQuery("INSERT INTO users (username,password,name,second_name,email,role_id) VALUES ('{$login}','{$password}','{$userName}','{$userSecondName}','{$userEmail}',2)");
     $result = $database->execQuery();
     $database->disconnect();
     echo $result;
 }
 //Если пользователь пытается авторизоваться.
 if (isset($_POST['autorizeUser'])) {
     //Введенный им логин превращаем в прописные.
     $login = strtolower($_POST['login']);
     //Пароль хешируем с помощью md5.
     $password = md5($_POST['password']);
     $database->connect();
     //Получаем пользователя с полученным именем.
     $result = $database->getQuery("SELECT * FROM users WHERE username = '******'");
     //Если таковой существует
     if (count($result) != NULL) {
         //Если хешированный пароль из базы совпадает с хешированным паролем, который ввел пользователь.
         if ($result[0]['password'] == $password) {
             $userId = $result[0]['id'];
             $userName = $result[0]['name'];
             $userSecondName = $result[0]['second_name'];
             $userEmail = $result[0]['email'];
             $userRoleId = $result[0]['role_id'];
             $result = $database->getQuery("SELECT * FROM roles WHERE id = '{$userRoleId}'");
             $userRole = $result[0]['role'];
             $result = array("id" => $userId, "login" => $login, "password" => $password, "name" => $userName, "secondName" => $userSecondName, "email" => $userEmail, "role" => $userRole, "roleId" => $userRoleId);
             //Устанавливаем куки, в формате json.
             setcookie('userInfo', json_encode($result), time() + COOKIE_TIME, '/');
             //Устанавливаем сессию для авторизовавшегося пользователя.
    for ($i = 0; $i < count($countries); $i++) {
        if ($id == $countries[$i]['id']) {
            return $countries[$i]['country'];
        }
    }
}
//Если на страницу пришел запрос
if (isset($_POST)) {
    //И если он требует выдать информацию для заполнения таблица странами
    if (isset($_POST['fillTableCountries'])) {
        //Массив, который будет отправлен в конце
        $toSend = array();
        //Устанавливаем соединение
        $database->connect();
        //Записываем все существующие в БД страны в массив.
        $countries = $database->getQuery("SELECT * FROM countries");
        //Цикл отработает столько раз, сколько стран мы получили.
        for ($i = 0; $i < count($countries); $i++) {
            $id = $countries[$i]['id'];
            $country = $countries[$i]['country'];
            //Определяем количество юристов в выбранной стране
            $lawyersCount = count($database->getQuery("SELECT * FROM lawyers WHERE country_id = {$id}"));
            //Этот массив станет одним из значений передаваемого массива
            $result = array("id" => $id, "country" => $country, "lawyersCount" => $lawyersCount);
            //Вставляем результат в итоговый массив и возвращаемся в начало цикла.
            array_push($toSend, $result);
        }
        //Передаем итоговый массив ajax-скрипту в формате JSON.
        echo json_encode($toSend);
        //Разрываем соединение.
        $database->disconnect();