2022-11-02 21:41:30 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require "discourse_dev/record"
|
|
|
|
require "faker"
|
|
|
|
|
|
|
|
module DiscourseDev
|
|
|
|
class Message < Record
|
|
|
|
def initialize
|
|
|
|
super(::ChatMessage, 200)
|
|
|
|
end
|
|
|
|
|
|
|
|
def data
|
|
|
|
if Faker::Boolean.boolean(true_ratio: 0.5)
|
2022-11-02 22:53:36 +08:00
|
|
|
channel = ::ChatChannel.where(chatable_type: "DirectMessage").order("RANDOM()").first
|
2022-11-02 21:41:30 +08:00
|
|
|
channel.user_chat_channel_memberships.update_all(following: true)
|
|
|
|
user = channel.chatable.users.order("RANDOM()").first
|
|
|
|
else
|
|
|
|
membership = ::UserChatChannelMembership.order("RANDOM()").first
|
|
|
|
channel = membership.chat_channel
|
|
|
|
user = membership.user
|
|
|
|
end
|
|
|
|
|
|
|
|
{ user: user, content: Faker::Lorem.paragraph, chat_channel: channel }
|
|
|
|
end
|
|
|
|
|
|
|
|
def create!
|
|
|
|
Chat::ChatMessageCreator.create(data)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|