<?php
ini_set('display_errors', 1);

require_once '../../../../resources/base_path_include.php';

require_once $base_path_to_learning_resources  . "includes/connect.php"; // use require for mandatory files
require_once $base_path_to_learning_resources . 'lib/function.php';
require_once $base_path_to_learning_resources . 'lib/validate_api_signature.php';

//valdation file
require_once $base_path_to_learning_resources . 'lib/validate_function.php';
require_once $base_path_to_learning . 'user_management/authenticate.php';
//db access function
require_once $base_path_to_learning_resources . 'includes/specific_db_config.php';
require_once $base_path_to_learning . 'functions/common_functions.php';

$postdata = json_decode(file_get_contents("php://input"), true);
// print_r($postdata);
checkIfNoPhpContentsReceive();


if ( !isset($postdata['staff_group_id']) or !checkIfIssetAndNotEmpty($postdata['staff_group_id']) or
  !isset($postdata['institution_id']) or !checkIfIssetAndNotEmpty($postdata['institution_id']) or
    !isset($postdata['api_signature']) or !checkIfIssetAndNotEmpty($postdata['api_signature']) or
    !isset($postdata['function_type']) or !checkIfIssetAndNotEmpty($postdata['function_type'])  or 
    !isset($postdata['jwt_token']) or  !checkIfIssetAndNotEmpty($postdata['jwt_token'])
) {
    errorreturn("All * fields are required.");
}
validateApiSignature($postdata['api_signature']);

$jwttoken = $postdata['jwt_token'];
$jwt_validate = authenticate_jwt($jwttoken);
//then workspace_id is iin decodede data of jwt use from there
$userid = $jwt_validate->data->id;
$workspace_id = $jwt_validate->data->workspace_id;
$username = $jwt_validate->data->username;
$role = $jwt_validate->data->role;

$specific_db_name = validateUserAccess($conn_rjllearning, $userid, $role, $workspace_id,['superadmin','admin'],null);
if (!$specific_db_name) {
    errorreturn('Access denied.');
} else {
    $conn_rjllearning_specific = dynamicDbConnection($specific_db_name);
}


function getSpecificStaffGroup($conn_rjllearning_specific,$institution_id,$staff_group_id) {
    
// Query for fetching staff group details
$staff_group_query = $conn_rjllearning_specific->prepare("SELECT * FROM other_staff_groups WHERE id = ? AND institution_id = ?");
$staff_group_query->execute(array($staff_group_id, $institution_id));
$rows = $staff_group_query->fetchAll();

if (count($rows) === 1) {
    $branch_id = $rows[0]['branch_id'];
    $branches = []; // Initialize branches array

    if ($branch_id === 'all') {
        // Handle 'all' branch scenario
        $branches[] = array('branch_id' => $branch_id, 'name' => ucwords($branch_id));
    } else {
        // Dynamic query for fetching branches based on branch_id list
        $branch_query = "SELECT * FROM branch WHERE institution_id = ? AND id IN ($branch_id) AND status = ?";
        $branch_query_params = [$institution_id, '1']; // Add institution_id and status to parameters
        $branch_query_stmt = $conn_rjllearning_specific->prepare($branch_query);
        $branch_query_stmt->execute($branch_query_params);
        $branch_rows = $branch_query_stmt->fetchAll();

        foreach ($branch_rows as $branch) {
            $branches[] = array('branch_id' => $branch['id'], 'name' => $branch['name']);
        }
    }

    return array(
        'staff_group_id' => $rows[0]['id'],
        'branch_id' => $branches,
        'group_name' => $rows[0]['group_name']
    );
} else {
    errorreturn("Staff group not found.");
}


}

if($postdata['function_type']  == "fetch_specific_staff_group") {  
    
    $staff_group_id = trim($postdata['staff_group_id']);
    $institution_id = trim($postdata['institution_id']);    
    
    $success['data'] = getSpecificStaffGroup($conn_rjllearning_specific,$institution_id,$staff_group_id);
    
    successreturn($success);
      
}

