<?php
$isEdit = isset($_GET['id']);
$articleData = null;
$message = '';
$error = '';

if ($isEdit) {
    $articleId = (int)$_GET['id'];
    $articleData = $article->getById($articleId);

    if (!$articleData) {
        redirect('/admin/?route=articles');
    }
}

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = sanitize_input($_POST['title']);
    $content = $_POST['content']; // Don't sanitize content to preserve formatting
    $excerpt = sanitize_input($_POST['excerpt']);
    $type = sanitize_input($_POST['type']);
    $status = sanitize_input($_POST['status']);
    $categoryId = (int)$_POST['category_id'] ?: null;
    $featuredImage = sanitize_input($_POST['featured_image']);
    $metaTitle = sanitize_input($_POST['meta_title']);
    $metaDescription = sanitize_input($_POST['meta_description']);
    $sourceUrl = sanitize_input($_POST['source_url']);
    $isAiGenerated = isset($_POST['is_ai_generated']) ? 1 : 0;

    if ($isEdit) {
        if ($article->update($articleId, $title, $content, $excerpt, $type, $status, $categoryId, $featuredImage, $metaTitle, $metaDescription, $sourceUrl, $isAiGenerated)) {
            $message = __('article_updated');
            $articleData = $article->getById($articleId); // Refresh data
        } else {
            $error = __('article_update_failed');
        }
    } else {
        $authorId = $_SESSION['user_id'];
        $newId = $article->create($title, $content, $excerpt, $type, $status, $authorId, $categoryId, $featuredImage, $metaTitle, $metaDescription, $sourceUrl, $isAiGenerated);

        if ($newId) {
            redirect('/admin/?route=edit-article&id=' . $newId . '&success=1');
        } else {
            $error = __('article_create_failed');
        }
    }
}

$categories = $category->getAll();

// Success message from redirect
if (isset($_GET['success'])) {
    $message = __('article_created');
}
?>

<div class="row">
    <div class="col-lg-8">
        <?php if ($message): ?>
            <div class="alert alert-success alert-dismissible fade show" role="alert">
                <i class="fas fa-check-circle"></i> <?= htmlspecialchars($message) ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php endif; ?>

        <?php if ($error): ?>
            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                <i class="fas fa-exclamation-circle"></i> <?= htmlspecialchars($error) ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php endif; ?>

        <form method="POST" data-validate>
            <div class="card">
                <div class="card-header">
                    <h5 class="card-title mb-0">
                        <i class="fas fa-edit"></i>
                        <?= $isEdit ? __('edit_article') : __('new_article') ?>
                    </h5>
                </div>
                <div class="card-body">
                    <div class="mb-3">
                        <label for="title" class="form-label"><?= __('title') ?> <span class="text-danger">*</span></label>
                        <input type="text" class="form-control" id="title" name="title"
                               value="<?= htmlspecialchars($articleData['title'] ?? '') ?>" required>
                    </div>

                    <div class="mb-3">
                        <label for="excerpt" class="form-label"><?= __('excerpt') ?></label>
                        <textarea class="form-control" id="excerpt" name="excerpt" rows="3"
                                  placeholder="<?= __('excerpt_placeholder') ?>"><?= htmlspecialchars($articleData['excerpt'] ?? '') ?></textarea>
                    </div>

                    <div class="mb-3">
                        <label for="content" class="form-label"><?= __('content') ?> <span class="text-danger">*</span></label>
                        <textarea class="form-control" id="content" name="content" rows="15" required><?= htmlspecialchars($articleData['content'] ?? '') ?></textarea>
                        <div class="form-text">
                            <?= __('content_help') ?>
                        </div>
                    </div>

                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label for="type" class="form-label"><?= __('type') ?> <span class="text-danger">*</span></label>
                            <select class="form-select" id="type" name="type" required>
                                <option value="external" <?= ($articleData['type'] ?? '') === 'external' ? 'selected' : '' ?>>
                                    <?= __('external') ?>
                                </option>
                                <option value="internal" <?= ($articleData['type'] ?? '') === 'internal' ? 'selected' : '' ?>>
                                    <?= __('internal') ?>
                                </option>
                            </select>
                        </div>
                        <div class="col-md-6">
                            <label for="category_id" class="form-label"><?= __('category') ?></label>
                            <select class="form-select" id="category_id" name="category_id">
                                <option value=""><?= __('no_category') ?></option>
                                <?php foreach ($categories as $cat): ?>
                                    <option value="<?= $cat['id'] ?>" <?= ($articleData['category_id'] ?? '') == $cat['id'] ? 'selected' : '' ?>>
                                        <?= htmlspecialchars($cat['name']) ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label for="featured_image" class="form-label"><?= __('featured_image') ?></label>
                        <input type="url" class="form-control" id="featured_image" name="featured_image"
                               value="<?= htmlspecialchars($articleData['featured_image'] ?? '') ?>"
                               placeholder="https://example.com/image.jpg">
                    </div>

                    <div class="mb-3">
                        <label for="source_url" class="form-label"><?= __('source_url') ?></label>
                        <input type="url" class="form-control" id="source_url" name="source_url"
                               value="<?= htmlspecialchars($articleData['source_url'] ?? '') ?>"
                               placeholder="https://example.com/original-article">
                        <div class="form-text">
                            <?= __('source_url_help') ?>
                        </div>
                    </div>

                    <div class="form-check mb-3">
                        <input class="form-check-input" type="checkbox" id="is_ai_generated" name="is_ai_generated" value="1"
                               <?= ($articleData['is_ai_generated'] ?? 0) ? 'checked' : '' ?>>
                        <label class="form-check-label" for="is_ai_generated">
                            <?= __('ai_generated') ?>
                        </label>
                    </div>
                </div>
            </div>

            <div class="card mt-3">
                <div class="card-header">
                    <h6 class="card-title mb-0">
                        <i class="fas fa-search"></i> <?= __('seo_settings') ?>
                    </h6>
                </div>
                <div class="card-body">
                    <div class="mb-3">
                        <label for="meta_title" class="form-label"><?= __('meta_title') ?></label>
                        <input type="text" class="form-control" id="meta_title" name="meta_title"
                               value="<?= htmlspecialchars($articleData['meta_title'] ?? '') ?>"
                               placeholder="<?= __('meta_title_placeholder') ?>">
                        <div class="form-text">
                            <?= __('meta_title_help') ?>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label for="meta_description" class="form-label"><?= __('meta_description') ?></label>
                        <textarea class="form-control" id="meta_description" name="meta_description" rows="2"
                                  placeholder="<?= __('meta_description_placeholder') ?>"><?= htmlspecialchars($articleData['meta_description'] ?? '') ?></textarea>
                        <div class="form-text">
                            <?= __('meta_description_help') ?>
                        </div>
                    </div>
                </div>
            </div>
    </div>

    <div class="col-lg-4">
        <div class="card">
            <div class="card-header">
                <h6 class="card-title mb-0">
                    <i class="fas fa-cog"></i> <?= __('publish_settings') ?>
                </h6>
            </div>
            <div class="card-body">
                <div class="mb-3">
                    <label for="status" class="form-label"><?= __('status') ?></label>
                    <select class="form-select" id="status" name="status">
                        <option value="draft" <?= ($articleData['status'] ?? 'draft') === 'draft' ? 'selected' : '' ?>>
                            <?= __('draft') ?>
                        </option>
                        <option value="published" <?= ($articleData['status'] ?? '') === 'published' ? 'selected' : '' ?>>
                            <?= __('published') ?>
                        </option>
                        <option value="scheduled" <?= ($articleData['status'] ?? '') === 'scheduled' ? 'selected' : '' ?>>
                            <?= __('scheduled') ?>
                        </option>
                    </select>
                </div>

                <?php if ($isEdit): ?>
                    <div class="mb-3">
                        <label class="form-label"><?= __('created') ?></label>
                        <div class="text-muted small">
                            <?= date('F j, Y g:i A', strtotime($articleData['created_at'])) ?>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label class="form-label"><?= __('last_updated') ?></label>
                        <div class="text-muted small">
                            <?= date('F j, Y g:i A', strtotime($articleData['updated_at'])) ?>
                        </div>
                    </div>

                    <div class="mb-3">
                        <label class="form-label"><?= __('stats') ?></label>
                        <div class="d-flex gap-3">
                            <div class="text-center">
                                <div class="h5 mb-0"><?= number_format($articleData['views']) ?></div>
                                <small class="text-muted"><?= __('views') ?></small>
                            </div>
                            <div class="text-center">
                                <div class="h5 mb-0"><?= number_format($articleData['likes']) ?></div>
                                <small class="text-muted"><?= __('likes') ?></small>
                            </div>
                        </div>
                    </div>
                <?php endif; ?>

                <div class="d-grid gap-2">
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-save"></i>
                        <?= $isEdit ? __('update_article') : __('create_article') ?>
                    </button>

                    <?php if ($isEdit): ?>
                        <a href="/?route=article&slug=<?= htmlspecialchars($articleData['slug']) ?>"
                           class="btn btn-outline-secondary" target="_blank">
                            <i class="fas fa-eye"></i> <?= __('preview') ?>
                        </a>
                    <?php endif; ?>

                    <a href="?route=articles" class="btn btn-outline-secondary">
                        <i class="fas fa-arrow-left"></i> <?= __('back_to_articles') ?>
                    </a>
                </div>
            </div>
        </div>

        <div class="card mt-3">
            <div class="card-header">
                <h6 class="card-title mb-0">
                    <i class="fas fa-lightbulb"></i> <?= __('writing_tips') ?>
                </h6>
            </div>
            <div class="card-body">
                <ul class="list-unstyled small text-muted mb-0">
                    <li class="mb-2">
                        <i class="fas fa-check text-success me-1"></i>
                        <?= __('tip_compelling_title') ?>
                    </li>
                    <li class="mb-2">
                        <i class="fas fa-check text-success me-1"></i>
                        <?= __('tip_good_excerpt') ?>
                    </li>
                    <li class="mb-2">
                        <i class="fas fa-check text-success me-1"></i>
                        <?= __('tip_proper_formatting') ?>
                    </li>
                    <li class="mb-2">
                        <i class="fas fa-check text-success me-1"></i>
                        <?= __('tip_featured_image') ?>
                    </li>
                    <li>
                        <i class="fas fa-check text-success me-1"></i>
                        <?= __('tip_seo_optimization') ?>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</div>
</form>

<script>
// Auto-generate slug from title
document.getElementById('title').addEventListener('input', function() {
    if (!<?= $isEdit ? 'true' : 'false' ?>) {
        // Only auto-generate for new articles
        const title = this.value;
        // You can add slug generation logic here if needed
    }
});

// Character counters
document.getElementById('meta_title').addEventListener('input', function() {
    const length = this.value.length;
    const maxLength = 60;
    // You can add character counter display here
});

document.getElementById('meta_description').addEventListener('input', function() {
    const length = this.value.length;
    const maxLength = 160;
    // You can add character counter display here
});
</script>