# `Lotus.Storage.DashboardFilter`
[🔗](https://github.com/typhoonworks/lotus/blob/v0.16.4/lib/lotus/storage/dashboard_filter.ex#L1)

Represents a filter control for a Lotus dashboard.

Dashboard filters are input controls displayed at the top of a dashboard that
allow users to filter data across multiple cards. Each filter can be mapped to
one or more query variables in the dashboard's cards.

## Filter Types

- `:text` - Free-form text input
- `:number` - Numeric input
- `:date` - Single date selection
- `:date_range` - Date range selection (start/end)
- `:select` - Dropdown selection

## Widgets

- `:input` - Standard text/number input field
- `:select` - Dropdown select
- `:date_picker` - Date picker calendar
- `:date_range_picker` - Date range picker with start/end

The `config` field stores widget-specific configuration like select options,
date formats, or validation rules.

# `t`

```elixir
@type t() :: %Lotus.Storage.DashboardFilter{
  __meta__: term(),
  card_mappings:
    [Lotus.Storage.DashboardCardFilterMapping.t()]
    | Ecto.Association.NotLoaded.t(),
  config: map(),
  dashboard: Lotus.Storage.Dashboard.t() | Ecto.Association.NotLoaded.t(),
  dashboard_id: term(),
  default_value: String.t() | nil,
  filter_type: :text | :number | :date | :date_range | :select,
  id: term(),
  inserted_at: DateTime.t(),
  label: String.t(),
  name: String.t(),
  position: non_neg_integer(),
  updated_at: DateTime.t(),
  widget: :input | :select | :date_picker | :date_range_picker
}
```

# `changeset`

# `new`

# `update`

---

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