<?php
/**
 * Проверка полиса в базе данных
 * База данных: ci20465_erv
 * Таблица: lexrpiority
 */

// Устанавливаем заголовки сразу
header('Content-Type: application/json; charset=utf-8');

// Загружаем .env
require_once __DIR__ . '/env_loader.php';

// Логирование
$log_file = __DIR__ . '/logs/policy_check.log';
$log_dir = dirname($log_file);
if (!is_dir($log_dir)) {
    @mkdir($log_dir, 0755, true);
}

function log_message($message) {
    global $log_file;
    $timestamp = date('Y-m-d H:i:s');
    @file_put_contents($log_file, "[$timestamp] $message\n", FILE_APPEND);
}

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    switch($action) {
        case 'user_verify' : user_verify(); break;   
    }
    exit; // Важно! Завершаем выполнение после обработки действия
}

function user_verify() {
    
    // Тарифы, которые включают покрытие задержки рейса
    $valid_tariffs_basic = [
        'STB0048', 'STB1099', 'STB1100', 'STB2099', 'AVS21500', 'AVS22500'
    ];
    
    $valid_tariffs_other = [
        'SPV0001', 'SPV0002', 'SPV0003', 'SPV0004', 'SPV0005',
        'STV0090',
        'SPV1001', 'SPV1002', 'SPV1003', 'SPV1004', 'SPV1005',
        'SPV2001', 'SPV2002', 'SPV2004', 'SPV2005',
        'OPV1001', 'OPV1002', 'OPV1003', 'OPV1004', 'OPV1005',
        'OPV2001', 'OPV2002', 'OPV2004', 'OPV2005'
    ];

    // Получаем креды из .env (с fallback на старые значения для обратной совместимости)
    $db_host = env('MYSQL_ERV_HOST', env('MYSQL_CRM_HOST', 'localhost'));
    $db_user = env('MYSQL_ERV_USER', 'ci20465_erv');
    $db_pass = env('MYSQL_ERV_PASSWORD', 'c7vOXbmG');
    $db_name = env('MYSQL_ERV_DB', 'ci20465_erv');
    
    log_message("Попытка подключения к БД: host=$db_host, user=$db_user, db=$db_name");
    
    $link = @mysqli_connect($db_host, $db_user, $db_pass, $db_name);
    
    if (!$link) {
        $error = mysqli_connect_error();
        log_message("Ошибка подключения к БД: $error");
        echo json_encode([
            "success" => "false",
            "message" => "Ошибка подключения к базе данных: " . $error,
            "result" => ""
        ], JSON_UNESCAPED_UNICODE);
        return;
    }
    
    mysqli_set_charset($link, "utf8");
    log_message("Подключение к БД успешно");

    $inn = isset($_POST['inn']) ? trim($_POST['inn']) : '';
    
    if (empty($inn)) {
        log_message("Номер полиса не указан");
        echo json_encode([
            "success" => "false",
            "message" => "Номер полиса не указан",
            "result" => ""
        ], JSON_UNESCAPED_UNICODE);
        mysqli_close($link);
        return;
    }
    
    log_message("Проверка полиса: " . substr($inn, 0, 5) . "***");
    
    // Нормализуем номер полиса: заменяем кириллическую "Е" на латинскую "E"
    // Это нужно, т.к. в базе данных используются только латинские буквы
    $inn_original = $inn;
    $inn = str_replace('Е', 'E', $inn); // Кириллическая Е -> латинская E
    $inn = str_replace('е', 'e', $inn); // Кириллическая е -> латинская e (на всякий случай)
    $inn = str_replace('А', 'A', $inn); // Кириллическая А -> латинская A
    $inn = str_replace('а', 'a', $inn); // Кириллическая а -> латинская a
    
    if ($inn_original !== $inn) {
        log_message("Номер полиса нормализован: $inn_original -> $inn");
    }
    
    // Экранируем для безопасности
    $inn_escaped = mysqli_real_escape_string($link, $inn);
    
    // Ищем полис по номеру voucher
    $sql = "SELECT * FROM lexrpiority WHERE voucher = '$inn_escaped' LIMIT 1";
    log_message("SQL запрос: SELECT * FROM lexrpiority WHERE voucher = '***'");
    
    $result = mysqli_query($link, $sql);
    
    if (!$result) {
        $error = mysqli_error($link);
        log_message("Ошибка SQL запроса: $error");
        echo json_encode([
            "success" => "false",
            "message" => "Ошибка запроса к базе данных: " . $error,
            "result" => ""
        ], JSON_UNESCAPED_UNICODE);
        mysqli_close($link);
        return;
    }
    
    $row = mysqli_fetch_assoc($result);
    
    if (!$row) {
        // Полис не найден в базе
        log_message("Полис не найден в базе данных");
        echo json_encode([
            "success" => "false",
            "message" => "Полис не найден",
            "result" => ""
        ], JSON_UNESCAPED_UNICODE);
        mysqli_close($link);
        return;
    }
    
    log_message("Полис найден в БД. Тарифы: basic=" . ($row['tariff_code_basic'] ?? 'нет') . ", other=" . ($row['tariff_code_other'] ?? 'нет'));
    
    // Полис найден, проверяем тариф
    $tariff_basic = isset($row['tariff_code_basic']) ? trim($row['tariff_code_basic']) : '';
    $tariff_other = isset($row['tariff_code_other']) ? trim($row['tariff_code_other']) : '';
    
    $has_valid_tariff = in_array($tariff_basic, $valid_tariffs_basic) || 
                        in_array($tariff_other, $valid_tariffs_other);
    
    if ($has_valid_tariff) {
        // Полис найден и тариф подходит
        log_message("Полис валиден. Тариф подходит для задержки рейса");
        echo json_encode([
            "success" => "true",
            "message" => "Полис найден",
            "result" => $row
        ], JSON_UNESCAPED_UNICODE);
    } else {
        // Полис найден, но тариф не включает покрытие задержки рейса
        log_message("Полис найден, но тариф не подходит для задержки рейса");
        echo json_encode([
            "success" => "false",
            "message" => "Ваш полис не включает покрытие задержки рейса",
            "result" => ""
        ], JSON_UNESCAPED_UNICODE);
    }
    
    mysqli_close($link);
}

?>
