# frozen_string_literal: true # == Schema Information # # Table name: announcement_reactions # # id :bigint(8) not null, primary key # account_id :bigint(8) # announcement_id :bigint(8) # name :string default(""), not null # custom_emoji_id :bigint(8) # created_at :datetime not null # updated_at :datetime not null # class AnnouncementReaction < ApplicationRecord after_commit :queue_publish belongs_to :account belongs_to :announcement, inverse_of: :announcement_reactions belongs_to :custom_emoji, optional: true validates :name, presence: true validates_with ReactionValidator before_validation :set_custom_emoji private def set_custom_emoji self.custom_emoji = CustomEmoji.local.find_by(disabled: false, shortcode: name) if name.present? end def queue_publish PublishAnnouncementReactionWorker.perform_async(announcement_id, name) unless announcement.destroyed? end end