Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
936b397 verified
Raw
History Blame Contribute Delete
788 Bytes
defmodule Plausible.Funnel.Step do
@moduledoc """
This module defines the database schema for a single Funnel step.
See: `Plausible.Funnel` for more information.
"""
use Ecto.Schema
import Ecto.Changeset
@type t() :: %__MODULE__{}
schema "funnel_steps" do
field :step_order, :integer
belongs_to :funnel, Plausible.Funnel
belongs_to :goal, Plausible.Goal
timestamps()
end
def changeset(step, goal_or_attrs \\ %{})
def changeset(step, %Plausible.Goal{id: goal_id}) do
changeset(step, %{goal_id: goal_id})
end
def changeset(step, attrs) do
step
|> cast(attrs, [:goal_id])
|> cast_assoc(:goal)
|> validate_required([:goal_id])
|> unique_constraint(:goal,
name: :funnel_steps_goal_id_funnel_id_index
)
end
end