Packages
corex
0.1.0
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
priv/templates/corex.gen.schema/schema.ex
defmodule <%= inspect schema.module %> do
use Ecto.Schema
import Ecto.Changeset
<%= if schema.prefix do %>
@schema_prefix :<%= schema.prefix %><% end %><%= if schema.opts[:primary_key] do %>
@derive {Phoenix.Param, key: :<%= schema.opts[:primary_key] %>}<% end %><%= if schema.binary_id do %>
@primary_key {:<%= primary_key %>, :binary_id, autogenerate: true}
@foreign_key_type :binary_id<% else %><%= if schema.opts[:primary_key] do %>
@primary_key {:<%= schema.opts[:primary_key] %>, :id, autogenerate: true}<% end %><% end %>
schema <%= inspect schema.table %> do
<%= Mix.Phoenix.Schema.format_fields_for_schema(schema) %>
<%= for {_, k, _, _} <- schema.assocs do %> field <%= inspect k %>, <%= if schema.binary_id do %>:binary_id<% else %>:id<% end %>
<% end %><%= if scope do %> field :<%= scope.schema_key %>, <%= inspect scope.schema_type %>
<% end %>
timestamps(<%= if schema.timestamp_type != :naive_datetime, do: "type: #{inspect schema.timestamp_type}" %>)
end
@doc false
def changeset(<%= schema.singular %>, attrs<%= if scope do %>, <%= scope.name %>_scope<% end %>) do
<%= schema.singular %>
|> cast(attrs, [
<% attrs_list = schema.attrs %><%= for {{attr, _}, idx} <- Enum.with_index(attrs_list) do %> <%= inspect attr %><%= if idx < Enum.count(attrs_list) - 1 do %>,<% end %>
<% end %> ])
|> validate_required([
<% required_list = Mix.Phoenix.Schema.required_fields(schema) %><%= for {{attr, _}, idx} <- Enum.with_index(required_list) do %> <%= inspect attr %><%= if idx < Enum.count(required_list) - 1 do %>,<% end %>
<% end %> ])
<%= for k <- schema.uniques do %> |> unique_constraint(<%= inspect k %>)
<% end %><%= if scope do %> |> put_change(:<%= scope.schema_key %>, <%= scope.name %>_scope.<%= Enum.join(scope.access_path, ".") %>)
<% end %> end
end