---
import Button from '../base/Button.astro'
import PostsLoop from '../blog/PostsLoop.astro'
import FeaturedPostCard from '@components/blog/FeaturedPost.astro';
import { pb } from '@lib/pocketbase';

// --- ШАГ 1: Получаем избранные статьи (до 5 шт) ---
const featuredResult = await pb.collection('posts').getList(1, 5, {
  filter: 'isActive = true && isFeatured = true',
  sort: '-publishDate',
  requestKey: 'home_featured_multi'
});

import type { Post } from '@globalInterfaces';

// ПРЕОБРАЗОВАНИЕ (MAPPING)
// Превращаем ответ PocketBase в чистый объект для компонента
const featuredPosts: Post[] = featuredResult.items.map(post => ({
  id: post.id, // ID нужен для исключения ниже
  title: post.title,
  slug: post.slug,
  description: post.description,
  publishDate: post.publishDate,
  tags: post.tags,
  content: post.content,
  image: post.image,
  isFeatured: post.isFeatured,
  isActive: post.isActive
}));

// Собираем ID всех избранных статей, чтобы не показывать их в общем списке
const featuredIds = featuredPosts.map(p => p.id);

// --- ШАГ 2: Получаем обычные статьи (3 шт) ---
let mainFilter = 'isActive = true';

// Если есть избранные, добавляем условие: И id не равен ... И id не равен ...
if (featuredIds.length > 0) {
  const exclusionQuery = featuredIds.map(id => `id != "${id}"`).join(' && ');
  mainFilter += ` && ${exclusionQuery}`;
}

const recentResult = await pb.collection('posts').getList(1, 3, {
  filter: mainFilter,
  sort: '-publishDate',
  requestKey: 'home_recent'
});

// ПРЕОБРАЗОВАНИЕ (MAPPING) для обычного списка
const recentPosts: Post[] = recentResult.items.map(post => ({
  id: post.id,
  title: post.title,
  slug: post.slug,
  description: post.description,
  publishDate: post.publishDate,
  tags: post.tags,
  content: post.content,
  image: post.image,
  isFeatured: post.isFeatured,
  isActive: post.isActive
}));
---

<section class="max-w-4xl mx-auto px-7 lg:px-0 animate-on-scroll">
  <h2 class="text-2xl text-center font-bold leading-10 tracking-tight text-neutral-900 dark:text-neutral-100">
    Мои статьи
  </h2>
  <p class="mb-6 text-base text-center text-neutral-600 dark:text-neutral-400">
    Помимо программирования, я также люблю писать о web-технологиях.
  </p>

  <div class="w-full max-w-4xl mx-auto my-4 xl:px-0">
    <div class="flex justify-center">
      <div class="w-full md:w-2/3 space-y-7">

        {/* БЛОК ИЗБРАННЫХ СТАТЕЙ */}
        {featuredPosts.length > 0 && (
          <div class="flex flex-col gap-6 mb-8">
            {featuredPosts.map((post) => (
              <FeaturedPostCard post={post} />
            ))}
          </div>
        )}

        {/* СПИСОК ОБЫЧНЫХ СТАТЕЙ */}
        <!--<PostsLoop posts={recentPosts} />-->

        <div class="flex items-center justify-center w-full py-5">
          <Button text="Посмотреть все статьи" link="/blog" />
        </div>
      </div>
    </div>
  </div>
</section>