diff --git a/.gitignore b/.gitignore index 7d983a9..3899547 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ npm-debug.log # we ignore priv/static. You may want to comment # this depending on your deployment strategy. /priv/static/ + +\#*# diff --git a/lib/charbase/changelog.ex b/lib/charbase/changelog.ex new file mode 100644 index 0000000..2c0ff0f --- /dev/null +++ b/lib/charbase/changelog.ex @@ -0,0 +1,19 @@ +defmodule Charbase.Changelog do + use Ecto.Schema + import Ecto.Changeset + + schema "changelog" do + field :text, :string + field :type, :string + field :character_id, :id + + timestamps() + end + + @doc false + def changeset(changelog, attrs) do + changelog + |> cast(attrs, [:type, :text]) + |> validate_required([:type, :text]) + end +end diff --git a/lib/charbase/character.ex b/lib/charbase/character.ex new file mode 100644 index 0000000..7a00f94 --- /dev/null +++ b/lib/charbase/character.ex @@ -0,0 +1,20 @@ +defmodule Charbase.Character do + use Ecto.Schema + import Ecto.Changeset + + schema "characters" do + field :added, :naive_datetime + field :json, :string + field :name, :string + field :user_id, :id + + timestamps() + end + + @doc false + def changeset(character, attrs) do + character + |> cast(attrs, [:name, :json, :added]) + |> validate_required([:name, :json, :added]) + end +end diff --git a/lib/charbase/user.ex b/lib/charbase/user.ex new file mode 100644 index 0000000..da49395 --- /dev/null +++ b/lib/charbase/user.ex @@ -0,0 +1,21 @@ +defmodule Charbase.User do + use Ecto.Schema + import Ecto.Changeset + + schema "users" do + field :email, :string + field :name, :string + field :password, :string + field :registered, :naive_datetime + field :salt, :string + + timestamps() + end + + @doc false + def changeset(user, attrs) do + user + |> cast(attrs, [:name, :email, :password, :salt, :registered]) + |> validate_required([:name, :email, :password, :salt, :registered]) + end +end diff --git a/priv/repo/migrations/20190806231909_create_users.exs b/priv/repo/migrations/20190806231909_create_users.exs new file mode 100644 index 0000000..76aa551 --- /dev/null +++ b/priv/repo/migrations/20190806231909_create_users.exs @@ -0,0 +1,16 @@ +defmodule Charbase.Repo.Migrations.CreateUsers do + use Ecto.Migration + + def change do + create table(:users) do + add :name, :string + add :email, :string + add :password, :string + add :salt, :string + add :registered, :naive_datetime + + timestamps() + end + + end +end diff --git a/priv/repo/migrations/20190806232402_create_characters.exs b/priv/repo/migrations/20190806232402_create_characters.exs new file mode 100644 index 0000000..0fdd91c --- /dev/null +++ b/priv/repo/migrations/20190806232402_create_characters.exs @@ -0,0 +1,16 @@ +defmodule Charbase.Repo.Migrations.CreateCharacters do + use Ecto.Migration + + def change do + create table(:characters) do + add :name, :string + add :json, :text + add :added, :naive_datetime + add :user_id, references(:users, on_delete: :nothing) + + timestamps() + end + + create index(:characters, [:user_id]) + end +end diff --git a/priv/repo/migrations/20190806232447_create_changelog.exs b/priv/repo/migrations/20190806232447_create_changelog.exs new file mode 100644 index 0000000..67ceccf --- /dev/null +++ b/priv/repo/migrations/20190806232447_create_changelog.exs @@ -0,0 +1,15 @@ +defmodule Charbase.Repo.Migrations.CreateChangelog do + use Ecto.Migration + + def change do + create table(:changelog) do + add :type, :string + add :text, :text + add :character_id, references(:character, on_delete: :nothing) + + timestamps() + end + + create index(:changelog, [:character_id]) + end +end