# typed: strict

require "bigdecimal/util"

module DataModel
	module Fixtures::BigDecimal
		include Fixtures
		extend T::Sig
		extend self

		sig { returns(Example) }
		def simple
			Example.new(
				[:decimal],
				variants: {
					valid: 5.to_d,
					missing: nil,
					string: ["5", 5.to_d]
				},
			)
		end

		sig { returns(Example) }
		def optional
			Example.new(
				[:decimal, { optional: true }],
				variants: {
					missing: nil
				},
			)
		end

		sig { returns(Example) }
		def min
			Example.new(
				[:decimal, { min: 5 }],
				variants: {
					bigger: 6.to_d,
					smaller: 4.to_d
				},
			)
		end

		sig { returns(Example) }
		def max
			Example.new(
				[:decimal, { max: 5 }],
				variants: {
					bigger: 6.to_d,
					smaller: 4.to_d
				},
			)
		end
	end
end