import { Request, Response } from 'express'; import { prisma } from '../../../../src/lib/prisma'; export async function listArticles(req: Request, res: Response) { try { const { page = 1, category, city } = req.query; const perPage = 6; const where = { ...(category && { category: category as string }), ...(city && { city: city as string }) }; const [articles, total] = await Promise.all([ prisma.article.findMany({ where, include: { author: { select: { id: true, displayName: true, email: true } } }, skip: ((page as number) - 1) * perPage, take: perPage, orderBy: { publishedAt: 'desc' } }), prisma.article.count({ where }) ]); res.json({ articles, totalPages: Math.ceil(total / perPage), currentPage: parseInt(page as string) }); } catch { res.status(500).json({ error: 'Server error' }); } }