This repository was archived by the owner on Nov 8, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed
lib/groupher_server/cms/models Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ defmodule GroupherServer.CMS.Model.Radar do
2+ @ moduledoc false
3+ alias __MODULE__
4+
5+ use Ecto.Schema
6+ use Accessible
7+
8+ import Ecto.Changeset
9+ import GroupherServer.CMS.Helper.Macros
10+
11+ alias GroupherServer.CMS
12+ alias CMS.Model.Embeds
13+
14+ @ timestamps_opts [ type: :utc_datetime_usec ]
15+
16+ @ required_fields ~w( title digest) a
17+ @ article_cast_fields general_article_cast_fields ( )
18+ @ optional_fields @ article_cast_fields
19+
20+ @ type t :: % Radar { }
21+ schema "cms_radars" do
22+ article_tags_field ( :radar )
23+ article_communities_field ( :radar )
24+ general_article_fields ( :radar )
25+ end
26+
27+ @ doc false
28+ def changeset ( % Radar { } = radar , attrs ) do
29+ radar
30+ |> cast ( attrs , @ optional_fields ++ @ required_fields )
31+ |> validate_required ( @ required_fields )
32+ |> cast_embed ( :meta , required: false , with: & Embeds.ArticleMeta . changeset / 2 )
33+ |> generl_changeset
34+ end
35+
36+ @ doc false
37+ def update_changeset ( % Radar { } = radar , attrs ) do
38+ radar
39+ |> cast ( attrs , @ optional_fields ++ @ required_fields )
40+ |> generl_changeset
41+ end
42+
43+ defp generl_changeset ( changeset ) do
44+ changeset
45+ |> validate_length ( :title , min: 3 , max: 50 )
46+ |> cast_embed ( :emotions , with: & Embeds.ArticleEmotion . changeset / 2 )
47+ end
48+ end
You can’t perform that action at this time.
0 commit comments