1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00
Maybe/app/models/message.rb

34 lines
855 B
Ruby
Raw Normal View History

2025-03-12 12:39:16 -04:00
class Message < ApplicationRecord
belongs_to :chat
enum :role, { user: "user", assistant: "assistant", system: "system" }
2025-03-12 14:06:42 -04:00
validates :content, presence: true, allow_blank: true
2025-03-12 12:39:16 -04:00
validates :role, presence: true
scope :conversation, -> { where(debug_mode: false, role: [ :user, :assistant ]) }
2025-03-12 14:06:42 -04:00
scope :ordered, -> { order(created_at: :asc) }
after_create_commit :broadcast_to_chat
after_update_commit :broadcast_update_to_chat
private
def broadcast_to_chat
broadcast_append_to(
chat,
partial: "messages/message",
locals: { message: self },
target: "chat_#{chat.id}_messages"
)
end
def broadcast_update_to_chat
broadcast_update_to(
chat,
partial: "messages/message",
locals: { message: self },
target: "message_#{self.id}"
)
end
2025-03-12 12:39:16 -04:00
end