Sha256: 69d782fb5685942525260a0b881b795c01490f57a41132726a35914ff97f26aa
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
module ShoppingCart class Order < ApplicationRecord include ShoppingCart::OrderSummary include AASM belongs_to :user, class_name: ShoppingCart.user_class.to_s, optional: true belongs_to :coupon, optional: true belongs_to :delivery, optional: true has_many :order_items, dependent: :destroy has_one :shipping_address, dependent: :destroy has_one :billing_address, dependent: :destroy has_one :credit_card, dependent: :destroy validates :status, presence: true scope :in_progress, -> { where(status: :in_progress).order(created_at: :desc) } scope :in_queue, -> { where(status: :in_queue).order(created_at: :desc) } scope :in_delivery, -> { where(status: :in_delivery).order(created_at: :desc) } scope :delivered, -> { where(status: :delivered).order(created_at: :desc) } scope :canceled, -> { where(status: :canceled).order(created_at: :desc) } scope :placed, -> { where.not(status: :in_progress).order(created_at: :desc) } aasm column: 'status', whiny_transitions: false do state :in_progress, initial: true state :in_queue, :in_delivery, :delivered, :canceled event :confirm do transitions from: :in_progress, to: :in_queue end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
loker-shopping-cart-0.1.3 | app/models/shopping_cart/order.rb |
loker-shopping-cart-0.1.2 | app/models/shopping_cart/order.rb |
loker-shopping-cart-0.1.1 | app/models/shopping_cart/order.rb |