lib/grim/schema.ex
defmodule Grim.Schema do
@moduledoc """
This module should be used when defining Ecto schemas and provides options that all schemas share.
## Example
defmodule Grim.Widgets.Widget do
use Grim.Schema
import Ecto.Changeset
@derive {Phoenix.Param, key: :widget_id}
schema "widgets" do
# fields
end
end
"""
defmacro __using__(_) do
quote do
use Ecto.Schema
@primary_key false
@foreign_key_type Ecto.UUID
@timestamps_opts [type: :utc_datetime]
end
end
end