mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-05 05:05:08 +02:00
17d9c7fec0
Free tests (Tier 1): RECOMMENDATION format + session awareness in all preamble SKILL.md files, enum completeness checklist structure and CRITICAL classification. E2E eval: /review catches missed enum handlers when a new status value is added but not handled in case/switch and notify methods. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
986 B
Ruby
31 lines
986 B
Ruby
# Feature branch version: adds "returned" status but misses consumers
|
|
class Order < ApplicationRecord
|
|
STATUSES = %w[pending processing shipped delivered returned].freeze
|
|
|
|
validates :status, inclusion: { in: STATUSES }
|
|
|
|
def display_status
|
|
case status
|
|
when 'pending' then 'Awaiting processing'
|
|
when 'processing' then 'Being prepared'
|
|
when 'shipped' then 'On the way'
|
|
when 'delivered' then 'Delivered'
|
|
# BUG: 'returned' not handled — falls through to nil
|
|
end
|
|
end
|
|
|
|
def can_cancel?
|
|
# BUG: should 'returned' be cancellable? Not considered.
|
|
%w[pending processing].include?(status)
|
|
end
|
|
|
|
def notify_customer
|
|
case status
|
|
when 'pending' then OrderMailer.confirmation(self).deliver_later
|
|
when 'shipped' then OrderMailer.shipped(self).deliver_later
|
|
when 'delivered' then OrderMailer.delivered(self).deliver_later
|
|
# BUG: 'returned' has no notification — customer won't know return was received
|
|
end
|
|
end
|
|
end
|