Sha256: 2e1b2edfa13c32fb64c94c329380e9eb0fef50ec725464c49effe558c48136ce

Contents?: true

Size: 1.27 KB

Versions: 16

Compression:

Stored size: 1.27 KB

Contents

module Ecom
  module Core
    class LookaheadPlan < ApplicationRecord
      include AASM

      belongs_to :prepared_by, class_name: 'Ecom::Core::User'
      has_many :lookahead_plan_review_times
      has_many :lookahead_plan_histories
      has_and_belongs_to_many :tasks, join_table: 'ecom_core_lookahead_plan_backlogs'

      validates :name, :start_date, :end_date, :status,
                :prepared_by_id, :prepared_by, presence: true

      validates :revision_number, numericality: { greater_than_or_equal_to: 0 }
      validates :lead_time, presence: true, numericality: { greater_than_or_equal_to: 1 }

      aasm column: 'status' do
        state :new, initial: true
        state :in_progress
        state :in_review
        state :completed

        event :start do
          transitions from: :new, to: :in_progress, guard: -> { status == 'new' }
        end

        event :review do
          transitions from: :in_progress, to: :in_review, guard: -> { status == 'in_progress' }
        end

        event :continue do
          transitions from: :in_review, to: :in_progress, guard: -> { status == 'in_review' }
        end

        event :complete do
          transitions from: :in_review, to: :completed, guard: -> { status == 'in_review' }
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ecom_core-1.3.14 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.13 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.12 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.11 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.10 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.9 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.8 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.7 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.6 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.5 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.4 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.3 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.2 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.1 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.3.0 app/models/ecom/core/lookahead_plan.rb
ecom_core-1.2.36 app/models/ecom/core/lookahead_plan.rb