fix(geplante-nachrichten): fix wrong column refs in content builders — abgesagt bool, join users for names, correct status values

This commit is contained in:
Matthias Hochmeister
2026-04-17 14:15:34 +02:00
parent d44f53a8a9
commit 968b24156b

View File

@@ -92,7 +92,7 @@ async function buildEventSummary(startDate: Date, endDate: Date): Promise<{ item
const result = await pool.query( const result = await pool.query(
`SELECT titel, datum_von, datum_bis `SELECT titel, datum_von, datum_bis
FROM veranstaltungen FROM veranstaltungen
WHERE status != 'abgesagt' WHERE abgesagt = FALSE
AND datum_von <= $2 AND datum_von <= $2
AND datum_bis >= $1 AND datum_bis >= $1
ORDER BY datum_von ASC`, ORDER BY datum_von ASC`,
@@ -117,18 +117,19 @@ async function buildEventSummary(startDate: Date, endDate: Date): Promise<{ item
async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> { async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
// Find members whose birthday (month+day) falls within the window // Find members whose birthday (month+day) falls within the window
const result = await pool.query( const result = await pool.query(
`SELECT vorname, nachname, geburtsdatum `SELECT u.given_name AS vorname, u.family_name AS nachname, mp.geburtsdatum
FROM mitglieder_profile FROM mitglieder_profile mp
WHERE status IN ('aktiv', 'kind', 'jugend', 'reserve') JOIN users u ON u.id = mp.user_id
AND geburtsdatum IS NOT NULL WHERE mp.status IN ('aktiv', 'jugendfeuerwehr', 'ehrenmitglied')
AND mp.geburtsdatum IS NOT NULL
AND ( AND (
(EXTRACT(MONTH FROM geburtsdatum), EXTRACT(DAY FROM geburtsdatum)) (EXTRACT(MONTH FROM mp.geburtsdatum), EXTRACT(DAY FROM mp.geburtsdatum))
IN ( IN (
SELECT EXTRACT(MONTH FROM d::date), EXTRACT(DAY FROM d::date) SELECT EXTRACT(MONTH FROM d::date), EXTRACT(DAY FROM d::date)
FROM generate_series($1::date, $2::date, '1 day'::interval) AS d FROM generate_series($1::date, $2::date, '1 day'::interval) AS d
) )
) )
ORDER BY EXTRACT(MONTH FROM geburtsdatum), EXTRACT(DAY FROM geburtsdatum)`, ORDER BY EXTRACT(MONTH FROM mp.geburtsdatum), EXTRACT(DAY FROM mp.geburtsdatum)`,
[startDate.toISOString().slice(0, 10), endDate.toISOString().slice(0, 10)], [startDate.toISOString().slice(0, 10), endDate.toISOString().slice(0, 10)],
); );
@@ -149,10 +150,11 @@ async function buildBirthdayList(startDate: Date, endDate: Date): Promise<{ item
async function buildDienstjubilaeen(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> { async function buildDienstjubilaeen(startDate: Date, endDate: Date): Promise<{ items: string; count: string }> {
// Members hitting a 5-year milestone in the window // Members hitting a 5-year milestone in the window
const result = await pool.query( const result = await pool.query(
`SELECT vorname, nachname, eintrittsdatum `SELECT u.given_name AS vorname, u.family_name AS nachname, mp.eintrittsdatum
FROM mitglieder_profile FROM mitglieder_profile mp
WHERE status IN ('aktiv', 'reserve') JOIN users u ON u.id = mp.user_id
AND eintrittsdatum IS NOT NULL`, WHERE mp.status IN ('aktiv', 'ehrenmitglied')
AND mp.eintrittsdatum IS NOT NULL`,
); );
const jubilare: Array<{ name: string; years: number; date: string }> = []; const jubilare: Array<{ name: string; years: number; date: string }> = [];