Skip to content

Commit

Permalink
feat(charge): GrapgQL types for graduated percentage
Browse files Browse the repository at this point in the history
  • Loading branch information
vincent-pochet committed Aug 17, 2023
1 parent 5460e27 commit dede44b
Show file tree
Hide file tree
Showing 7 changed files with 311 additions and 2 deletions.
14 changes: 14 additions & 0 deletions app/graphql/types/charges/graduated_percentage_range.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

module Types
module Charges
class GraduatedPercentageRange < Types::BaseObject
field :from_value, GraphQL::Types::BigInt, null: false
field :to_value, GraphQL::Types::BigInt, null: true

field :fixed_amount, String, null: false
field :flat_amount, String, null: false
field :rate, String, null: false
end
end
end
14 changes: 14 additions & 0 deletions app/graphql/types/charges/graduated_percentage_range_input.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

module Types
module Charges
class GraduatedPercentageRangeInput < Types::BaseInputObject
argument :from_value, GraphQL::Types::BigInt, required: true
argument :to_value, GraphQL::Types::BigInt, required: false

argument :fixed_amount, String, required: true
argument :flat_amount, String, required: true
argument :rate, String, required: true
end
end
end
3 changes: 3 additions & 0 deletions app/graphql/types/charges/properties.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ class Properties < Types::BaseObject
# NOTE: Graduated charge model
field :graduated_ranges, [Types::Charges::GraduatedRange], null: true, hash_key: :graduated_ranges

# NOTE: Graduated percentage modle
field :graduated_percentage_ranges, [Types::Charges::GraduatedPercentageRange], null: true

# NOTE: Package charge model
field :free_units, GraphQL::Types::BigInt, null: true, hash_key: :free_units
field :package_size, GraphQL::Types::BigInt, null: true, hash_key: :package_size
Expand Down
3 changes: 3 additions & 0 deletions app/graphql/types/charges/properties_input.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ class PropertiesInput < Types::BaseInputObject
# NOTE: Graduated charge model
argument :graduated_ranges, [Types::Charges::GraduatedRangeInput], required: false

# NOTE: Graduated percentage charge model
argument :graduated_percentage_ranges, [Types::Charges::GraduatedPercentageRangeInput], required: false

# NOTE: Package charge model
argument :free_units, GraphQL::Types::BigInt, required: false
argument :package_size, GraphQL::Types::BigInt, required: false
Expand Down
18 changes: 18 additions & 0 deletions schema.graphql

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

228 changes: 228 additions & 0 deletions schema.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit dede44b

Please sign in to comment.