# `Aludel.Runs.Run`
[🔗](https://github.com/ccarvalho-eng/aludel/blob/main/lib/aludel/runs/run.ex#L1)

Schema for managing runs.

A run represents an execution of a prompt version with specific
variable values across multiple providers.

# `t`

```elixir
@type t() :: %Aludel.Runs.Run{
  __meta__: term(),
  completed_at: term(),
  error_summary: term(),
  id: term(),
  inserted_at: term(),
  name: term(),
  prompt_version: term(),
  prompt_version_id: term(),
  provider_ids: term(),
  run_results: term(),
  started_at: term(),
  status: term(),
  updated_at: term(),
  variable_values: term()
}
```

# `changeset`

```elixir
@spec changeset(t(), map()) :: Ecto.Changeset.t()
```

Changeset for creating or updating a run.

Validates that prompt_version_id and variable_values are present.

# `execution_changeset`

```elixir
@spec execution_changeset(t(), map()) :: Ecto.Changeset.t()
```

Changeset for executor-owned lifecycle transitions.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
