|
| 1 | +defmoduleGroupherServer.CMS.Model.Radardo |
| 2 | +@moduledocfalse |
| 3 | +alias__MODULE__ |
| 4 | + |
| 5 | +useEcto.Schema |
| 6 | +useAccessible |
| 7 | + |
| 8 | +importEcto.Changeset |
| 9 | +importGroupherServer.CMS.Helper.Macros |
| 10 | + |
| 11 | +aliasGroupherServer.CMS |
| 12 | +aliasCMS.Model.Embeds |
| 13 | + |
| 14 | +@timestamps_opts[type::utc_datetime_usec] |
| 15 | + |
| 16 | +@required_fields~w(title digest)a |
| 17 | +@article_cast_fieldsgeneral_article_cast_fields() |
| 18 | +@optional_fields@article_cast_fields |
| 19 | + |
| 20 | +@typet::%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 | +@docfalse |
| 28 | +defchangeset(%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 | +@docfalse |
| 37 | +defupdate_changeset(%Radar{}=radar,attrs)do |
| 38 | +radar |
| 39 | +|>cast(attrs,@optional_fields++@required_fields) |
| 40 | +|>generl_changeset |
| 41 | +end |
| 42 | + |
| 43 | +defpgenerl_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 |