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

$host = '10.0.0.3';
$dbname = 'beauty_autopilot';
$user = 'beauty_bot';
$pass = 'beauty_bot_pass';
$bot_token = '8206182830:AAG3ktqirHiqjQeUhEVT-Tx1F07fRZVJfN8';

$conn = null;
$services = [];
$masters = [];
$errors = [];
$success = false;
$message = '';

try {
    $conn = new PDO("pgsql:host=$host;dbname=$dbname", $user, $pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Load services
    $stmt = $conn->query("SELECT id, name, duration_minutes FROM services WHERE salon_id = 1 ORDER BY name");
    $services = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Load masters
    $stmt = $conn->query("SELECT id, name FROM masters WHERE salon_id = 1 ORDER BY name");
    $masters = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Handle POST
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $name = htmlspecialchars($_POST['name'] ?? '');
        $phone = htmlspecialchars($_POST['phone'] ?? '');
        $service_id = intval($_POST['service_id'] ?? 0);
        $master_id = intval($_POST['master_id'] ?? 0);
        $date = htmlspecialchars($_POST['date'] ?? '');
        $time = htmlspecialchars($_POST['time'] ?? '');
        $notes = htmlspecialchars($_POST['notes'] ?? '');
        
        // Validation
        if (empty($name)) $errors[] = 'Укажите имя';
        if (empty($phone) || !preg_match('/^\+375\d{9}$/', $phone)) $errors[] = 'Телефон в формате +375XXXXXXXXX';
        if ($service_id <= 0) $errors[] = 'Выберите услугу';
        if (empty($date)) $errors[] = 'Укажите дату';
        if (empty($time)) $errors[] = 'Выберите время';
        
        if (empty($errors)) {
            $stmt = $conn->prepare("
                INSERT INTO appointments (salon_id, client_name, client_phone, service_id, master_id, appointment_date, appointment_time, notes, status)
                VALUES (1, :name, :phone, :service_id, :master_id, :date, :time, :notes, 'confirmed')
            ");
            $stmt->execute([
                ':name' => $name,
                ':phone' => $phone,
                ':service_id' => $service_id,
                ':master_id' => $master_id ?: null,
                ':date' => $date,
                ':time' => $time,
                ':notes' => $notes
            ]);
            
            $appointment_id = $conn->lastInsertId();
            $success = true;
            $message = "Спасибо, $name! Вы записаны на $date в $time.";
            
            // Notify master via Telegram
            if ($master_id > 0) {
                $stmt = $conn->prepare("SELECT telegram_id FROM masters WHERE id = :id");
                $stmt->execute([':id' => $master_id]);
                $master = $stmt->fetch(PDO::FETCH_ASSOC);
                if (!empty($master['telegram_id'])) {
                    $text = urlencode("📅 Новая запись!\nКлиент: $name\nТелефон: $phone\nУслуга: ID $service_id\nДата: $date $time\nЗаметки: " . ($notes ?: 'нет'));
                    $chat_id = $master['telegram_id'];
                    file_get_contents("https://api.telegram.org/bot$bot_token/sendMessage?chat_id=$chat_id&text=$text");
                }
            }
        }
    }
} catch (PDOException $e) {
    $errors[] = 'Ошибка базы данных: ' . $e->getMessage();
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Запись онлайн | Салон красоты «Элизабет»</title>
    <link rel="stylesheet" href="/style.css">
    <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@300;400;500&display=swap" rel="stylesheet">
    <style>
        body { background-color: #FDF9F9; font-family: 'Montserrat', sans-serif; color: #333; }
        .container { max-width: 800px; margin: 40px auto; padding: 0 20px; }
        h1 { font-family: 'Cormorant Garamond', serif; color: #D4729C; text-align: center; margin-bottom: 30px; }
        .form-group { margin-bottom: 20px; }
        label { display: block; margin-bottom: 8px; color: #C9A962; font-weight: 500; }
        input, select, textarea { width: 100%; padding: 12px; border: 2px solid #C9A962; border-radius: 8px; font-size: 16px; }
        button { background: #D4729C; color: white; border: none; padding: 14px 28px; border-radius: 8px; font-size: 18px; cursor: pointer; width: 100%; }
        button:hover { background: #B85C84; }
        .error { color: #D4729C; margin: 10px 0; }
        .success { color: #C9A962; font-size: 18px; text-align: center; padding: 20px; }
        .required::after { content: ' *'; color: #D4729C; }
        .hero-button { display: inline-block; margin-top: 20px; background: #C9A962; color: white; padding: 12px 24px; border-radius: 8px; text-decoration: none; }
        .hero-button:hover { background: #B5974F; }
    </style>
</head>
<body>
    <header>
        <nav>
            <div class="logo">Элизабет</div>
            <a href="/">Главная</a>
            <a href="/services.html">Услуги</a>
            <a href="/team.html">Мастера</a>
            <a href="/gallery.html">Галерея</a>
            <a href="/contacts.html">Контакты</a>
            <a href="/booking.php" style="color: #D4729C; font-weight: bold;">Запись онлайн</a>
        </nav>
    </header>

    <div class="container">
        <h1>Запись онлайн</h1>
        
        <?php if ($success): ?>
            <div class="success">
                <h2><?= $message ?></h2>
                <p>Мы свяжемся с вами для подтверждения.</p>
                <a href="/" class="hero-button">Вернуться на главную</a>
            </div>
        <?php else: ?>
            <?php if (!empty($errors)): ?>
                <div class="error">
                    <?php foreach ($errors as $err): ?>
                        <p><?= $err ?></p>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>
            
            <form method="POST">
                <div class="form-group">
                    <label class="required">Ваше имя</label>
                    <input type="text" name="name" value="<?= $_POST['name'] ?? '' ?>" required>
                </div>
                
                <div class="form-group">
                    <label class="required">Телефон</label>
                    <input type="tel" name="phone" placeholder="+375XXXXXXXXX" pattern="^\+375\d{9}$" value="<?= $_POST['phone'] ?? '' ?>" required>
                </div>
                
                <div class="form-group">
                    <label class="required">Услуга</label>
                    <select name="service_id" required>
                        <option value="">Выберите услугу</option>
                        <?php foreach ($services as $s): ?>
                            <option value="<?= $s['id'] ?>" <?= ($_POST['service_id'] ?? 0) == $s['id'] ? 'selected' : '' ?>>
                                <?= $s['name'] ?> (<?= $s['duration_minutes'] ?> мин)
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                
                <div class="form-group">
                    <label>Мастер (опционально)</label>
                    <select name="master_id">
                        <option value="0">Любой мастер</option>
                        <?php foreach ($masters as $m): ?>
                            <option value="<?= $m['id'] ?>" <?= ($_POST['master_id'] ?? 0) == $m['id'] ? 'selected' : '' ?>>
                                <?= $m['name'] ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                
                <div class="form-group">
                    <label class="required">Дата</label>
                    <input type="date" name="date" min="<?= date('Y-m-d', strtotime('+1 day')) ?>" value="<?= $_POST['date'] ?? '' ?>" required>
                </div>
                
                <div class="form-group">
                    <label class="required">Время</label>
                    <select name="time" required>
                        <option value="">Выберите время</option>
                        <?php for ($h = 9; $h <= 19; $h++): ?>
                            <option value="<?= sprintf('%02d:00', $h) ?>" <?= ($_POST['time'] ?? '') == sprintf('%02d:00', $h) ? 'selected' : '' ?>>
                                <?= sprintf('%02d:00', $h) ?>
                            </option>
                            <?php if ($h < 19): ?>
                                <option value="<?= sprintf('%02d:30', $h) ?>" <?= ($_POST['time'] ?? '') == sprintf('%02d:30', $h) ? 'selected' : '' ?>>
                                    <?= sprintf('%02d:30', $h) ?>
                                </option>
                            <?php endif; ?>
                        <?php endfor; ?>
                    </select>
                </div>
                
                <div class="form-group">
                    <label>Комментарий</label>
                    <textarea name="notes" rows="3"><?= $_POST['notes'] ?? '' ?></textarea>
                </div>
                
                <button type="submit">Записаться</button>
            </form>
        <?php endif; ?>
    </div>

    <footer>
        <p>© 2026 Салон красоты «Элизабет». Все права защищены.</p>
        <p>Зельва, ул. 17 Сентября, дом 11</p>
        <p>Телефон: +375 (29) 123-45-67</p>
    </footer>
</body>
</html>