---
description: Create or harden a maatwebsite/excel import with dedup, referential checks, logging, and a test.
argument-hint: <what to import, e.g. "participants from registration XLSX">
---

Build/harden this import: **$ARGUMENTS**

Use the `excel-io` agent. Requirements (bake them in):
- Read the closest existing class in `app/Imports/` first and match its style.
- **Dedup** on phone OR email (no duplicate participants/users).
- **Referential checks**: Country exists; Specialty/Gouvernorat/Mode validated against DB (no hard-coded lists).
- **Name coherence**: when matching an existing user, verify NOM + PRENOM; flag mismatches.
- **Logging**: write a per-run log with created/skipped/error counts and per-row reasons.
- **Force vs safe mode**: explicit `force` flag bypasses dedup; default is safe.
- Route user/participant metas through the **Meta pattern**, not raw loops.
- Use `WithHeadingRow`, `WithValidation`, `WithBatchInserts`, `WithChunkReading`; French validation messages.

Finish with a Feature test against a small fixture and run pint. Report files changed + test result.
