refactor(mitglieder): replace legacy status values (passiv/anwärter/ausgetreten/…) with aktiv/kind/jugend/reserve across backend, frontend, and sync

This commit is contained in:
Matthias Hochmeister
2026-04-15 19:43:18 +02:00
parent c1de8bd163
commit 260b71baf8
11 changed files with 84 additions and 67 deletions

View File

@@ -23,7 +23,7 @@ class AtemschutzService {
result = await pool.query(`
SELECT *
FROM atemschutz_uebersicht
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv', 'anwärter')
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv')
ORDER BY user_family_name, user_given_name
`);
} else {
@@ -301,7 +301,7 @@ class AtemschutzService {
) AS leistungstest_bald_faellig,
COUNT(*) FILTER (WHERE einsatzbereit = TRUE) AS einsatzbereit
FROM atemschutz_uebersicht
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv', 'anwärter')
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv')
`);
const row = result.rows[0] ?? {};

View File

@@ -630,24 +630,20 @@ class MemberService {
try {
const result = await pool.query(`
SELECT
COUNT(*)::INTEGER AS total,
COUNT(*) FILTER (WHERE status = 'aktiv')::INTEGER AS aktiv,
COUNT(*) FILTER (WHERE status = 'passiv')::INTEGER AS passiv,
COUNT(*) FILTER (WHERE status = 'ehrenmitglied')::INTEGER AS ehrenmitglied,
COUNT(*) FILTER (WHERE status = 'jugendfeuerwehr')::INTEGER AS jugendfeuerwehr,
COUNT(*) FILTER (WHERE status = 'anwärter')::INTEGER AS "anwärter",
COUNT(*) FILTER (WHERE status = 'ausgetreten')::INTEGER AS ausgetreten
COUNT(*)::INTEGER AS total,
COUNT(*) FILTER (WHERE status = 'aktiv')::INTEGER AS aktiv,
COUNT(*) FILTER (WHERE status = 'kind')::INTEGER AS kind,
COUNT(*) FILTER (WHERE status = 'jugend')::INTEGER AS jugend,
COUNT(*) FILTER (WHERE status = 'reserve')::INTEGER AS reserve
FROM mitglieder_profile
`);
return (result.rows[0] as MemberStats) ?? {
total: 0,
aktiv: 0,
passiv: 0,
ehrenmitglied: 0,
jugendfeuerwehr: 0,
'anwärter': 0,
ausgetreten: 0,
kind: 0,
jugend: 0,
reserve: 0,
};
} catch (error) {
logger.error('Error fetching member stats', { error });