Files
fizzy/app/models/column.rb
T
Jorge Manrubia f437159da0 Reorder
2025-10-31 10:41:22 +01:00

31 lines
730 B
Ruby

class Column < ApplicationRecord
include Positioned
belongs_to :collection, touch: true
has_many :cards, dependent: :nullify
validates :name, presence: true
validates :color, presence: true
before_validation :set_default_color
after_save_commit :touch_all_cards_later, if: :should_invalidate_cards?
after_destroy_commit :touch_all_collection_cards
private
def set_default_color
self.color ||= Card::DEFAULT_COLOR
end
def touch_all_cards_later
Card::TouchAllJob.perform_later(self)
end
def should_invalidate_cards?
saved_change_to_name? || saved_change_to_color?
end
def touch_all_collection_cards
Card::TouchAllJob.perform_later(collection)
end
end