Implements csv service skeleton closes #330 #350

Merged
carla merged 5 commits from feature/330_import_service_skeleton into main 2026-01-14 12:31:32 +01:00
Showing only changes of commit fb71b7ddb1 - Show all commits

View file

@ -8,10 +8,10 @@ defmodule Mv.Membership.Import.MemberCSV do
## Error Handling ## Error Handling
Errors are returned as `%Error{}` structs containing: Errors are returned as `%MemberCSV.Error{}` structs containing:
- `csv_line_number` - The physical line number in the CSV file - `csv_line_number` - The physical line number in the CSV file (or `nil` for general errors)
- `field` - The field name (atom) or `nil` if not field-specific - `field` - The field name (atom) or `nil` if not field-specific
- `message` - Human-readable error message - `message` - Human-readable error message (or `nil` for general errors)
## Import State ## Import State
@ -26,7 +26,7 @@ defmodule Mv.Membership.Import.MemberCSV do
The `chunk_result` returned by `process_chunk/3` contains: The `chunk_result` returned by `process_chunk/3` contains:
- `inserted` - Number of successfully created members - `inserted` - Number of successfully created members
- `failed` - Number of failed member creations - `failed` - Number of failed member creations
- `errors` - List of `%Error{}` structs (capped at 50 per import) - `errors` - List of `%MemberCSV.Error{}` structs (capped at 50 per import)
## Examples ## Examples
@ -51,9 +51,9 @@ defmodule Mv.Membership.Import.MemberCSV do
defstruct csv_line_number: nil, field: nil, message: nil defstruct csv_line_number: nil, field: nil, message: nil
@type t :: %__MODULE__{ @type t :: %__MODULE__{
csv_line_number: integer(), csv_line_number: pos_integer() | nil,
field: atom() | nil, field: atom() | nil,
message: String.t() message: String.t() | nil
} }
end end