<?php
// Profil ve şifre güncelleme sayfası
m_admin_check();

$action = $_GET['action'] ?? 'profile';
$admin_id = m_get_session('m_admin');

// Mevcut admin bilgilerini al
$admin_data = $db->table('admins')->where('id', '=', $admin_id)->get();
$admin = $admin_data['data'][0] ?? null;

if (!$admin) {
    m_redirect(ADMIN_URL . '/logout');
}

// Form işlemleri
if ($_POST) {
    if ($action === 'profile') {
        // Profil güncelleme - Sadece POST verilerini al
        $email = $_POST['email'] ?? '';
        $name = $_POST['name'] ?? '';
        $lastname = $_POST['lastname'] ?? '';
        
        // Email kontrolü
        if (empty($email)) {
            m_set_session('formSuccess', false);
            m_set_session('error_message', 'Email adresi gereklidir!');
        } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            m_set_session('formSuccess', false);
            m_set_session('error_message', 'Geçerli bir email adresi giriniz!');
        } else {
            // Email benzersizlik kontrolü (kendisi hariç)
            $existing = $db->table('admins')->where('email', '=', $email)->where('id', '!=', $admin_id)->get();
            if (!empty($existing['data'])) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', 'Bu email adresi başka bir kullanıcı tarafından kullanılıyor!');
            } else {
                // Güncelleme verisi hazırla
                $update_data = ['email' => $email];
                
                // Name ve lastname alanları varsa ekle
                if (isset($admin['name'])) {
                    $update_data['name'] = $name;
                }
                if (isset($admin['lastname'])) {
                    $update_data['lastname'] = $lastname;
                }
                
                // Updated_at alanı varsa ekle
                if (isset($admin['updated_at'])) {
                    $update_data['updated_at'] = $db->now();
                }
                
                $result = $db->table('admins')->where('id', '=', $admin_id)->update($update_data);
                
                if ($result) {
                    m_set_session('formSuccess', true);
                    m_set_session('success_message', 'Profil bilgileri başarıyla güncellendi!');
                    m_redirect($_SERVER['REQUEST_URI']);
                } else {
                    m_set_session('formSuccess', false);
                    m_set_session('error_message', 'Profil güncellenirken bir hata oluştu!');
                }
            }
        }
    } elseif ($action === 'password') {
        // Şifre güncelleme - Sadece POST verilerini al
        $current_password = $_POST['current_password'] ?? '';
        $new_password = $_POST['new_password'] ?? '';
        $confirm_password = $_POST['confirm_password'] ?? '';
        
        // Validasyon
        if (empty($current_password) || empty($new_password) || empty($confirm_password)) {
            m_set_session('formSuccess', false);
            m_set_session('error_message', 'Tüm alanları doldurunuz!');
        } elseif ($new_password !== $confirm_password) {
            m_set_session('formSuccess', false);
            m_set_session('error_message', 'Yeni şifreler eşleşmiyor!');
        } else {
            // Mevcut şifre kontrolü
            $current_password_valid = false;
            $stored_password = $admin['password'];
            
            if (strlen($stored_password) > 32) {
                // Yeni sistem (Argon2ID)
                $current_password_valid = m_verify_password($current_password, $stored_password);
            } else {
                // Eski sistem (MD5)
                $current_password_valid = (m_password($current_password) === $stored_password);
            }
            
            if (!$current_password_valid) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', 'Mevcut şifre yanlış!');
            } else {
                // Yeni şifre güvenlik kontrolü
                $password_errors = m_password_strength_check($new_password);
                if (!empty($password_errors)) {
                    m_set_session('formSuccess', false);
                    m_set_session('error_message', 'Şifre güvenlik kriterleri: ' . implode(', ', $password_errors));
                } else {
                    // Şifreyi güncelle
                    $new_hash = m_password_secure($new_password);
                    $update_data = ['password' => $new_hash];
                    
                    // Updated_at alanı varsa ekle
                    if (isset($admin['updated_at'])) {
                        $update_data['updated_at'] = $db->now();
                    }
                    
                    $result = $db->table('admins')->where('id', '=', $admin_id)->update($update_data);
                    
                    if ($result) {
                        m_set_session('formSuccess', true);
                        m_set_session('success_message', 'Şifre başarıyla güncellendi!');
                        m_redirect($_SERVER['REQUEST_URI']);
                    } else {
                        m_set_session('formSuccess', false);
                        m_set_session('error_message', 'Şifre güncellenirken bir hata oluştu! Veritabanı hatası: ' . $db->error());
                    }
                }
            }
        }
    }
}

// Güncel admin bilgilerini tekrar al
$admin_data = $db->table('admins')->where('id', '=', $admin_id)->get();
$admin = $admin_data['data'][0] ?? null;
?>

<div class="row">
    <div class="col-lg-12">
        <div class="card">
            <div class="card-header">
                <h4 class="card-title mb-0">
                    <?= lang('profile.title', [], 'Profil Yönetimi') ?>
                </h4>
            </div>
            <div class="card-body">
                <ul class="nav nav-tabs nav-tabs-custom" role="tablist">
                    <li class="nav-item">
                        <a class="nav-link <?= $action === 'profile' ? 'active' : '' ?>" 
                           href="<?= ADMIN_URL ?>/profile?action=profile" role="tab">
                            <i class="fas fa-user me-2"></i>
                            <?= lang('profile.tabs.profile', [], 'Profil Bilgileri') ?>
                        </a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link <?= $action === 'password' ? 'active' : '' ?>" 
                           href="<?= ADMIN_URL ?>/profile?action=password" role="tab">
                            <i class="fas fa-lock me-2"></i>
                            <?= lang('profile.tabs.password', [], 'Şifre Değiştir') ?>
                        </a>
                    </li>
                </ul>

                <div class="tab-content p-4">
                    <!-- Profil Bilgileri -->
                    <div class="tab-pane <?= $action === 'profile' ? 'active' : '' ?>" id="profile-tab">
                        <form method="POST" action="<?= ADMIN_URL ?>/profile?action=profile">
                            <div class="row">
                                <div class="col-md-4">
                                    <div class="mb-3">
                                        <label for="email" class="form-label">
                                            <?= lang('profile.fields.email', [], 'Email Adresi') ?> *
                                        </label>
                                        <input type="email" class="form-control" id="email" name="email" 
                                               value="<?= htmlspecialchars($admin['email'] ?? '') ?>" required>
                                    </div>
                                </div>
                                <?php if (isset($admin['name'])): ?>
                                <div class="col-md-4">
                                    <div class="mb-3">
                                        <label for="name" class="form-label">
                                            <?= lang('profile.fields.name', [], 'Ad') ?>
                                        </label>
                                        <input type="text" class="form-control" id="name" name="name" 
                                               value="<?= htmlspecialchars($admin['name'] ?? '') ?>">
                                    </div>
                                </div>
                                <?php endif; ?>
                                <?php if (isset($admin['lastname'])): ?>
                                <div class="col-md-4">
                                    <div class="mb-3">
                                        <label for="lastname" class="form-label">
                                            <?= lang('profile.fields.lastname', [], 'Soyad') ?>
                                        </label>
                                        <input type="text" class="form-control" id="lastname" name="lastname" 
                                               value="<?= htmlspecialchars($admin['lastname'] ?? '') ?>">
                                    </div>
                                </div>
                                <?php endif; ?>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label class="form-label">
                                            <?= lang('profile.fields.last_login', [], 'Son Giriş') ?>
                                        </label>
                                        <input type="text" class="form-control" 
                                               value="<?= htmlspecialchars($admin['last_login'] ?? '-') ?>" readonly>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label class="form-label">
                                            <?= lang('profile.fields.last_ip', [], 'Son IP') ?>
                                        </label>
                                        <input type="text" class="form-control" 
                                               value="<?= htmlspecialchars($admin['last_ip'] ?? '-') ?>" readonly>
                                    </div>
                                </div>
                            </div>
                            
                            <div class="text-end">
                                <button type="submit" class="btn btn-primary">
                                    <i class="fas fa-save me-2"></i>
                                    <?= lang('profile.buttons.save', [], 'Kaydet') ?>
                                </button>
                            </div>
                        </form>
                    </div>
                    
                    <!-- Şifre Değiştirme -->
                    <div class="tab-pane <?= $action === 'password' ? 'active' : '' ?>" id="password-tab">
                        <div class="alert alert-info mb-4">
                            <i class="fas fa-info-circle me-2"></i>
                            <strong><?= lang('profile.password_info_title', [], 'Şifre Değiştirme') ?></strong><br>
                            <?= lang('profile.password_info_text', [], 'Güvenliğiniz için şifrenizi düzenli olarak değiştirmeniz önerilir.') ?>
                        </div>
                        
                        <?php if (isset($_SESSION['formSuccess'])): ?>
                            <?php if ($_SESSION['formSuccess']): ?>
                                <div class="alert alert-success mb-4">
                                    <i class="fas fa-check-circle me-2"></i>
                                    <?= $_SESSION['success_message'] ?? 'İşlem başarılı!' ?>
                                </div>
                            <?php else: ?>
                                <div class="alert alert-danger mb-4">
                                    <i class="fas fa-exclamation-triangle me-2"></i>
                                    <?= $_SESSION['error_message'] ?? 'Bir hata oluştu!' ?>
                                </div>
                            <?php endif; ?>
                        <?php endif; ?>
                        
                        <form method="POST" action="<?= ADMIN_URL ?>/profile?action=password">
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label for="current_password" class="form-label">
                                            <?= lang('profile.fields.current_password', [], 'Mevcut Şifre') ?> *
                                        </label>
                                        <input type="password" class="form-control" id="current_password" 
                                               name="current_password" required>
                                    </div>
                                </div>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label for="new_password" class="form-label">
                                            <?= lang('profile.fields.new_password', [], 'Yeni Şifre') ?> *
                                        </label>
                                        <input type="password" class="form-control" id="new_password" 
                                               name="new_password" required>
                                        <div class="form-text">
                                            <?= lang('profile.password_requirements', [], 'Şifre en az 8 karakter olmalı ve büyük harf, küçük harf, rakam ve özel karakter içermelidir.') ?>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="mb-3">
                                        <label for="confirm_password" class="form-label">
                                            <?= lang('profile.fields.confirm_password', [], 'Yeni Şifre (Tekrar)') ?> *
                                        </label>
                                        <input type="password" class="form-control" id="confirm_password" 
                                               name="confirm_password" required>
                                    </div>
                                </div>
                            </div>
                            
                            <div class="text-end">
                                <button type="submit" class="btn btn-warning">
                                    <i class="fas fa-key me-2"></i>
                                    <?= lang('profile.buttons.change_password', [], 'Şifreyi Değiştir') ?>
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Tab switching functionality
    const tabLinks = document.querySelectorAll('.nav-tabs .nav-link');
    const tabPanes = document.querySelectorAll('.tab-pane');
    
    tabLinks.forEach(link => {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            
            // Remove active class from all tabs and panes
            tabLinks.forEach(l => l.classList.remove('active'));
            tabPanes.forEach(p => p.classList.remove('active'));
            
            // Add active class to clicked tab
            this.classList.add('active');
            
            // Show corresponding pane
            const href = this.getAttribute('href');
            const targetId = href.split('=')[1];
            const targetPane = document.getElementById(targetId + '-tab');
            if (targetPane) {
                targetPane.classList.add('active');
            }
            
            // Update URL without page reload
            const url = new URL(window.location);
            url.searchParams.set('action', targetId);
            window.history.pushState({}, '', url);
        });
    });
    
    // Show correct tab on page load
    const urlParams = new URLSearchParams(window.location.search);
    const currentAction = urlParams.get('action') || 'profile';
    
    // Remove all active classes
    tabLinks.forEach(l => l.classList.remove('active'));
    tabPanes.forEach(p => p.classList.remove('active'));
    
    // Add active class to current tab and pane
    const activeTab = document.querySelector(`[href*="action=${currentAction}"]`);
    const activePane = document.getElementById(currentAction + '-tab');
    
    if (activeTab) activeTab.classList.add('active');
    if (activePane) activePane.classList.add('active');
});
</script>
