Module: Tamara::JsonSchemas::Amount

Defined in:
lib/tamara/json_schemas/amount.rb

Constant Summary collapse

CURRENCIES =
%w[SAR AED BHD KWD OMR].freeze

Class Method Summary collapse

Class Method Details

.schema(allows_null: false, min: 0.1) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/tamara/json_schemas/amount.rb', line 6

def self.schema(allows_null: false, min: 0.1)
  {
    "$schema": "http://json-schema.org/draft-06/schema",
    type: ["object", (allows_null ? "null" : nil)].compact,
    properties: {
      amount: Types::Float.schema(min: min),
      currency: Types::Enum.schema(values: CURRENCIES, default: "SAR")
    },
    required: %w[amount currency]
  }
end