analytics / lib /plausible /teams /site_transfer.ex
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
8da2481 verified
Raw
History Blame Contribute Delete
989 Bytes
defmodule Plausible.Teams.SiteTransfer do
@moduledoc """
Site transfer schema
"""
use Ecto.Schema
import Ecto.Changeset
@type t() :: %__MODULE__{}
schema "team_site_transfers" do
field :transfer_id, :string
field :email, :string
field :transfer_guests, :boolean, default: true
belongs_to :site, Plausible.Site
belongs_to :initiator, Plausible.Auth.User
belongs_to :destination_team, Plausible.Teams.Team
timestamps()
end
def changeset(site, opts) do
initiator = Keyword.fetch!(opts, :initiator)
transfer_guests = Keyword.get(opts, :transfer_guests, true)
destination_team = Keyword.get(opts, :destination_team)
email = Keyword.get(opts, :email)
%__MODULE__{transfer_id: Nanoid.generate()}
|> cast(%{email: email}, [:email])
|> put_change(:transfer_guests, transfer_guests)
|> put_assoc(:site, site)
|> put_assoc(:destination_team, destination_team)
|> put_assoc(:initiator, initiator)
end
end