# `Etcher.Storage.Default`
[🔗](https://github.com/alexdont/etcher/blob/v0.1.0/lib/etcher/storage/default.ex#L1)

Default `Etcher.Storage` implementation backed by the bundled
`etcher_annotations` table.

Reads the consumer's Repo from `config :etcher, repo: MyApp.Repo`.
If `:etcher, :repo` is missing, `create/1` / `update/2` / `delete/1`
return `{:error, :no_repo_configured}` rather than crashing.

Consumers with custom schemas should implement their own
`Etcher.Storage` adapter instead of using this one.

# `create`

Insert a new annotation row. Returns `{:ok, annotation}` on success,
`{:error, :no_repo_configured}` when `config :etcher, :repo` isn't
set, or `{:error, changeset}` on validation failure.

# `delete`

Delete an annotation by UUID. Returns `:ok`,
`{:error, :no_repo_configured}`, `{:error, :not_found}`, or
`{:error, changeset}` if the delete fails.

# `list_for`

List annotations for a target, ordered by `position` ascending then
`inserted_at` ascending. Returns `[]` if no Repo is configured.

# `update`

Update an annotation by UUID. Returns `{:ok, annotation}` on success,
`{:error, :no_repo_configured}`, `{:error, :not_found}`, or
`{:error, changeset}` on validation failure.

---

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