Files
subtle-storm/app/models/workflow.rb
T

24 lines
779 B
Ruby

# frozen_string_literal: true
class Workflow < ApplicationRecord
belongs_to :project
has_many :tasks, dependent: :restrict_with_exception
has_many :task_statuses, dependent: :restrict_with_error
accepts_nested_attributes_for :task_statuses, allow_destroy: true
belongs_to :default_status, class_name: 'TaskStatus', optional: true
enum :icon, { task: 'task', warning: 'warning' }, default: 'task', scopes: false
enum :color, { blue: 'blue', gray: 'gray', lime: 'lime', red: 'red', teal: 'teal' }, default: 'gray', scopes: false
validate :should_own_default_status
private
def should_own_default_status
return if default_status.nil?
errors.add(:default_status, 'Should own default status') unless default_status.id.in?(task_status_ids)
end
end