lib/baz/collection_packs/collection_pack.ex

defmodule Baz.CollectionPacks.CollectionPack do
  @moduledoc """
  CollectionPack resource
  """

  @type t :: struct

  use Ecto.Schema
  import Ecto.Changeset

  @primary_key {:id, Ecto.UUID, autogenerate: true}

  schema "collection_packs" do
    field(:slug, :string)
    field(:name, :string)
    field(:description, :string)
    field(:image_uri, :string)
    field(:banner_image_uri, :string)
    field(:is_verified, :boolean)

    field(:status, Ecto.Enum,
      values: [
        :visible,
        :hidden,
        :scheduled
      ]
    )

    timestamps()
  end

  @doc false
  def changeset(collection_pack, attrs) do
    collection_pack
    |> cast(attrs, [
      :slug,
      :name,
      :description,
      :image_uri,
      :banner_image_uri,
      :is_verified,
      :status
    ])
    |> validate_required([:slug])
  end
end