# lazarus v1.0.0 - Table of Contents

> A safe soft-delete library for Elixir that enforces explicit soft and hard delete paths.

## Pages

- Overview
  - [Lazarus](readme.md)
  - [Changelog](changelog.md)

- Guides
  - [Repo Module Setup](repo-module-setup.md)
  - [Schema Setup](schema-setup.md)
  - [Migration Setup](migration-setup.md)
  - [Fetch, Update, and Delete APIs](fetch-and-delete-apis.md)
  - [Query Support](query-support.md)
  - [Cascade Soft-Deletes](cascade-soft-deletes.md)
  - [Assoc Replace](assoc-replace.md)
  - [Overcoming Limitations](overcoming-limitations.md)

## Modules

- Primary API
  - [Lazarus](Lazarus.md): Public entrypoint for Lazarus.
  - [Lazarus.Migrations](Lazarus.Migrations.md): Migration macros for adding the columns expected by `Lazarus.Schema`.
  - [Lazarus.Schema](Lazarus.Schema.md): Schema macros for soft-delete-enabled Ecto schemas.

- Lower-level API
  - [Lazarus.Query](Lazarus.Query.md): Lower-level query helper used to filter soft-deleted rows from reads and
`Repo.update_all/3`.
  - [Lazarus.Repo](Lazarus.Repo.md): Lower-level Repo integration behind `use Lazarus`.
  - [Lazarus.Runtime](Lazarus.Runtime.md): Lower-level soft-delete operations that accept an explicit Repo module.

