Files
shahondin1624 b29a268b1d Restructure .plans/ into done/ and open/ subdirectories
- 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
2026-04-28 20:30:55 +02:00

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

  1. lib/Service/ImportService.php - Core import logic: parse, validate, detect duplicates, dry-run, execute
  2. lib/Controller/ImportController.php - REST endpoints: upload, preview, execute
  3. src/stores/import.js - Pinia store for import wizard state
  4. src/views/Import.vue - Multi-step wizard view
  5. tests/Unit/ImportServiceTest.php - Unit tests for CSV parsing, validation, duplicate detection

Modified Files

  1. appinfo/routes.php - Add import routes
  2. src/router.js - Add /import route

Acceptance Criteria Checklist

  1. ImportService parses CSV with configurable delimiter/encoding
  2. ImportService validates: required fields, IBAN, phone E.164, date formats
  3. Duplicate detection: match on Vorname + Nachname + Geburtsdatum
  4. Dry-run mode returns preview with validation errors
  5. Execute mode creates members, families, addresses, phones, emails
  6. ImportController: upload, preview, execute endpoints
  7. Import.vue: 5-step wizard (upload, mapping, preview, dry-run, confirm)
  8. Column mapping UI with source-to-target dropdowns
  9. Validation errors highlighted in preview table
  10. Results summary: created, skipped duplicates, errors
  11. Admin-only access
  12. Unit tests for CSV parsing and validation