feat: add CSV export with UTF-8 BOM for Excel compatibility (Closes #47) #95

Merged
shahondin1624 merged 1 commits from feature/issue-47-csv-export-utf8-bom into main 2026-04-07 14:06:28 +02:00
Owner

Summary

  • Adds CsvExportService with UTF-8 BOM, semicolon delimiter, proper RFC 4180 quoting
  • Adds ExportController with three download endpoints for members, fees, and birthdays
  • Three export types: member list (with addresses/phones/emails), fee records by year, birthday list by month

Endpoints

Endpoint Description
GET /api/v1/export/members?status=aktiv Member list CSV with optional status filter
GET /api/v1/export/fees?year=2026 Fee records for a year
GET /api/v1/export/birthdays?month=4 Birthday list for a month

Closes #47

## Summary - Adds `CsvExportService` with UTF-8 BOM, semicolon delimiter, proper RFC 4180 quoting - Adds `ExportController` with three download endpoints for members, fees, and birthdays - Three export types: member list (with addresses/phones/emails), fee records by year, birthday list by month ## Endpoints | Endpoint | Description | |----------|-------------| | `GET /api/v1/export/members?status=aktiv` | Member list CSV with optional status filter | | `GET /api/v1/export/fees?year=2026` | Fee records for a year | | `GET /api/v1/export/birthdays?month=4` | Birthday list for a month | Closes #47
shahondin1624 added 1 commit 2026-04-07 14:05:58 +02:00
Adds CsvExportService with three export methods:
- exportMemberList: Full member list with addresses, phones, emails
- exportFeeRecords: Fee records for a given year with member names
- exportBirthdayList: Members with birthday in a given month

CSV features:
- UTF-8 BOM prefix for Excel auto-detection
- Semicolon delimiter for German Excel locale
- Proper RFC 4180 quoting/escaping
- German column headers
- Descriptive filenames (e.g. Mitgliederliste_2026-04-07.csv)

Adds ExportController with download endpoints:
- GET /api/v1/export/members?status=aktiv
- GET /api/v1/export/fees?year=2026
- GET /api/v1/export/birthdays?month=4

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
shahondin1624 merged commit 47e2f00c2d into main 2026-04-07 14:06:28 +02:00
shahondin1624 deleted branch feature/issue-47-csv-export-utf8-bom 2026-04-07 14:06:28 +02:00
Sign in to join this conversation.