<?php
$pageTitle = '个人资料';
require_once dirname(__DIR__) . '/config.php';
require_once dirname(__DIR__) . '/includes/nickname_validator.php';
requireLogin();

$pdo = getDB();
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$user = $stmt->fetch();

$profile_errors = [];
$success = false;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nickname = trim($_POST['nickname'] ?? '');
    $phone    = trim($_POST['phone'] ?? '');
    $province = trim($_POST['province'] ?? '');
    $city     = trim($_POST['city'] ?? '');
    $address  = trim($_POST['address'] ?? '');

    // 昵称完整校验：长度 + 敏感词 + 唯一性（排除自身）
    $nick_err = validateNickname($nickname, $pdo, $_SESSION['user_id']);
    if ($nick_err !== '') {
        $profile_errors[] = $nick_err;
    }

    if (empty($profile_errors)) {
        $stmt = $pdo->prepare("UPDATE users SET nickname=?, phone=?, province=?, city=?, address=? WHERE id=?");
        $stmt->execute([$nickname, $phone, $province, $city, $address, $_SESSION['user_id']]);
        // 同步更新 session 中的昵称
        $_SESSION['user_nickname'] = $nickname;
        $success = true;
        $user['nickname'] = $nickname;
        $user['phone']    = $phone;
        $user['province'] = $province;
        $user['city']     = $city;
        $user['address']  = $address;
    }
}

$provinces = ['北京','天津','上海','重庆','河北','山西','辽宁','吉林','黑龙江','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','海南','四川','贵州','云南','陕西','甘肃','青海','内蒙古','广西','西藏','宁夏','新疆','香港','澳门','台湾'];

require_once dirname(__DIR__) . '/includes/header.php';
?>

<div class="container py-4">
    <div class="row">
        <div class="col-md-3">
            <?php include 'sidebar.php'; ?>
        </div>
        <div class="col-md-9">
            <div class="card border-0 shadow-sm">
                <div class="card-body p-4">
                    <h5 class="fw-bold mb-4"><i class="fas fa-id-card me-2 text-primary"></i>个人资料</h5>

                    <?php if ($success): ?>
                    <div class="alert alert-success"><i class="fas fa-check-circle me-2"></i>资料更新成功！</div>
                    <?php endif; ?>

                    <?php if (!empty($profile_errors)): ?>
                    <div class="alert alert-danger">
                        <?php foreach ($profile_errors as $e): ?><div><?php echo htmlspecialchars($e); ?></div><?php endforeach; ?>
                    </div>
                    <?php endif; ?>

                    <form method="POST">
                        <!-- 邮箱（不可修改） -->
                        <div class="mb-3">
                            <label class="form-label fw-semibold">邮箱地址</label>
                            <input type="email" class="form-control bg-light" value="<?php echo htmlspecialchars($user['email']); ?>" disabled>
                            <small class="text-muted">邮箱地址不可修改</small>
                        </div>

                        <!-- 昵称（可修改） -->
                        <div class="mb-3">
                            <label class="form-label fw-semibold">
                                昵称 <span class="text-danger">*</span>
                                <span class="text-muted fw-normal small ms-1">（2~20字符，论坛等公开场合显示）</span>
                            </label>
                            <input type="text" name="nickname" class="form-control"
                                   value="<?php echo htmlspecialchars($user['nickname'] ?? ''); ?>"
                                   placeholder="请设置您的昵称" required minlength="2" maxlength="20">
                        </div>

                        <!-- 手机号码 -->
                        <div class="mb-3">
                            <label class="form-label fw-semibold">手机号码</label>
                            <input type="tel" name="phone" class="form-control" value="<?php echo htmlspecialchars($user['phone'] ?? ''); ?>">
                        </div>

                        <!-- 省份 / 城市 -->
                        <div class="row mb-3">
                            <div class="col-md-4">
                                <label class="form-label fw-semibold">省份</label>
                                <select name="province" class="form-select">
                                    <option value="">请选择省份</option>
                                    <?php foreach ($provinces as $p): ?>
                                    <option value="<?php echo $p; ?>" <?php echo ($user['province'] ?? '') === $p ? 'selected' : ''; ?>><?php echo $p; ?></option>
                                    <?php endforeach; ?>
                                </select>
                            </div>
                            <div class="col-md-4">
                                <label class="form-label fw-semibold">城市</label>
                                <input type="text" name="city" class="form-control" value="<?php echo htmlspecialchars($user['city'] ?? ''); ?>" placeholder="请输入城市">
                            </div>
                        </div>

                        <!-- 详细地址 -->
                        <div class="mb-4">
                            <label class="form-label fw-semibold">详细地址</label>
                            <textarea name="address" class="form-control" rows="2"><?php echo htmlspecialchars($user['address'] ?? ''); ?></textarea>
                        </div>

                        <button type="submit" class="btn btn-primary px-4"><i class="fas fa-save me-1"></i>保存修改</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<?php require_once dirname(__DIR__) . '/includes/footer.php'; ?>
