Sha256: 09cbfb8de5a208c224d6844c51f5148b0cf48d45c4fb2888c9b642cabad418ee
Contents?: true
Size: 1.1 KB
Versions: 8
Compression:
Stored size: 1.1 KB
Contents
module Comee module Core class ClientPrice < ApplicationRecord enum :status, {old: 0, current: 1, future: 2} belongs_to :product belongs_to :client belongs_to :previous_price, class_name: "Comee::Core::ClientPrice", optional: true validates :valid_from, :valid_to, :price, :status, presence: true validates :price, numericality: {greater_than: 0} validates :discount, presence: true, numericality: {greater_than_or_equal_to: 0, less_than_or_equal_to: 100} validates :product_id, uniqueness: {scope: %i[client_id previous_price_id]} validate :validate_price_validity_dates def validate_price_validity_dates return unless valid_from && valid_to period = Period.new(valid_from, valid_to) errors.add(:base, "Price validity date range is not correct.") unless period.valid? end def self.ransackable_attributes(_auth_object = nil) %w[valid_from valid_to price status product_id client_id previous_price_id] end def self.ransackable_associations(_auth_object = nil) [] end end end end
Version data entries
8 entries across 8 versions & 1 rubygems