From 9415011b5fd192f1bafeaa9b6eacbb7921382a00 Mon Sep 17 00:00:00 2001 From: David Gay Date: Wed, 19 May 2021 22:53:38 -0400 Subject: Chat --- db/migrate/20210520013553_create_chat_rooms.rb | 11 ++++++++++ db/migrate/20210520014637_create_chat_messages.rb | 12 +++++++++++ db/schema.rb | 25 ++++++++++++++++++++++- db/seeds.rb | 5 +++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20210520013553_create_chat_rooms.rb create mode 100644 db/migrate/20210520014637_create_chat_messages.rb (limited to 'db') diff --git a/db/migrate/20210520013553_create_chat_rooms.rb b/db/migrate/20210520013553_create_chat_rooms.rb new file mode 100644 index 0000000..fadba64 --- /dev/null +++ b/db/migrate/20210520013553_create_chat_rooms.rb @@ -0,0 +1,11 @@ +class CreateChatRooms < ActiveRecord::Migration[6.1] + def change + create_table :chat_rooms do |t| + t.string :gid + t.string :name + t.integer :permission_level + + t.timestamps + end + end +end diff --git a/db/migrate/20210520014637_create_chat_messages.rb b/db/migrate/20210520014637_create_chat_messages.rb new file mode 100644 index 0000000..a020104 --- /dev/null +++ b/db/migrate/20210520014637_create_chat_messages.rb @@ -0,0 +1,12 @@ +class CreateChatMessages < ActiveRecord::Migration[6.1] + def change + create_table :chat_messages do |t| + t.references :chat_room, null: false, foreign_key: true + t.references :sender, foreign_key: { to_table: :characters } + t.references :target, foreign_key: { to_table: :characters } + t.text :body + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 4f75f04..ee68bb9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_05_20_013124) do +ActiveRecord::Schema.define(version: 2021_05_20_014637) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -69,6 +69,26 @@ ActiveRecord::Schema.define(version: 2021_05_20_013124) do t.index ["user_id"], name: "index_characters_on_user_id" end + create_table "chat_messages", force: :cascade do |t| + t.bigint "chat_room_id", null: false + t.bigint "sender_id" + t.bigint "target_id" + t.text "body" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["chat_room_id"], name: "index_chat_messages_on_chat_room_id" + t.index ["sender_id"], name: "index_chat_messages_on_sender_id" + t.index ["target_id"], name: "index_chat_messages_on_target_id" + end + + create_table "chat_rooms", force: :cascade do |t| + t.string "gid" + t.string "name" + t.integer "permission_level" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + create_table "hearth_amenities", force: :cascade do |t| t.string "gid" t.string "name" @@ -154,6 +174,9 @@ ActiveRecord::Schema.define(version: 2021_05_20_013124) do add_foreign_key "character_skills", "skills" add_foreign_key "characters", "activities" add_foreign_key "characters", "users" + add_foreign_key "chat_messages", "characters", column: "sender_id" + add_foreign_key "chat_messages", "characters", column: "target_id" + add_foreign_key "chat_messages", "chat_rooms" add_foreign_key "hearths", "characters" add_foreign_key "users", "characters", column: "active_character_id" end diff --git a/db/seeds.rb b/db/seeds.rb index cf4caa6..7adf0fc 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -10,6 +10,11 @@ def load_data_file(path) YAML.load(File.read(path)).deep_transform_keys(&:to_sym) end +load_data_file("data/chat_rooms.yml").map do |gid, hash| + chat_room = ChatRoom.find_or_create_by(gid: gid) + chat_room.update(hash) +end + load_data_file("data/skills.yml").map do |gid, hash| skill = Skill.find_or_create_by(gid: gid) skill.update(hash) -- cgit v1.2.3