mindee 3.1.1 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +57 -7
  4. data/bin/mindee.rb +160 -83
  5. data/docs/bank_account_details_v2.md +137 -0
  6. data/docs/bank_check_v1.md +179 -0
  7. data/docs/barcode_reader_v1.md +104 -0
  8. data/docs/carte_vitale_v1.md +123 -0
  9. data/docs/code_samples/barcode_reader_v1.txt +19 -0
  10. data/docs/code_samples/cropper_v1.txt +16 -0
  11. data/docs/code_samples/idcard_fr_v2.txt +19 -0
  12. data/docs/code_samples/invoice_splitter_v1_async.txt +6 -54
  13. data/docs/code_samples/multi_receipts_detector_v1.txt +19 -0
  14. data/docs/code_samples/us_w9_v1.txt +16 -0
  15. data/docs/cropper_v1.md +97 -0
  16. data/docs/custom_v1.md +101 -0
  17. data/docs/expense_receipts_v5.md +306 -0
  18. data/docs/financial_document_v1.md +384 -0
  19. data/docs/{ruby-getting-started.md → getting_started.md} +22 -6
  20. data/docs/idcard_fr_v2.md +253 -0
  21. data/docs/invoice_splitter_v1.md +85 -0
  22. data/docs/invoices_v4.md +369 -0
  23. data/docs/license_plates_v1.md +91 -0
  24. data/docs/multi_receipts_detector_v1.md +105 -0
  25. data/docs/passport_v1.md +186 -0
  26. data/docs/proof_of_address_v1.md +207 -0
  27. data/docs/us_driver_license_v1.md +268 -0
  28. data/docs/us_w9_v1.md +207 -0
  29. data/lib/mindee/client.rb +95 -16
  30. data/lib/mindee/geometry/quadrilateral.rb +5 -0
  31. data/lib/mindee/http/.rubocop.yml +8 -0
  32. data/lib/mindee/http/endpoint.rb +14 -6
  33. data/lib/mindee/http/error.rb +104 -0
  34. data/lib/mindee/http.rb +1 -0
  35. data/lib/mindee/input/sources.rb +83 -14
  36. data/lib/mindee/parsing/common/api_response.rb +11 -1
  37. data/lib/mindee/parsing/common/inference.rb +2 -2
  38. data/lib/mindee/parsing/common/ocr/ocr.rb +1 -0
  39. data/lib/mindee/parsing/common.rb +0 -1
  40. data/lib/mindee/parsing/standard/company_registration_field.rb +1 -1
  41. data/lib/mindee/parsing/standard/locale_field.rb +1 -1
  42. data/lib/mindee/parsing/standard/payment_details_field.rb +1 -1
  43. data/lib/mindee/parsing/standard/position_field.rb +10 -3
  44. data/lib/mindee/parsing/standard/{text_field.rb → string_field.rb} +1 -1
  45. data/lib/mindee/parsing/standard.rb +1 -1
  46. data/lib/mindee/pdf/pdf_processing.rb +2 -1
  47. data/lib/mindee/product/barcode_reader/barcode_reader_v1.rb +37 -0
  48. data/lib/mindee/product/barcode_reader/barcode_reader_v1_document.rb +44 -0
  49. data/lib/mindee/product/barcode_reader/barcode_reader_v1_page.rb +32 -0
  50. data/lib/mindee/product/cropper/cropper_v1.rb +37 -0
  51. data/lib/mindee/product/cropper/cropper_v1_document.rb +13 -0
  52. data/lib/mindee/product/cropper/cropper_v1_page.rb +49 -0
  53. data/lib/mindee/product/custom/custom_v1.rb +1 -0
  54. data/lib/mindee/product/eu/license_plate/license_plate_v1.rb +1 -0
  55. data/lib/mindee/product/eu/license_plate/license_plate_v1_document.rb +2 -2
  56. data/lib/mindee/product/financial_document/financial_document_v1.rb +1 -0
  57. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +24 -24
  58. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1.rb +1 -0
  59. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1_document.rb +6 -6
  60. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2.rb +1 -0
  61. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rb +6 -6
  62. data/lib/mindee/product/fr/carte_vitale/carte_vitale_v1.rb +1 -0
  63. data/lib/mindee/product/fr/carte_vitale/carte_vitale_v1_document.rb +6 -6
  64. data/lib/mindee/product/fr/id_card/id_card_v1.rb +1 -0
  65. data/lib/mindee/product/fr/id_card/id_card_v1_document.rb +16 -16
  66. data/lib/mindee/product/fr/id_card/id_card_v2.rb +39 -0
  67. data/lib/mindee/product/fr/id_card/id_card_v2_document.rb +107 -0
  68. data/lib/mindee/product/fr/id_card/id_card_v2_page.rb +53 -0
  69. data/lib/mindee/product/invoice/invoice_v4.rb +1 -0
  70. data/lib/mindee/product/invoice/invoice_v4_document.rb +24 -24
  71. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1.rb +1 -0
  72. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_document.rb +5 -3
  73. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rb +37 -0
  74. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +35 -0
  75. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +32 -0
  76. data/lib/mindee/product/passport/passport_v1.rb +1 -0
  77. data/lib/mindee/product/passport/passport_v1_document.rb +16 -16
  78. data/lib/mindee/product/proof_of_address/proof_of_address_v1.rb +1 -0
  79. data/lib/mindee/product/proof_of_address/proof_of_address_v1_document.rb +14 -14
  80. data/lib/mindee/product/receipt/receipt_v4_document.rb +6 -6
  81. data/lib/mindee/product/receipt/receipt_v5.rb +1 -0
  82. data/lib/mindee/product/receipt/receipt_v5_document.rb +12 -12
  83. data/lib/mindee/product/us/bank_check/bank_check_v1.rb +1 -0
  84. data/lib/mindee/product/us/bank_check/bank_check_v1_document.rb +8 -8
  85. data/lib/mindee/product/us/driver_license/driver_license_v1.rb +1 -0
  86. data/lib/mindee/product/us/driver_license/driver_license_v1_document.rb +28 -28
  87. data/lib/mindee/product/us/w9/w9_v1.rb +39 -0
  88. data/lib/mindee/product/us/w9/w9_v1_document.rb +15 -0
  89. data/lib/mindee/product/us/w9/w9_v1_page.rb +102 -0
  90. data/lib/mindee/product.rb +5 -0
  91. data/lib/mindee/version.rb +5 -1
  92. data/lib/mindee.rb +47 -0
  93. metadata +43 -9
  94. data/docs/ruby-api-builder.md +0 -123
  95. data/docs/ruby-invoice-ocr.md +0 -271
  96. data/docs/ruby-passport-ocr.md +0 -165
  97. data/docs/ruby-receipt-ocr.md +0 -196
  98. data/lib/mindee/parsing/common/error.rb +0 -24
@@ -11,7 +11,7 @@ module Mindee
11
11
  include Mindee::Parsing::Standard
12
12
 
13
13
  # Locale information.
14
- # @return [Mindee::Parsing::Standard::Locale]
14
+ # @return [Mindee::Parsing::Standard::LocaleField]
15
15
  attr_reader :locale
16
16
  # The nature of the invoice.
17
17
  # @return [Mindee::Parsing::Standard::ClassificationField]
@@ -29,10 +29,10 @@ module Mindee
29
29
  # @return [Mindee::Parsing::Standard::DateField]
30
30
  attr_reader :date
31
31
  # The invoice number.
32
- # @return [Mindee::Parsing::Standard::TextField]
32
+ # @return [Mindee::Parsing::Standard::StringField]
33
33
  attr_reader :invoice_number
34
34
  # List of Reference numbers including PO number.
35
- # @return [Mindee::Parsing::Standard::TextField]
35
+ # @return [Mindee::Parsing::Standard::StringField]
36
36
  attr_reader :reference_numbers
37
37
  # The due date of the invoice.
38
38
  # @return [Mindee::Parsing::Standard::DateField]
@@ -41,25 +41,25 @@ module Mindee
41
41
  # @return [Mindee::Parsing::Standard::Taxes]
42
42
  attr_reader :taxes
43
43
  # The name of the customer.
44
- # @return [Mindee::Parsing::Standard::TextField]
44
+ # @return [Mindee::Parsing::Standard::StringField]
45
45
  attr_reader :customer_name
46
46
  # The address of the customer.
47
- # @return [Mindee::Parsing::Standard::TextField]
47
+ # @return [Mindee::Parsing::Standard::StringField]
48
48
  attr_reader :customer_address
49
49
  # The company registration information for the customer.
50
- # @return [Array<Mindee::Parsing::Standard::CompanyRegistration>]
50
+ # @return [Array<Mindee::Parsing::Standard::CompanyRegistrationField>]
51
51
  attr_reader :customer_company_registrations
52
52
  # The supplier's name.
53
- # @return [Mindee::Parsing::Standard::TextField]
53
+ # @return [Mindee::Parsing::Standard::StringField]
54
54
  attr_reader :supplier_name
55
55
  # The supplier's address.
56
- # @return [Mindee::Parsing::Standard::TextField]
56
+ # @return [Mindee::Parsing::Standard::StringField]
57
57
  attr_reader :supplier_address
58
58
  # The payment information.
59
- # @return [Array<Mindee::Parsing::Standard::PaymentDetails>]
59
+ # @return [Array<Mindee::Parsing::Standard::PaymentDetailsField>]
60
60
  attr_reader :supplier_payment_details
61
61
  # The supplier's company registration information.
62
- # @return [Array<Mindee::Parsing::Standard::CompanyRegistration>]
62
+ # @return [Array<Mindee::Parsing::Standard::CompanyRegistrationField>]
63
63
  attr_reader :supplier_company_registrations
64
64
  # Line items details.
65
65
  # @return [Array<Mindee::InvoiceV4LineItem>]
@@ -69,33 +69,33 @@ module Mindee
69
69
  # @param page_id [Integer, nil]
70
70
  def initialize(prediction, page_id)
71
71
  super()
72
- @locale = Locale.new(prediction['locale'])
72
+ @locale = LocaleField.new(prediction['locale'])
73
73
  @document_type = ClassificationField.new(prediction['document_type'], page_id)
74
74
  @total_amount = AmountField.new(prediction['total_amount'], page_id)
75
75
  @total_net = AmountField.new(prediction['total_net'], page_id)
76
- @customer_address = TextField.new(prediction['customer_address'], page_id)
77
- @customer_name = TextField.new(prediction['customer_name'], page_id)
76
+ @customer_address = StringField.new(prediction['customer_address'], page_id)
77
+ @customer_name = StringField.new(prediction['customer_name'], page_id)
78
78
  @date = DateField.new(prediction['date'], page_id)
79
79
  @due_date = DateField.new(prediction['due_date'], page_id)
80
- @invoice_number = TextField.new(prediction['invoice_number'], page_id)
81
- @supplier_name = TextField.new(prediction['supplier_name'], page_id)
82
- @supplier_address = TextField.new(prediction['supplier_address'], page_id)
80
+ @invoice_number = StringField.new(prediction['invoice_number'], page_id)
81
+ @supplier_name = StringField.new(prediction['supplier_name'], page_id)
82
+ @supplier_address = StringField.new(prediction['supplier_address'], page_id)
83
83
  @reference_numbers = []
84
84
  prediction['reference_numbers'].each do |item|
85
- @reference_numbers.push(TextField.new(item, page_id))
85
+ @reference_numbers.push(StringField.new(item, page_id))
86
86
  end
87
87
  @customer_company_registrations = []
88
88
  prediction['customer_company_registrations'].each do |item|
89
- @customer_company_registrations.push(CompanyRegistration.new(item, page_id))
89
+ @customer_company_registrations.push(CompanyRegistrationField.new(item, page_id))
90
90
  end
91
91
  @taxes = Taxes.new(prediction['taxes'], page_id)
92
92
  @supplier_payment_details = []
93
93
  prediction['supplier_payment_details'].each do |item|
94
- @supplier_payment_details.push(PaymentDetails.new(item, page_id))
94
+ @supplier_payment_details.push(PaymentDetailsField.new(item, page_id))
95
95
  end
96
96
  @supplier_company_registrations = []
97
97
  prediction['supplier_company_registrations'].each do |item|
98
- @supplier_company_registrations.push(CompanyRegistration.new(item, page_id))
98
+ @supplier_company_registrations.push(CompanyRegistrationField.new(item, page_id))
99
99
  end
100
100
  @total_tax = AmountField.new(
101
101
  { value: nil, confidence: 0.0 }, page_id
@@ -168,7 +168,7 @@ module Mindee
168
168
 
169
169
  total_excl = {
170
170
  'value' => @total_amount.value - @taxes.map(&:value).sum,
171
- 'confidence' => TextField.array_confidence(@taxes) * @total_amount.confidence,
171
+ 'confidence' => StringField.array_confidence(@taxes) * @total_amount.confidence,
172
172
  }
173
173
  @total_net = AmountField.new(total_excl, page_id, reconstructed: true)
174
174
  end
@@ -178,7 +178,7 @@ module Mindee
178
178
 
179
179
  total_incl = {
180
180
  'value' => @taxes.map(&:value).sum + @total_net.value,
181
- 'confidence' => TextField.array_confidence(@taxes) * @total_net.confidence,
181
+ 'confidence' => StringField.array_confidence(@taxes) * @total_net.confidence,
182
182
  }
183
183
  @total_amount = AmountField.new(total_incl, page_id, reconstructed: true)
184
184
  end
@@ -188,7 +188,7 @@ module Mindee
188
188
 
189
189
  total_tax = {
190
190
  'value' => @taxes.map(&:value).sum,
191
- 'confidence' => TextField.array_confidence(@taxes),
191
+ 'confidence' => StringField.array_confidence(@taxes),
192
192
  }
193
193
  return unless total_tax['value'].positive?
194
194
 
@@ -200,7 +200,7 @@ module Mindee
200
200
 
201
201
  total_tax = {
202
202
  'value' => @total_amount.value - @total_net.value,
203
- 'confidence' => TextField.array_confidence(@taxes),
203
+ 'confidence' => StringField.array_confidence(@taxes),
204
204
  }
205
205
  return unless total_tax['value'] >= 0
206
206
 
@@ -6,6 +6,7 @@ require_relative 'invoice_splitter_v1_page'
6
6
 
7
7
  module Mindee
8
8
  module Product
9
+ # Invoice Splitter module.
9
10
  module InvoiceSplitter
10
11
  # Invoice Splitter V1 prediction inference.
11
12
  class InvoiceSplitterV1 < Mindee::Parsing::Common::Inference
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Product
7
7
  module InvoiceSplitter
8
8
  # Page Group for Invoice Splitter class
9
- class PageGroup
9
+ class InvoiceSplitterV1PageGroup
10
10
  # @return[Array<Integer>]
11
11
  attr_reader :page_indexes
12
12
 
@@ -29,7 +29,7 @@ module Mindee
29
29
 
30
30
  # Invoice Splitter V1 document prediction.
31
31
  class InvoiceSplitterV1Document < Mindee::Parsing::Common::Prediction
32
- # @return[Array<Mindee::Product::PageGroup>]
32
+ # @return[Array<Mindee::Product::InvoiceSplitterV1PageGroup>]
33
33
  attr_reader :invoice_page_groups
34
34
 
35
35
  # @param prediction [Hash]
@@ -39,12 +39,14 @@ module Mindee
39
39
  construct_invoice_page_groups_from_prediction(prediction)
40
40
  end
41
41
 
42
+ # Reconstructs the page groups of a prediction
43
+ # @param prediction [hash]
42
44
  def construct_invoice_page_groups_from_prediction(prediction)
43
45
  @invoice_page_groups = []
44
46
  return unless prediction.key?('invoice_page_groups') && prediction['invoice_page_groups'].any?
45
47
 
46
48
  prediction['invoice_page_groups'].each do |page_group_prediction|
47
- @invoice_page_groups.append(PageGroup.new(page_group_prediction))
49
+ @invoice_page_groups.append(InvoiceSplitterV1PageGroup.new(page_group_prediction))
48
50
  end
49
51
  end
50
52
 
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'multi_receipts_detector_v1_document'
5
+ require_relative 'multi_receipts_detector_v1_page'
6
+
7
+ module Mindee
8
+ module Product
9
+ # Multi Receipts Detector module.
10
+ module MultiReceiptsDetector
11
+ # Multi Receipts Detector V1 prediction inference.
12
+ class MultiReceiptsDetectorV1 < Mindee::Parsing::Common::Inference
13
+ @endpoint_name = 'multi_receipts_detector'
14
+ @endpoint_version = '1'
15
+
16
+ # @param prediction [Hash]
17
+ def initialize(prediction)
18
+ super
19
+ @prediction = MultiReceiptsDetectorV1Document.new(prediction['prediction'], nil)
20
+ @pages = []
21
+ prediction['pages'].each do |page|
22
+ @pages.push(MultiReceiptsDetectorV1Page.new(page))
23
+ end
24
+ end
25
+
26
+ class << self
27
+ # Name of the endpoint for this product.
28
+ # @return [String]
29
+ attr_reader :endpoint_name
30
+ # Version for this product.
31
+ # @return [String]
32
+ attr_reader :endpoint_version
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module Product
7
+ module MultiReceiptsDetector
8
+ # Multi Receipts Detector V1 document prediction.
9
+ class MultiReceiptsDetectorV1Document < Mindee::Parsing::Common::Prediction
10
+ include Mindee::Parsing::Standard
11
+ # Positions of the receipts on the document.
12
+ # @return [Array<Mindee::Parsing::Standard::PositionField>]
13
+ attr_reader :receipts
14
+
15
+ # @param prediction [Hash]
16
+ # @param page_id [Integer, nil]
17
+ def initialize(prediction, page_id)
18
+ super()
19
+ @receipts = []
20
+ prediction['receipts'].each do |item|
21
+ @receipts.push(PositionField.new(item, page_id))
22
+ end
23
+ end
24
+
25
+ # @return [String]
26
+ def to_s
27
+ receipts = @receipts.join("\n #{' ' * 18}")
28
+ out_str = String.new
29
+ out_str << "\n:List of Receipts: #{receipts}".rstrip
30
+ out_str[1..].to_s
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'multi_receipts_detector_v1_document'
5
+
6
+ module Mindee
7
+ module Product
8
+ module MultiReceiptsDetector
9
+ # Multi Receipts Detector V1 page.
10
+ class MultiReceiptsDetectorV1Page < Mindee::Parsing::Common::Page
11
+ # @param prediction [Hash]
12
+ def initialize(prediction)
13
+ super(prediction)
14
+ @prediction = MultiReceiptsDetectorV1PagePrediction.new(
15
+ prediction['prediction'],
16
+ prediction['id']
17
+ )
18
+ end
19
+ end
20
+
21
+ # Multi Receipts Detector V1 page prediction.
22
+ class MultiReceiptsDetectorV1PagePrediction < MultiReceiptsDetectorV1Document
23
+ # @return [String]
24
+ def to_s
25
+ out_str = String.new
26
+ out_str << "\n#{super}"
27
+ out_str
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -6,6 +6,7 @@ require_relative 'passport_v1_page'
6
6
 
7
7
  module Mindee
8
8
  module Product
9
+ # Passport module.
9
10
  module Passport
10
11
  # Passport V1 prediction inference.
11
12
  class PassportV1 < Mindee::Parsing::Common::Inference
@@ -12,34 +12,34 @@ module Mindee
12
12
  # @return [Mindee::Parsing::Standard::DateField]
13
13
  attr_reader :birth_date
14
14
  # The place of birth of the passport holder.
15
- # @return [Mindee::Parsing::Standard::TextField]
15
+ # @return [Mindee::Parsing::Standard::StringField]
16
16
  attr_reader :birth_place
17
17
  # The country's 3 letter code (ISO 3166-1 alpha-3).
18
- # @return [Mindee::Parsing::Standard::TextField]
18
+ # @return [Mindee::Parsing::Standard::StringField]
19
19
  attr_reader :country
20
20
  # The expiry date of the passport.
21
21
  # @return [Mindee::Parsing::Standard::DateField]
22
22
  attr_reader :expiry_date
23
23
  # The gender of the passport holder.
24
- # @return [Mindee::Parsing::Standard::TextField]
24
+ # @return [Mindee::Parsing::Standard::StringField]
25
25
  attr_reader :gender
26
26
  # The given name(s) of the passport holder.
27
- # @return [Array<Mindee::Parsing::Standard::TextField>]
27
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
28
28
  attr_reader :given_names
29
29
  # The passport's identification number.
30
- # @return [Mindee::Parsing::Standard::TextField]
30
+ # @return [Mindee::Parsing::Standard::StringField]
31
31
  attr_reader :id_number
32
32
  # The date the passport was issued.
33
33
  # @return [Mindee::Parsing::Standard::DateField]
34
34
  attr_reader :issuance_date
35
35
  # Machine Readable Zone, first line
36
- # @return [Mindee::Parsing::Standard::TextField]
36
+ # @return [Mindee::Parsing::Standard::StringField]
37
37
  attr_reader :mrz1
38
38
  # Machine Readable Zone, second line
39
- # @return [Mindee::Parsing::Standard::TextField]
39
+ # @return [Mindee::Parsing::Standard::StringField]
40
40
  attr_reader :mrz2
41
41
  # The surname of the passport holder.
42
- # @return [Mindee::Parsing::Standard::TextField]
42
+ # @return [Mindee::Parsing::Standard::StringField]
43
43
  attr_reader :surname
44
44
 
45
45
  # @param prediction [Hash]
@@ -47,19 +47,19 @@ module Mindee
47
47
  def initialize(prediction, page_id)
48
48
  super()
49
49
  @birth_date = DateField.new(prediction['birth_date'], page_id)
50
- @birth_place = TextField.new(prediction['birth_place'], page_id)
51
- @country = TextField.new(prediction['country'], page_id)
50
+ @birth_place = StringField.new(prediction['birth_place'], page_id)
51
+ @country = StringField.new(prediction['country'], page_id)
52
52
  @expiry_date = DateField.new(prediction['expiry_date'], page_id)
53
- @gender = TextField.new(prediction['gender'], page_id)
53
+ @gender = StringField.new(prediction['gender'], page_id)
54
54
  @given_names = []
55
55
  prediction['given_names'].each do |item|
56
- @given_names.push(TextField.new(item, page_id))
56
+ @given_names.push(StringField.new(item, page_id))
57
57
  end
58
- @id_number = TextField.new(prediction['id_number'], page_id)
58
+ @id_number = StringField.new(prediction['id_number'], page_id)
59
59
  @issuance_date = DateField.new(prediction['issuance_date'], page_id)
60
- @mrz1 = TextField.new(prediction['mrz1'], page_id)
61
- @mrz2 = TextField.new(prediction['mrz2'], page_id)
62
- @surname = TextField.new(prediction['surname'], page_id)
60
+ @mrz1 = StringField.new(prediction['mrz1'], page_id)
61
+ @mrz2 = StringField.new(prediction['mrz2'], page_id)
62
+ @surname = StringField.new(prediction['surname'], page_id)
63
63
  end
64
64
 
65
65
  # @return [String]
@@ -6,6 +6,7 @@ require_relative 'proof_of_address_v1_page'
6
6
 
7
7
  module Mindee
8
8
  module Product
9
+ # Proof of Address module.
9
10
  module ProofOfAddress
10
11
  # Proof of Address V1 prediction inference.
11
12
  class ProofOfAddressV1 < Mindee::Parsing::Common::Inference
@@ -15,25 +15,25 @@ module Mindee
15
15
  # @return [Array<Mindee::Parsing::Standard::DateField>]
16
16
  attr_reader :dates
17
17
  # The address of the document's issuer.
18
- # @return [Mindee::Parsing::Standard::TextField]
18
+ # @return [Mindee::Parsing::Standard::StringField]
19
19
  attr_reader :issuer_address
20
20
  # List of company registrations found for the issuer.
21
- # @return [Array<Mindee::Parsing::Standard::CompanyRegistration>]
21
+ # @return [Array<Mindee::Parsing::Standard::CompanyRegistrationField>]
22
22
  attr_reader :issuer_company_registration
23
23
  # The name of the person or company issuing the document.
24
- # @return [Mindee::Parsing::Standard::TextField]
24
+ # @return [Mindee::Parsing::Standard::StringField]
25
25
  attr_reader :issuer_name
26
26
  # The locale detected on the document.
27
- # @return [Mindee::Parsing::Standard::Locale]
27
+ # @return [Mindee::Parsing::Standard::LocaleField]
28
28
  attr_reader :locale
29
29
  # The address of the recipient.
30
- # @return [Mindee::Parsing::Standard::TextField]
30
+ # @return [Mindee::Parsing::Standard::StringField]
31
31
  attr_reader :recipient_address
32
32
  # List of company registrations found for the recipient.
33
- # @return [Array<Mindee::Parsing::Standard::CompanyRegistration>]
33
+ # @return [Array<Mindee::Parsing::Standard::CompanyRegistrationField>]
34
34
  attr_reader :recipient_company_registration
35
35
  # The name of the person or company receiving the document.
36
- # @return [Mindee::Parsing::Standard::TextField]
36
+ # @return [Mindee::Parsing::Standard::StringField]
37
37
  attr_reader :recipient_name
38
38
 
39
39
  # @param prediction [Hash]
@@ -45,19 +45,19 @@ module Mindee
45
45
  prediction['dates'].each do |item|
46
46
  @dates.push(DateField.new(item, page_id))
47
47
  end
48
- @issuer_address = TextField.new(prediction['issuer_address'], page_id)
48
+ @issuer_address = StringField.new(prediction['issuer_address'], page_id)
49
49
  @issuer_company_registration = []
50
50
  prediction['issuer_company_registration'].each do |item|
51
- @issuer_company_registration.push(CompanyRegistration.new(item, page_id))
51
+ @issuer_company_registration.push(CompanyRegistrationField.new(item, page_id))
52
52
  end
53
- @issuer_name = TextField.new(prediction['issuer_name'], page_id)
54
- @locale = Locale.new(prediction['locale'], page_id)
55
- @recipient_address = TextField.new(prediction['recipient_address'], page_id)
53
+ @issuer_name = StringField.new(prediction['issuer_name'], page_id)
54
+ @locale = LocaleField.new(prediction['locale'], page_id)
55
+ @recipient_address = StringField.new(prediction['recipient_address'], page_id)
56
56
  @recipient_company_registration = []
57
57
  prediction['recipient_company_registration'].each do |item|
58
- @recipient_company_registration.push(CompanyRegistration.new(item, page_id))
58
+ @recipient_company_registration.push(CompanyRegistrationField.new(item, page_id))
59
59
  end
60
- @recipient_name = TextField.new(prediction['recipient_name'], page_id)
60
+ @recipient_name = StringField.new(prediction['recipient_name'], page_id)
61
61
  end
62
62
 
63
63
  # @return [String]
@@ -9,7 +9,7 @@ module Mindee
9
9
  class ReceiptV4Document < Mindee::Parsing::Common::Prediction
10
10
  include Mindee::Parsing::Standard
11
11
  # Where the purchase was made, the language, and the currency.
12
- # @return [Mindee::Parsing::Standard::Locale]
12
+ # @return [Mindee::Parsing::Standard::LocaleField]
13
13
  attr_reader :locale
14
14
  # Total including taxes
15
15
  # @return [Mindee::Parsing::Standard::AmountField]
@@ -24,13 +24,13 @@ module Mindee
24
24
  # @return [Mindee::Parsing::Standard::DateField]
25
25
  attr_reader :date
26
26
  # The name of the supplier or merchant, as seen on the receipt.
27
- # @return [Mindee::Parsing::Standard::TextField]
27
+ # @return [Mindee::Parsing::Standard::StringField]
28
28
  attr_reader :supplier
29
29
  # List of taxes detected on the receipt.
30
30
  # @return [Mindee::Parsing::Standard::Taxes]
31
31
  attr_reader :taxes
32
32
  # Time as seen on the receipt in HH:MM format.
33
- # @return [Mindee::Parsing::Standard::TextField]
33
+ # @return [Mindee::Parsing::Standard::StringField]
34
34
  attr_reader :time
35
35
  # The receipt category among predefined classes.
36
36
  # @return [Mindee::Parsing::Standard::ClassificationField]
@@ -49,7 +49,7 @@ module Mindee
49
49
  # @param page_id [Integer, nil]
50
50
  def initialize(prediction, page_id)
51
51
  super()
52
- @locale = Locale.new(prediction['locale'])
52
+ @locale = LocaleField.new(prediction['locale'])
53
53
  @total_amount = AmountField.new(prediction['total_amount'], page_id)
54
54
  @total_net = AmountField.new(prediction['total_net'], page_id)
55
55
  @total_tax = AmountField.new(prediction['total_tax'], page_id)
@@ -58,8 +58,8 @@ module Mindee
58
58
  @category = ClassificationField.new(prediction['category'], page_id)
59
59
  @subcategory = ClassificationField.new(prediction['subcategory'], page_id)
60
60
  @document_type = ClassificationField.new(prediction['document_type'], page_id)
61
- @supplier = TextField.new(prediction['supplier'], page_id)
62
- @time = TextField.new(prediction['time'], page_id)
61
+ @supplier = StringField.new(prediction['supplier'], page_id)
62
+ @time = StringField.new(prediction['time'], page_id)
63
63
  @taxes = Taxes.new(prediction['taxes'], page_id)
64
64
  end
65
65
 
@@ -6,6 +6,7 @@ require_relative 'receipt_v5_page'
6
6
 
7
7
  module Mindee
8
8
  module Product
9
+ # Receipt module.
9
10
  module Receipt
10
11
  # Receipt V5 prediction inference.
11
12
  class ReceiptV5 < Mindee::Parsing::Common::Inference
@@ -22,28 +22,28 @@ module Mindee
22
22
  # @return [Array<Mindee::Product::Receipt::ReceiptV5LineItem>]
23
23
  attr_reader :line_items
24
24
  # The locale detected on the document.
25
- # @return [Mindee::Parsing::Standard::Locale]
25
+ # @return [Mindee::Parsing::Standard::LocaleField]
26
26
  attr_reader :locale
27
27
  # The purchase subcategory among predefined classes for transport and food.
28
28
  # @return [Mindee::Parsing::Standard::ClassificationField]
29
29
  attr_reader :subcategory
30
30
  # The address of the supplier or merchant.
31
- # @return [Mindee::Parsing::Standard::TextField]
31
+ # @return [Mindee::Parsing::Standard::StringField]
32
32
  attr_reader :supplier_address
33
33
  # List of company registrations associated to the supplier.
34
- # @return [Array<Mindee::Parsing::Standard::CompanyRegistration>]
34
+ # @return [Array<Mindee::Parsing::Standard::CompanyRegistrationField>]
35
35
  attr_reader :supplier_company_registrations
36
36
  # The name of the supplier or merchant.
37
- # @return [Mindee::Parsing::Standard::TextField]
37
+ # @return [Mindee::Parsing::Standard::StringField]
38
38
  attr_reader :supplier_name
39
39
  # The phone number of the supplier or merchant.
40
- # @return [Mindee::Parsing::Standard::TextField]
40
+ # @return [Mindee::Parsing::Standard::StringField]
41
41
  attr_reader :supplier_phone_number
42
42
  # List of tax lines information.
43
43
  # @return [Mindee::Parsing::Standard::Taxes]
44
44
  attr_reader :taxes
45
45
  # The time the purchase was made.
46
- # @return [Mindee::Parsing::Standard::TextField]
46
+ # @return [Mindee::Parsing::Standard::StringField]
47
47
  attr_reader :time
48
48
  # The total amount of tip and gratuity.
49
49
  # @return [Mindee::Parsing::Standard::AmountField]
@@ -69,17 +69,17 @@ module Mindee
69
69
  prediction['line_items'].each do |item|
70
70
  @line_items.push(ReceiptV5LineItem.new(item, page_id))
71
71
  end
72
- @locale = Locale.new(prediction['locale'], page_id)
72
+ @locale = LocaleField.new(prediction['locale'], page_id)
73
73
  @subcategory = ClassificationField.new(prediction['subcategory'], page_id)
74
- @supplier_address = TextField.new(prediction['supplier_address'], page_id)
74
+ @supplier_address = StringField.new(prediction['supplier_address'], page_id)
75
75
  @supplier_company_registrations = []
76
76
  prediction['supplier_company_registrations'].each do |item|
77
- @supplier_company_registrations.push(CompanyRegistration.new(item, page_id))
77
+ @supplier_company_registrations.push(CompanyRegistrationField.new(item, page_id))
78
78
  end
79
- @supplier_name = TextField.new(prediction['supplier_name'], page_id)
80
- @supplier_phone_number = TextField.new(prediction['supplier_phone_number'], page_id)
79
+ @supplier_name = StringField.new(prediction['supplier_name'], page_id)
80
+ @supplier_phone_number = StringField.new(prediction['supplier_phone_number'], page_id)
81
81
  @taxes = Taxes.new(prediction['taxes'], page_id)
82
- @time = TextField.new(prediction['time'], page_id)
82
+ @time = StringField.new(prediction['time'], page_id)
83
83
  @tip = AmountField.new(prediction['tip'], page_id)
84
84
  @total_amount = AmountField.new(prediction['total_amount'], page_id)
85
85
  @total_net = AmountField.new(prediction['total_net'], page_id)
@@ -7,6 +7,7 @@ require_relative 'bank_check_v1_page'
7
7
  module Mindee
8
8
  module Product
9
9
  module US
10
+ # Bank Check module.
10
11
  module BankCheck
11
12
  # Bank Check V1 prediction inference.
12
13
  class BankCheckV1 < Mindee::Parsing::Common::Inference
@@ -10,37 +10,37 @@ module Mindee
10
10
  class BankCheckV1Document < Mindee::Parsing::Common::Prediction
11
11
  include Mindee::Parsing::Standard
12
12
  # The check payer's account number.
13
- # @return [Mindee::Parsing::Standard::TextField]
13
+ # @return [Mindee::Parsing::Standard::StringField]
14
14
  attr_reader :account_number
15
15
  # The amount of the check.
16
16
  # @return [Mindee::Parsing::Standard::AmountField]
17
17
  attr_reader :amount
18
18
  # The issuer's check number.
19
- # @return [Mindee::Parsing::Standard::TextField]
19
+ # @return [Mindee::Parsing::Standard::StringField]
20
20
  attr_reader :check_number
21
21
  # The date the check was issued.
22
22
  # @return [Mindee::Parsing::Standard::DateField]
23
23
  attr_reader :date
24
24
  # List of the check's payees (recipients).
25
- # @return [Array<Mindee::Parsing::Standard::TextField>]
25
+ # @return [Array<Mindee::Parsing::Standard::StringField>]
26
26
  attr_reader :payees
27
27
  # The check issuer's routing number.
28
- # @return [Mindee::Parsing::Standard::TextField]
28
+ # @return [Mindee::Parsing::Standard::StringField]
29
29
  attr_reader :routing_number
30
30
 
31
31
  # @param prediction [Hash]
32
32
  # @param page_id [Integer, nil]
33
33
  def initialize(prediction, page_id)
34
34
  super()
35
- @account_number = TextField.new(prediction['account_number'], page_id)
35
+ @account_number = StringField.new(prediction['account_number'], page_id)
36
36
  @amount = AmountField.new(prediction['amount'], page_id)
37
- @check_number = TextField.new(prediction['check_number'], page_id)
37
+ @check_number = StringField.new(prediction['check_number'], page_id)
38
38
  @date = DateField.new(prediction['date'], page_id)
39
39
  @payees = []
40
40
  prediction['payees'].each do |item|
41
- @payees.push(TextField.new(item, page_id))
41
+ @payees.push(StringField.new(item, page_id))
42
42
  end
43
- @routing_number = TextField.new(prediction['routing_number'], page_id)
43
+ @routing_number = StringField.new(prediction['routing_number'], page_id)
44
44
  end
45
45
 
46
46
  # @return [String]
@@ -7,6 +7,7 @@ require_relative 'driver_license_v1_page'
7
7
  module Mindee
8
8
  module Product
9
9
  module US
10
+ # Driver License module.
10
11
  module DriverLicense
11
12
  # Driver License V1 prediction inference.
12
13
  class DriverLicenseV1 < Mindee::Parsing::Common::Inference