<?php

$method = $_SERVER['REQUEST_METHOD'];

if ($method === 'POST') {
    $data = RestApi::getInput();
    $action = $data['action'] ?? null;

    // Авторизация
    if ($action === 'auth_login') {
        $account = new Account();
        $result = $account->create_session(
            $data['username'] ?? null,
            $data['password'] ?? null
        );
        RestApi::response($result);
    }

    // Проверка сессии
    if ($action === 'check_session') {
        $account = new Account();
        $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null;
        $result = $account->check_session($keycookies);
        RestApi::response($result);
    }

    // Выход (только текущая сессия)
    if ($action === 'logout') {
        $account = new Account();
        $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null;
        $result = $account->logout($keycookies);
        RestApi::response($result);
    }

    // Выход со всех устройств
    if ($action === 'logout_all') {
        $account = new Account();
        $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null;
        $result = $account->logout_all($keycookies);
        RestApi::response($result);
    }

    // Создание пользователя
    if ($action === 'create_user') {
        $account = new Account();
        $account->name = $data['name'] ?? null;
        $account->username = $data['username'] ?? null;
        $account->password = $data['password'] ?? null;
        $account->id_department = $data['id_department'] ?? null;
        $account->avatar_url = $data['avatar_url'] ?? null;
        $account->telegram = $data['telegram'] ?? null;

        $result = $account->create();
        RestApi::response($result);
    }

    // Поиск пользователя по логину
    if ($action === 'search') {
        $current_user_id = RestApi::getCurrentUserId();
        $username = trim($data['username'] ?? '');
        
        if (!$username) {
            RestApi::response(['success' => false, 'errors' => ['username' => 'Введите логин']], 400);
        }
        
        // Ищем пользователя по username
        $user = Database::get('accounts', ['id', 'name', 'username', 'avatar_url'], [
            'username' => $username
        ]);
        
        if (!$user) {
            RestApi::response(['success' => false, 'errors' => ['username' => 'Пользователь не найден']]);
        }
        
        RestApi::response(['success' => true, 'data' => $user]);
    }

    // Проверяем, что метод не пустой
    if (!$action) {
        RestApi::response(['success' => false, 'error' => 'Укажите метод'], 400);
    }
}

if ($method === 'GET') {
    // Получение участников проекта
    // ?id_project=X (обязательный)
    $current_user_id = RestApi::getCurrentUserId();
    $id_project = $_GET['id_project'] ?? null;
    
    if (!$id_project) {
        RestApi::response(['success' => false, 'errors' => ['id_project' => 'Проект не указан']], 400);
    }
    
    // Проверяем доступ к проекту
    ProjectAccess::requireAccess((int)$id_project, $current_user_id);
    
    // Получаем участников проекта
    $members = ProjectAccess::getMembers((int)$id_project);
    
    RestApi::response(['success' => true, 'data' => $members]);
}


?>
