1
0
mirror of https://github.com/mgerb/classic-wow-forums synced 2026-01-10 17:12:48 +00:00

lots of things done: thread - reply - category - seeds

This commit is contained in:
2018-01-02 23:38:17 -06:00
parent 3a61151191
commit 115dacdd12
15 changed files with 291 additions and 27 deletions

View File

@@ -4,15 +4,15 @@ defmodule MyApp.Repo.Migrations.CreateThread do
def change do
create table(:thread) do
add :title, :string
add :category_id, :integer
add :content, :string
add :view_count, :integer
add :user_id, references(:user)
add :last_reply_id, :integer
add :last_reply_id, :integer # TODO: figure this out
add :sticky, :boolean
add :locked, :boolean
add :edited, :boolean
timestamps()
end
end
end

View File

@@ -0,0 +1,13 @@
defmodule MyApp.Repo.Migrations.CreateCategory do
use Ecto.Migration
def change do
create table(:category) do
add :category, :string
add :title, :string
end
create unique_index(:category, [:category, :title])
end
end

View File

@@ -0,0 +1,9 @@
defmodule MyApp.Repo.Migrations.ThreadCategoryForeignKey do
use Ecto.Migration
def change do
alter table(:thread) do
modify :category_id, references(:category)
end
end
end

View File

@@ -0,0 +1,14 @@
defmodule MyApp.Repo.Migrations.CreateReply do
use Ecto.Migration
def change do
create table(:reply) do
add :user_id, references(:user)
add :thread_id, references(:thread)
add :content, :string
add :edited, :boolean
add :quote, :boolean
timestamps()
end
end
end

View File

@@ -9,3 +9,55 @@
#
# We recommend using the bang functions (`insert!`, `update!`
# and so on) as they will fail if something goes wrong.
alias MyApp.Repo
alias MyApp.Data
defmodule Category do
def get_seed() do
map_categories("class", get_classes())
|> Enum.concat(map_categories("realm", get_realms()))
|> Enum.concat(map_categories("other", get_other()))
end
defp map_categories(category, titles) do
titles
|> Enum.map(fn (t) -> %{category: category, title: t} end)
end
defp get_classes() do
[
"Druid",
"Rogue",
"Priest",
"Hunter",
"Shaman",
"Warrior",
"Mage",
"Paladin",
"Warlock",
]
end
# TODO: add all realms
defp get_realms() do
[
"Stonemaul",
]
end
defp get_other() do
[
"Off-Topic",
"Guild Recruitment",
"General Discussion",
"Suggestions",
"Role-Playing",
"Raid and Dungeon Discussion",
]
end
end
Repo.insert_all(Data.Category, Category.get_seed())