b29a268b1d
- Move completed plan files to .plans/done/ - Move 18 open plan files to .plans/open/ - Update .gitignore to exclude .verified_plans temp file - Verified all 18 open plans still describe unimplemented issues
1.6 KiB
1.6 KiB
Implementation Plan: Issue #58 - Import Wizard (CSV/Excel)
Summary
Implement a complete import wizard with CSV/Excel file upload and parsing, interactive column mapping, validation with preview, dry-run, duplicate detection, family grouping, and confirmed execution. Multi-step Vue wizard UI.
Files to Create/Modify
New Files
lib/Service/ImportService.php- Core import logic: parse, validate, detect duplicates, dry-run, executelib/Controller/ImportController.php- REST endpoints: upload, preview, executesrc/stores/import.js- Pinia store for import wizard statesrc/views/Import.vue- Multi-step wizard viewtests/Unit/ImportServiceTest.php- Unit tests for CSV parsing, validation, duplicate detection
Modified Files
appinfo/routes.php- Add import routessrc/router.js- Add /import route
Acceptance Criteria Checklist
- ImportService parses CSV with configurable delimiter/encoding
- ImportService validates: required fields, IBAN, phone E.164, date formats
- Duplicate detection: match on Vorname + Nachname + Geburtsdatum
- Dry-run mode returns preview with validation errors
- Execute mode creates members, families, addresses, phones, emails
- ImportController: upload, preview, execute endpoints
- Import.vue: 5-step wizard (upload, mapping, preview, dry-run, confirm)
- Column mapping UI with source-to-target dropdowns
- Validation errors highlighted in preview table
- Results summary: created, skipped duplicates, errors
- Admin-only access
- Unit tests for CSV parsing and validation