defmodule Pow.Ecto.Schema.Fields do
@moduledoc """
Handles the Ecto schema fields for user.
"""
alias Pow.{Config, Ecto.Schema}
@attrs [
{:password_hash, :string, [redact: true], []},
{:current_password, :string, [virtual: true, redact: true], []},
{:password, :string, [virtual: true, redact: true], []}
]
@doc """
List of attributes for the ecto schema.
"""
@spec attrs(Config.t()) :: [tuple()]
def attrs(config) do
user_id_field = Schema.user_id_field(config)
[{user_id_field, :string, [], null: false}] ++ @attrs
end
@doc """
List of indexes for the ecto schema.
"""
@spec indexes(Config.t()) :: [tuple()]
def indexes(config) do
user_id_field = Schema.user_id_field(config)
[{user_id_field, true}]
end
end