Repository Public
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Registre des ventes récentes en JSON (mêmes filtres que /ventes) :3// GET /api/ventes?q=Québec&type=condo&min=200000&max=600000&periode=90&page=1&limit=504import { NextRequest, NextResponse } from "next/server";5import { parseVenteFilters, ventesOverview, ventesRecentes, vsRolePct } from "@/lib/ventes";67export function GET(req: NextRequest) {8 const f = parseVenteFilters(req.nextUrl.searchParams);9 try {10 const page = ventesRecentes(f);11 const ov = ventesOverview();12 return NextResponse.json(13 {14 source: "Transactions publiées — flux Journal de Québec / Journal de Montréal (api.qub.ca)",15 updatedTo: ov.maxDate,16 total: page.total,17 page: page.page,18 pages: page.pages,19 limit: page.limit,20 since: page.since,21 filters: page.filters,22 rows: page.rows.map((r) => ({23 id: r.id,24 date: r.date,25 amount: r.amount,26 street: r.street,27 city: r.city,28 propertyType: r.property_type,29 yearBuilt: r.year_built,30 floorArea: r.floor_area,31 landArea: r.land_area,32 idProvinc: r.id_provinc,33 valeurRole: r.valeur_role,34 vsRolePct: vsRolePct(r.amount, r.valeur_role),35 })),36 },37 { headers: { "Cache-Control": "public, max-age=300, s-maxage=600" } }38 );39 } catch (e) {40 return NextResponse.json({ error: (e as Error).message }, { status: 500 });41 }42}43