module PriceHubble
class Valuation < BaseEntity
tracked_attr :currency, :sale_price, :sale_price_range, :rent_gross,
:rent_gross_range, :rent_net, :rent_net_range, :confidence,
:scores, :status, :deal_type, :valuation_date, :country_code
typed_attr :currency, :string_inquirer
typed_attr :confidence, :string_inquirer
typed_attr :deal_type, :string_inquirer
typed_attr :country_code, :string_inquirer
typed_attr :sale_price_range, :range
typed_attr :rent_gross_range, :range
typed_attr :rent_net_range, :range
with_options(persist: true, initialize: true) do
has_one :property
has_one :scores, class_name: ValuationScores
end
def value
return sale_price if deal_type.sale?
rent_gross
end
def value_range
return sale_price_range if deal_type.sale?
rent_gross_range
end
end
end