Files
phoenix-ausblick/lib/outlook/translations/translation.ex

36 lines
1.1 KiB
Elixir

defmodule Outlook.Translations.Translation do
use Ecto.Schema
import Ecto.Changeset
alias Outlook.Accounts.User
alias Outlook.Articles.Article
alias Outlook.Translations.TranslationUnitsMap
schema "translations" do
field :content, TranslationUnitsMap
field :date, :utc_datetime
field :language, :string, default: "DE"
field :public, :boolean, default: false
field :teaser, :string
field :public_content, :string
field :title, :string
field :unauthorized, :boolean, default: false
belongs_to :user, User
belongs_to :article, Article
timestamps()
end
@doc false
def changeset(translation, attrs) do
translation
|> cast(attrs, [:language, :title, :teaser, :date, :public, :unauthorized, :article_id])
|> cast(attrs, [:content])
|> validate_required([:language, :title, :content, :date, :public, :unauthorized, :article_id])
|> unique_constraint([:language, :article_id],
message: "translation for this language already exists",
name: :article_id_lang_unique_index)
|> foreign_key_constraint(:article_id)
end
end