lib/data_migration/config.ex

defmodule EctoSparkles.DataMigration.Config do
    @moduledoc """
    Configuration for a `DataMigration` behaviour module, used by the `DataMigration.Runner`.
    
    batch size: how many elements from your table to migrate at a time. 
    
    throttle time: the amount of downtime the runner should sleep between batches.

    async: Whether to run the migration in an async process, meaning the execution of the rest of the migrations (and the app startup if you're auto-migrating on start) won't be delayed. WARNING: this means the migration will be marked as done as soon as it starts, so if the process is interrupted it won't be re-run automatically.

    first_id: The very first ID when sorting UUIDs in ascending order. If you use integer IDs instead, this would be 0.

    """
  defstruct(
    batch_size: 10,
    throttle_ms: 1000,
    repo: nil,
    async: false,
    first_id: Ecto.UUID.dump!("00000000-0000-0000-0000-000000000000")
  )
end