Current section

Files

Jump to
imagine_cms lib imagine cms_templates cms_template_version.ex
Raw

lib/imagine/cms_templates/cms_template_version.ex

defmodule Imagine.CmsTemplates.CmsTemplateVersion do
@moduledoc """
CmsTemplateVersion - a single version of CmsTemplate
"""
use Ecto.Schema
import Ecto.Changeset
alias Imagine.CmsTemplates.CmsTemplate
schema "cms_template_versions" do
belongs_to :cms_template, CmsTemplate
field :version, :integer
field :name, :string
field :description, :string
# new fields
field :content_eex, :string
field :options_json, :string
# legacy fields (deprecated, but retained so that 5 and 6 can operate side-by-side on the same db)
field :content, :string
field :options_yaml, :string
timestamps(inserted_at: :created_on, updated_at: :updated_on)
end
@doc false
def changeset(cms_template_version, %CmsTemplate{} = cms_template) do
cms_template_version
|> cast(Map.from_struct(cms_template), [
:name,
:description,
:content,
:content_eex,
:options_yaml,
:options_json,
:version
])
|> put_change(:cms_template_id, cms_template.id)
|> validate_required([:name, :version, :cms_template_id])
end
end