# `Aludel.Evals.TestCaseDocument`
[🔗](https://github.com/ccarvalho-eng/aludel/blob/main/lib/aludel/evals/test_case_document.ex#L1)

Schema for file attachments associated with test cases.

Documents can be used to provide additional context or data for
test cases, such as input files, reference documents, or
expected outputs.

# `t`

```elixir
@type t() :: %Aludel.Evals.TestCaseDocument{
  __meta__: term(),
  content_type: term(),
  data: term(),
  filename: term(),
  id: term(),
  inserted_at: term(),
  size_bytes: term(),
  storage_backend: term(),
  storage_key: term(),
  test_case: term(),
  test_case_id: term(),
  updated_at: term()
}
```

# `changeset`

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

Changeset for persisted test case document rows.

# `create_changeset`

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

Changeset for new uploads before the document is persisted externally.

# `externally_stored?`

```elixir
@spec externally_stored?(t()) :: boolean()
```

# `max_size_bytes`

```elixir
@spec max_size_bytes() :: non_neg_integer()
```

Returns maximum allowed file size in bytes.

# `supported_types`

```elixir
@spec supported_types() :: [String.t()]
```

Returns list of supported MIME types.

---

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