trevol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +15 -0
  3. data/GENERADO.md +14 -0
  4. data/LICENSE +21 -0
  5. data/README.md +173 -0
  6. data/lib/trevol/client.rb +94 -0
  7. data/lib/trevol/errors.rb +152 -0
  8. data/lib/trevol/llave.rb +21 -0
  9. data/lib/trevol/paginacion.rb +41 -0
  10. data/lib/trevol/transporte.rb +173 -0
  11. data/lib/trevol/webhook.rb +100 -0
  12. data/lib/trevol.rb +18 -0
  13. data/lib/trevol_generado/api/balance_api.rb +220 -0
  14. data/lib/trevol_generado/api/credit_notes_api.rb +671 -0
  15. data/lib/trevol_generado/api/debit_notes_api.rb +671 -0
  16. data/lib/trevol_generado/api/equivalent_document_adjustments_api.rb +691 -0
  17. data/lib/trevol_generado/api/equivalent_documents_api.rb +698 -0
  18. data/lib/trevol_generado/api/events_api.rb +231 -0
  19. data/lib/trevol_generado/api/general_api.rb +201 -0
  20. data/lib/trevol_generado/api/invoices_api.rb +736 -0
  21. data/lib/trevol_generado/api/payroll_adjustments_api.rb +637 -0
  22. data/lib/trevol_generado/api/payrolls_api.rb +637 -0
  23. data/lib/trevol_generado/api/radian_events_api.rb +431 -0
  24. data/lib/trevol_generado/api/requests_api.rb +97 -0
  25. data/lib/trevol_generado/api/support_document_adjustments_api.rb +565 -0
  26. data/lib/trevol_generado/api/support_documents_api.rb +565 -0
  27. data/lib/trevol_generado/api/webhook_endpoints_api.rb +556 -0
  28. data/lib/trevol_generado/api_client.rb +441 -0
  29. data/lib/trevol_generado/api_error.rb +58 -0
  30. data/lib/trevol_generado/api_model_base.rb +88 -0
  31. data/lib/trevol_generado/configuration.rb +392 -0
  32. data/lib/trevol_generado/models/acquirer.rb +209 -0
  33. data/lib/trevol_generado/models/air_collection.rb +205 -0
  34. data/lib/trevol_generado/models/air_extension.rb +216 -0
  35. data/lib/trevol_generado/models/allowance_charge.rb +250 -0
  36. data/lib/trevol_generado/models/alternative_currency.rb +180 -0
  37. data/lib/trevol_generado/models/balance.rb +244 -0
  38. data/lib/trevol_generado/models/balance_event_data.rb +172 -0
  39. data/lib/trevol_generado/models/balance_transaction.rb +265 -0
  40. data/lib/trevol_generado/models/balance_transaction_company.rb +172 -0
  41. data/lib/trevol_generado/models/balance_transaction_document.rb +173 -0
  42. data/lib/trevol_generado/models/balance_transaction_list.rb +191 -0
  43. data/lib/trevol_generado/models/carrier.rb +219 -0
  44. data/lib/trevol_generado/models/certificate_event_data.rb +180 -0
  45. data/lib/trevol_generado/models/cinema_extension.rb +214 -0
  46. data/lib/trevol_generado/models/cinema_screening.rb +256 -0
  47. data/lib/trevol_generado/models/company.rb +267 -0
  48. data/lib/trevol_generado/models/company_key.rb +182 -0
  49. data/lib/trevol_generado/models/company_numbering.rb +201 -0
  50. data/lib/trevol_generado/models/consumption.rb +246 -0
  51. data/lib/trevol_generado/models/consumption_adjustment.rb +204 -0
  52. data/lib/trevol_generado/models/contingency.rb +160 -0
  53. data/lib/trevol_generado/models/credit_note_list.rb +191 -0
  54. data/lib/trevol_generado/models/currency.rb +241 -0
  55. data/lib/trevol_generado/models/customer.rb +360 -0
  56. data/lib/trevol_generado/models/debit_note_list.rb +191 -0
  57. data/lib/trevol_generado/models/deleted_object.rb +178 -0
  58. data/lib/trevol_generado/models/delivery.rb +200 -0
  59. data/lib/trevol_generado/models/delivery_email.rb +181 -0
  60. data/lib/trevol_generado/models/delivery_terms.rb +169 -0
  61. data/lib/trevol_generado/models/dian_result.rb +182 -0
  62. data/lib/trevol_generado/models/dian_rule.rb +216 -0
  63. data/lib/trevol_generado/models/document.rb +432 -0
  64. data/lib/trevol_generado/models/document_event_data.rb +315 -0
  65. data/lib/trevol_generado/models/document_reference.rb +169 -0
  66. data/lib/trevol_generado/models/document_totals.rb +299 -0
  67. data/lib/trevol_generado/models/document_totals_currency.rb +197 -0
  68. data/lib/trevol_generado/models/document_totals_item.rb +196 -0
  69. data/lib/trevol_generado/models/document_totals_tax.rb +197 -0
  70. data/lib/trevol_generado/models/document_totals_withholding.rb +206 -0
  71. data/lib/trevol_generado/models/equivalent_adjustment_item.rb +374 -0
  72. data/lib/trevol_generado/models/equivalent_document.rb +470 -0
  73. data/lib/trevol_generado/models/equivalent_document_adjustment.rb +440 -0
  74. data/lib/trevol_generado/models/equivalent_document_adjustment_input.rb +388 -0
  75. data/lib/trevol_generado/models/equivalent_document_adjustment_list.rb +191 -0
  76. data/lib/trevol_generado/models/equivalent_document_contingency.rb +181 -0
  77. data/lib/trevol_generado/models/equivalent_document_contingency_backup.rb +171 -0
  78. data/lib/trevol_generado/models/equivalent_document_event_data.rb +313 -0
  79. data/lib/trevol_generado/models/equivalent_document_input.rb +365 -0
  80. data/lib/trevol_generado/models/equivalent_document_list.rb +191 -0
  81. data/lib/trevol_generado/models/equivalent_document_reference.rb +241 -0
  82. data/lib/trevol_generado/models/equivalent_item.rb +387 -0
  83. data/lib/trevol_generado/models/event.rb +223 -0
  84. data/lib/trevol_generado/models/event_claim.rb +170 -0
  85. data/lib/trevol_generado/models/event_delivery.rb +178 -0
  86. data/lib/trevol_generado/models/event_delivery_email.rb +161 -0
  87. data/lib/trevol_generado/models/event_dian_result.rb +173 -0
  88. data/lib/trevol_generado/models/event_dian_rule.rb +170 -0
  89. data/lib/trevol_generado/models/event_document_error.rb +170 -0
  90. data/lib/trevol_generado/models/event_equivalent_document_ref.rb +161 -0
  91. data/lib/trevol_generado/models/event_error.rb +170 -0
  92. data/lib/trevol_generado/models/event_invoice_ref.rb +161 -0
  93. data/lib/trevol_generado/models/event_list.rb +191 -0
  94. data/lib/trevol_generado/models/event_payroll_ref.rb +160 -0
  95. data/lib/trevol_generado/models/event_radian_invoice_ref.rb +181 -0
  96. data/lib/trevol_generado/models/event_resend_input.rb +177 -0
  97. data/lib/trevol_generado/models/event_support_document_ref.rb +161 -0
  98. data/lib/trevol_generado/models/extension.rb +215 -0
  99. data/lib/trevol_generado/models/foreign_address.rb +218 -0
  100. data/lib/trevol_generado/models/free_of_charge.rb +170 -0
  101. data/lib/trevol_generado/models/game.rb +203 -0
  102. data/lib/trevol_generado/models/game_credit.rb +204 -0
  103. data/lib/trevol_generado/models/games_extension.rb +216 -0
  104. data/lib/trevol_generado/models/games_venue.rb +204 -0
  105. data/lib/trevol_generado/models/interoperability.rb +205 -0
  106. data/lib/trevol_generado/models/interoperability_collection.rb +171 -0
  107. data/lib/trevol_generado/models/interoperability_data.rb +186 -0
  108. data/lib/trevol_generado/models/invoice_input.rb +364 -0
  109. data/lib/trevol_generado/models/invoice_list.rb +191 -0
  110. data/lib/trevol_generado/models/invoice_reference.rb +198 -0
  111. data/lib/trevol_generado/models/item.rb +439 -0
  112. data/lib/trevol_generado/models/item_allowance.rb +190 -0
  113. data/lib/trevol_generado/models/item_consignment.rb +286 -0
  114. data/lib/trevol_generado/models/item_mandator.rb +231 -0
  115. data/lib/trevol_generado/models/item_notary.rb +204 -0
  116. data/lib/trevol_generado/models/item_property.rb +223 -0
  117. data/lib/trevol_generado/models/item_tax.rb +246 -0
  118. data/lib/trevol_generado/models/item_withholding.rb +214 -0
  119. data/lib/trevol_generado/models/meter.rb +233 -0
  120. data/lib/trevol_generado/models/note_input.rb +329 -0
  121. data/lib/trevol_generado/models/numbering.rb +178 -0
  122. data/lib/trevol_generado/models/numbering_expiring_event_data.rb +209 -0
  123. data/lib/trevol_generado/models/numbering_low_event_data.rb +209 -0
  124. data/lib/trevol_generado/models/origin_note.rb +230 -0
  125. data/lib/trevol_generado/models/payment.rb +232 -0
  126. data/lib/trevol_generado/models/payment_method.rb +187 -0
  127. data/lib/trevol_generado/models/payroll.rb +455 -0
  128. data/lib/trevol_generado/models/payroll_adjustment.rb +467 -0
  129. data/lib/trevol_generado/models/payroll_adjustment_input.rb +362 -0
  130. data/lib/trevol_generado/models/payroll_adjustment_list.rb +191 -0
  131. data/lib/trevol_generado/models/payroll_basic.rb +204 -0
  132. data/lib/trevol_generado/models/payroll_compensated_vacation.rb +204 -0
  133. data/lib/trevol_generado/models/payroll_compensation.rb +205 -0
  134. data/lib/trevol_generado/models/payroll_deductions.rb +370 -0
  135. data/lib/trevol_generado/models/payroll_disability.rb +249 -0
  136. data/lib/trevol_generado/models/payroll_earnings.rb +406 -0
  137. data/lib/trevol_generado/models/payroll_employee.rb +437 -0
  138. data/lib/trevol_generado/models/payroll_employer.rb +238 -0
  139. data/lib/trevol_generado/models/payroll_epctv_bonus.rb +191 -0
  140. data/lib/trevol_generado/models/payroll_event_data.rb +303 -0
  141. data/lib/trevol_generado/models/payroll_files.rb +179 -0
  142. data/lib/trevol_generado/models/payroll_input.rb +420 -0
  143. data/lib/trevol_generado/models/payroll_leaves.rb +184 -0
  144. data/lib/trevol_generado/models/payroll_list.rb +191 -0
  145. data/lib/trevol_generado/models/payroll_loan.rb +204 -0
  146. data/lib/trevol_generado/models/payroll_novelty.rb +177 -0
  147. data/lib/trevol_generado/models/payroll_other_concept.rb +197 -0
  148. data/lib/trevol_generado/models/payroll_overtime.rb +262 -0
  149. data/lib/trevol_generado/models/payroll_paid_period.rb +222 -0
  150. data/lib/trevol_generado/models/payroll_payment.rb +215 -0
  151. data/lib/trevol_generado/models/payroll_percent_amount.rb +205 -0
  152. data/lib/trevol_generado/models/payroll_period.rb +247 -0
  153. data/lib/trevol_generado/models/payroll_place.rb +179 -0
  154. data/lib/trevol_generado/models/payroll_reference.rb +188 -0
  155. data/lib/trevol_generado/models/payroll_salary_amounts.rb +171 -0
  156. data/lib/trevol_generado/models/payroll_sanction.rb +205 -0
  157. data/lib/trevol_generado/models/payroll_service_bonus.rb +214 -0
  158. data/lib/trevol_generado/models/payroll_severance.rb +232 -0
  159. data/lib/trevol_generado/models/payroll_solidarity_fund.rb +191 -0
  160. data/lib/trevol_generado/models/payroll_totals.rb +188 -0
  161. data/lib/trevol_generado/models/payroll_transport.rb +181 -0
  162. data/lib/trevol_generado/models/payroll_unpaid_period.rb +195 -0
  163. data/lib/trevol_generado/models/payroll_vacation.rb +173 -0
  164. data/lib/trevol_generado/models/payroll_workplace.rb +188 -0
  165. data/lib/trevol_generado/models/period.rb +169 -0
  166. data/lib/trevol_generado/models/physical_document.rb +179 -0
  167. data/lib/trevol_generado/models/pos.rb +186 -0
  168. data/lib/trevol_generado/models/pos_buyer.rb +181 -0
  169. data/lib/trevol_generado/models/pos_register.rb +269 -0
  170. data/lib/trevol_generado/models/prepayment.rb +248 -0
  171. data/lib/trevol_generado/models/preview.rb +195 -0
  172. data/lib/trevol_generado/models/problem.rb +329 -0
  173. data/lib/trevol_generado/models/problem_error.rb +178 -0
  174. data/lib/trevol_generado/models/public_services_extension.rb +385 -0
  175. data/lib/trevol_generado/models/radian_event.rb +359 -0
  176. data/lib/trevol_generado/models/radian_event_data.rb +289 -0
  177. data/lib/trevol_generado/models/radian_event_input.rb +284 -0
  178. data/lib/trevol_generado/models/radian_event_invoice.rb +208 -0
  179. data/lib/trevol_generado/models/radian_event_list.rb +191 -0
  180. data/lib/trevol_generado/models/received_invoice.rb +200 -0
  181. data/lib/trevol_generado/models/received_invoice_issuer.rb +190 -0
  182. data/lib/trevol_generado/models/references.rb +182 -0
  183. data/lib/trevol_generado/models/request_list.rb +191 -0
  184. data/lib/trevol_generado/models/request_log.rb +275 -0
  185. data/lib/trevol_generado/models/seller.rb +385 -0
  186. data/lib/trevol_generado/models/shipment.rb +178 -0
  187. data/lib/trevol_generado/models/show_event.rb +276 -0
  188. data/lib/trevol_generado/models/show_extension.rb +203 -0
  189. data/lib/trevol_generado/models/show_producer.rb +212 -0
  190. data/lib/trevol_generado/models/standard_code.rb +169 -0
  191. data/lib/trevol_generado/models/stock_exchange_extension.rb +320 -0
  192. data/lib/trevol_generado/models/stock_exchange_prices.rb +169 -0
  193. data/lib/trevol_generado/models/support_adjustment_item.rb +295 -0
  194. data/lib/trevol_generado/models/support_adjustment_reference.rb +188 -0
  195. data/lib/trevol_generado/models/support_currency.rb +231 -0
  196. data/lib/trevol_generado/models/support_document.rb +401 -0
  197. data/lib/trevol_generado/models/support_document_adjustment.rb +409 -0
  198. data/lib/trevol_generado/models/support_document_adjustment_input.rb +331 -0
  199. data/lib/trevol_generado/models/support_document_adjustment_list.rb +191 -0
  200. data/lib/trevol_generado/models/support_document_delivery.rb +199 -0
  201. data/lib/trevol_generado/models/support_document_event_data.rb +305 -0
  202. data/lib/trevol_generado/models/support_document_input.rb +331 -0
  203. data/lib/trevol_generado/models/support_document_list.rb +191 -0
  204. data/lib/trevol_generado/models/support_document_reference.rb +198 -0
  205. data/lib/trevol_generado/models/support_item.rb +317 -0
  206. data/lib/trevol_generado/models/support_item_charge.rb +180 -0
  207. data/lib/trevol_generado/models/support_item_tax.rb +197 -0
  208. data/lib/trevol_generado/models/support_item_withholding.rb +205 -0
  209. data/lib/trevol_generado/models/tacit_acceptance.rb +224 -0
  210. data/lib/trevol_generado/models/tacit_acceptance_rule.rb +226 -0
  211. data/lib/trevol_generado/models/test_event_data.rb +171 -0
  212. data/lib/trevol_generado/models/third_party_charge.rb +277 -0
  213. data/lib/trevol_generado/models/third_party_company.rb +203 -0
  214. data/lib/trevol_generado/models/top_up.rb +199 -0
  215. data/lib/trevol_generado/models/top_up_buyer.rb +352 -0
  216. data/lib/trevol_generado/models/top_up_input.rb +187 -0
  217. data/lib/trevol_generado/models/top_up_wompi.rb +209 -0
  218. data/lib/trevol_generado/models/transport_extension.rb +281 -0
  219. data/lib/trevol_generado/models/webhook_delivery.rb +267 -0
  220. data/lib/trevol_generado/models/webhook_delivery_attempt.rb +192 -0
  221. data/lib/trevol_generado/models/webhook_delivery_list.rb +191 -0
  222. data/lib/trevol_generado/models/webhook_endpoint.rb +317 -0
  223. data/lib/trevol_generado/models/webhook_endpoint_input.rb +229 -0
  224. data/lib/trevol_generado/models/webhook_endpoint_list.rb +191 -0
  225. data/lib/trevol_generado/models/webhook_endpoint_rotate_input.rb +160 -0
  226. data/lib/trevol_generado/models/webhook_endpoint_update.rb +227 -0
  227. data/lib/trevol_generado/models/withholding.rb +224 -0
  228. data/lib/trevol_generado/tablas.rb +243 -0
  229. data/lib/trevol_generado/version.rb +15 -0
  230. data/lib/trevol_generado.rb +251 -0
  231. metadata +386 -0
@@ -0,0 +1,439 @@
1
+ =begin
2
+ #API de Trevol
3
+
4
+ #Trevol API. Documentación: https://platform.trevol.si/docs
5
+
6
+ The version of the OpenAPI document: 2026-10-22
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.26.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrevolGenerado
17
+ class Item < ApiModelBase
18
+ # Código (texto).
19
+ attr_accessor :code
20
+
21
+ attr_accessor :description
22
+
23
+ # Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
24
+ attr_accessor :unit
25
+
26
+ # Número o texto decimal con punto («150000.50»).
27
+ attr_accessor :quantity
28
+
29
+ # Precio unitario SIN impuestos.
30
+ attr_accessor :unit_price
31
+
32
+ # Impuestos de la línea: {code, rate} porcentual, {code: \"01\", excluded: true} o nominal {code, unit_amount, unit?, quantity?}.
33
+ attr_accessor :taxes
34
+
35
+ attr_accessor :discounts
36
+
37
+ attr_accessor :charges
38
+
39
+ # Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA.
40
+ attr_accessor :withholdings
41
+
42
+ attr_accessor :free_of_charge
43
+
44
+ attr_accessor :standard_code
45
+
46
+ attr_accessor :brand
47
+
48
+ attr_accessor :model
49
+
50
+ # AIU (solo con `operation_type` \"09\"): \"A\" administración, \"I\" imprevistos, \"U\" utilidad. Solo en facturas.
51
+ attr_accessor :aiu
52
+
53
+ # El objeto del contrato AIU: solo en la línea A, y obligatorio en ella. Solo en facturas.
54
+ attr_accessor :aiu_contract
55
+
56
+ # Mandatos (11): \"own\" (por defecto) o \"third_party\" (con `mandator`). Solo en facturas.
57
+ attr_accessor :income
58
+
59
+ # El mandante de un ingreso para terceros. Solo en facturas.
60
+ attr_accessor :mandator
61
+
62
+ # La remesa del RNDC (transporte de carga, 12). Solo en facturas.
63
+ attr_accessor :consignment
64
+
65
+ # Matrícula inmobiliaria y valor comercial (notarios, 14). Solo en facturas.
66
+ attr_accessor :notary
67
+
68
+ # Propiedades libres de la línea (hasta 20; no en el transporte de carga). Solo en facturas.
69
+ attr_accessor :properties
70
+
71
+ class EnumAttributeValidator
72
+ attr_reader :datatype
73
+ attr_reader :allowable_values
74
+
75
+ def initialize(datatype, allowable_values)
76
+ @allowable_values = allowable_values.map do |value|
77
+ case datatype.to_s
78
+ when /Integer/i
79
+ value.to_i
80
+ when /Float/i
81
+ value.to_f
82
+ else
83
+ value
84
+ end
85
+ end
86
+ end
87
+
88
+ def valid?(value)
89
+ !value || allowable_values.include?(value)
90
+ end
91
+ end
92
+
93
+ # Attribute mapping from ruby-style variable name to JSON key.
94
+ def self.attribute_map
95
+ {
96
+ :'code' => :'code',
97
+ :'description' => :'description',
98
+ :'unit' => :'unit',
99
+ :'quantity' => :'quantity',
100
+ :'unit_price' => :'unit_price',
101
+ :'taxes' => :'taxes',
102
+ :'discounts' => :'discounts',
103
+ :'charges' => :'charges',
104
+ :'withholdings' => :'withholdings',
105
+ :'free_of_charge' => :'free_of_charge',
106
+ :'standard_code' => :'standard_code',
107
+ :'brand' => :'brand',
108
+ :'model' => :'model',
109
+ :'aiu' => :'aiu',
110
+ :'aiu_contract' => :'aiu_contract',
111
+ :'income' => :'income',
112
+ :'mandator' => :'mandator',
113
+ :'consignment' => :'consignment',
114
+ :'notary' => :'notary',
115
+ :'properties' => :'properties'
116
+ }
117
+ end
118
+
119
+ # Returns attribute mapping this model knows about
120
+ def self.acceptable_attribute_map
121
+ attribute_map
122
+ end
123
+
124
+ # Returns all the JSON keys this model knows about
125
+ def self.acceptable_attributes
126
+ acceptable_attribute_map.values
127
+ end
128
+
129
+ # Attribute type mapping.
130
+ def self.openapi_types
131
+ {
132
+ :'code' => :'String',
133
+ :'description' => :'String',
134
+ :'unit' => :'String',
135
+ :'quantity' => :'String',
136
+ :'unit_price' => :'String',
137
+ :'taxes' => :'Array<ItemTax>',
138
+ :'discounts' => :'Array<ItemAllowance>',
139
+ :'charges' => :'Array<ItemAllowance>',
140
+ :'withholdings' => :'Array<ItemWithholding>',
141
+ :'free_of_charge' => :'FreeOfCharge',
142
+ :'standard_code' => :'StandardCode',
143
+ :'brand' => :'String',
144
+ :'model' => :'String',
145
+ :'aiu' => :'String',
146
+ :'aiu_contract' => :'String',
147
+ :'income' => :'String',
148
+ :'mandator' => :'ItemMandator',
149
+ :'consignment' => :'ItemConsignment',
150
+ :'notary' => :'ItemNotary',
151
+ :'properties' => :'Array<ItemProperty>'
152
+ }
153
+ end
154
+
155
+ # List of attributes with nullable: true
156
+ def self.openapi_nullable
157
+ Set.new([
158
+ ])
159
+ end
160
+
161
+ # Returns attribute type mapping
162
+ def self.acceptable_openapi_types
163
+ openapi_types
164
+ end
165
+
166
+ # Returns the nullable attributes
167
+ def self.acceptable_openapi_nullable
168
+ openapi_nullable
169
+ end
170
+
171
+ # Initializes the object
172
+ # @param [Hash] attributes Model attributes in the form of hash
173
+ def initialize(attributes = {})
174
+ if (!attributes.is_a?(Hash))
175
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TrevolGenerado::Item` initialize method"
176
+ end
177
+
178
+ # check to see if the attribute exists and convert string to symbol for hash key
179
+ acceptable_attribute_map = self.class.acceptable_attribute_map
180
+ attributes = attributes.each_with_object({}) { |(k, v), h|
181
+ if (!acceptable_attribute_map.key?(k.to_sym))
182
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TrevolGenerado::Item`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
183
+ end
184
+ h[k.to_sym] = v
185
+ }
186
+
187
+ if attributes.key?(:'code')
188
+ self.code = attributes[:'code']
189
+ end
190
+
191
+ if attributes.key?(:'description')
192
+ self.description = attributes[:'description']
193
+ else
194
+ self.description = nil
195
+ end
196
+
197
+ if attributes.key?(:'unit')
198
+ self.unit = attributes[:'unit']
199
+ end
200
+
201
+ if attributes.key?(:'quantity')
202
+ self.quantity = attributes[:'quantity']
203
+ else
204
+ self.quantity = nil
205
+ end
206
+
207
+ if attributes.key?(:'unit_price')
208
+ self.unit_price = attributes[:'unit_price']
209
+ else
210
+ self.unit_price = nil
211
+ end
212
+
213
+ if attributes.key?(:'taxes')
214
+ if (value = attributes[:'taxes']).is_a?(Array)
215
+ self.taxes = value
216
+ end
217
+ end
218
+
219
+ if attributes.key?(:'discounts')
220
+ if (value = attributes[:'discounts']).is_a?(Array)
221
+ self.discounts = value
222
+ end
223
+ end
224
+
225
+ if attributes.key?(:'charges')
226
+ if (value = attributes[:'charges']).is_a?(Array)
227
+ self.charges = value
228
+ end
229
+ end
230
+
231
+ if attributes.key?(:'withholdings')
232
+ if (value = attributes[:'withholdings']).is_a?(Array)
233
+ self.withholdings = value
234
+ end
235
+ end
236
+
237
+ if attributes.key?(:'free_of_charge')
238
+ self.free_of_charge = attributes[:'free_of_charge']
239
+ end
240
+
241
+ if attributes.key?(:'standard_code')
242
+ self.standard_code = attributes[:'standard_code']
243
+ end
244
+
245
+ if attributes.key?(:'brand')
246
+ self.brand = attributes[:'brand']
247
+ end
248
+
249
+ if attributes.key?(:'model')
250
+ self.model = attributes[:'model']
251
+ end
252
+
253
+ if attributes.key?(:'aiu')
254
+ self.aiu = attributes[:'aiu']
255
+ end
256
+
257
+ if attributes.key?(:'aiu_contract')
258
+ self.aiu_contract = attributes[:'aiu_contract']
259
+ end
260
+
261
+ if attributes.key?(:'income')
262
+ self.income = attributes[:'income']
263
+ end
264
+
265
+ if attributes.key?(:'mandator')
266
+ self.mandator = attributes[:'mandator']
267
+ end
268
+
269
+ if attributes.key?(:'consignment')
270
+ self.consignment = attributes[:'consignment']
271
+ end
272
+
273
+ if attributes.key?(:'notary')
274
+ self.notary = attributes[:'notary']
275
+ end
276
+
277
+ if attributes.key?(:'properties')
278
+ if (value = attributes[:'properties']).is_a?(Array)
279
+ self.properties = value
280
+ end
281
+ end
282
+ end
283
+
284
+ # Show invalid properties with the reasons. Usually used together with valid?
285
+ # @return Array for valid properties with the reasons
286
+ def list_invalid_properties
287
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
288
+ invalid_properties = Array.new
289
+ if @description.nil?
290
+ invalid_properties.push('invalid value for "description", description cannot be nil.')
291
+ end
292
+
293
+ if @quantity.nil?
294
+ invalid_properties.push('invalid value for "quantity", quantity cannot be nil.')
295
+ end
296
+
297
+ if @unit_price.nil?
298
+ invalid_properties.push('invalid value for "unit_price", unit_price cannot be nil.')
299
+ end
300
+
301
+ invalid_properties
302
+ end
303
+
304
+ # Check to see if the all the properties in the model are valid
305
+ # @return true if the model is valid
306
+ def valid?
307
+ warn '[DEPRECATED] the `valid?` method is obsolete'
308
+ return false if @description.nil?
309
+ return false if @quantity.nil?
310
+ return false if @unit_price.nil?
311
+ income_validator = EnumAttributeValidator.new('String', ["own", "third_party", "unknown_default_open_api"])
312
+ return false unless income_validator.valid?(@income)
313
+ true
314
+ end
315
+
316
+ # Custom attribute writer method with validation
317
+ # @param [Object] description Value to be assigned
318
+ def description=(description)
319
+ if description.nil?
320
+ fail ArgumentError, 'description cannot be nil'
321
+ end
322
+
323
+ @description = description
324
+ end
325
+
326
+ # Custom attribute writer method with validation
327
+ # @param [Object] quantity Value to be assigned
328
+ def quantity=(quantity)
329
+ if quantity.nil?
330
+ fail ArgumentError, 'quantity cannot be nil'
331
+ end
332
+
333
+ @quantity = quantity
334
+ end
335
+
336
+ # Custom attribute writer method with validation
337
+ # @param [Object] unit_price Value to be assigned
338
+ def unit_price=(unit_price)
339
+ if unit_price.nil?
340
+ fail ArgumentError, 'unit_price cannot be nil'
341
+ end
342
+
343
+ @unit_price = unit_price
344
+ end
345
+
346
+ # Custom attribute writer method checking allowed values (enum).
347
+ # @param [Object] income Object to be assigned
348
+ def income=(income)
349
+ validator = EnumAttributeValidator.new('String', ["own", "third_party", "unknown_default_open_api"])
350
+ unless validator.valid?(income)
351
+ fail ArgumentError, "invalid value for \"income\", must be one of #{validator.allowable_values}."
352
+ end
353
+ @income = income
354
+ end
355
+
356
+ # Checks equality by comparing each attribute.
357
+ # @param [Object] Object to be compared
358
+ def ==(o)
359
+ return true if self.equal?(o)
360
+ self.class == o.class &&
361
+ code == o.code &&
362
+ description == o.description &&
363
+ unit == o.unit &&
364
+ quantity == o.quantity &&
365
+ unit_price == o.unit_price &&
366
+ taxes == o.taxes &&
367
+ discounts == o.discounts &&
368
+ charges == o.charges &&
369
+ withholdings == o.withholdings &&
370
+ free_of_charge == o.free_of_charge &&
371
+ standard_code == o.standard_code &&
372
+ brand == o.brand &&
373
+ model == o.model &&
374
+ aiu == o.aiu &&
375
+ aiu_contract == o.aiu_contract &&
376
+ income == o.income &&
377
+ mandator == o.mandator &&
378
+ consignment == o.consignment &&
379
+ notary == o.notary &&
380
+ properties == o.properties
381
+ end
382
+
383
+ # @see the `==` method
384
+ # @param [Object] Object to be compared
385
+ def eql?(o)
386
+ self == o
387
+ end
388
+
389
+ # Calculates hash code according to all attributes.
390
+ # @return [Integer] Hash code
391
+ def hash
392
+ [code, description, unit, quantity, unit_price, taxes, discounts, charges, withholdings, free_of_charge, standard_code, brand, model, aiu, aiu_contract, income, mandator, consignment, notary, properties].hash
393
+ end
394
+
395
+ # Builds the object from hash
396
+ # @param [Hash] attributes Model attributes in the form of hash
397
+ # @return [Object] Returns the model itself
398
+ def self.build_from_hash(attributes)
399
+ return nil unless attributes.is_a?(Hash)
400
+ attributes = attributes.transform_keys(&:to_sym)
401
+ # include attributes inherited from allOf parents (the nearest declaration wins)
402
+ map = acceptable_attribute_map
403
+ transformed_hash = {}
404
+ acceptable_openapi_types.each_pair do |key, type|
405
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
406
+ transformed_hash["#{key}"] = nil
407
+ elsif type =~ /\AArray<(.*)>/i
408
+ # check to ensure the input is an array given that the attribute
409
+ # is documented as an array but the input is not
410
+ if attributes[map[key]].is_a?(Array)
411
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
412
+ end
413
+ elsif !attributes[map[key]].nil?
414
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
415
+ end
416
+ end
417
+ new(transformed_hash)
418
+ end
419
+
420
+ # Returns the object in the form of hash
421
+ # @return [Hash] Returns the object in the form of hash
422
+ def to_hash
423
+ hash = {}
424
+ # include attributes inherited from allOf parents (the nearest declaration wins)
425
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
426
+ value = self.send(attr)
427
+ if value.nil?
428
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
429
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
430
+ end
431
+
432
+ hash[param] = _to_hash(value)
433
+ end
434
+ hash
435
+ end
436
+
437
+ end
438
+
439
+ end
@@ -0,0 +1,190 @@
1
+ =begin
2
+ #API de Trevol
3
+
4
+ #Trevol API. Documentación: https://platform.trevol.si/docs
5
+
6
+ The version of the OpenAPI document: 2026-10-22
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.26.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrevolGenerado
17
+ class ItemAllowance < ApiModelBase
18
+ # Código (texto).
19
+ attr_accessor :code
20
+
21
+ attr_accessor :reason
22
+
23
+ # Número o texto decimal con punto («150000.50»).
24
+ attr_accessor :percent
25
+
26
+ # Número o texto decimal con punto («150000.50»).
27
+ attr_accessor :amount
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'code' => :'code',
33
+ :'reason' => :'reason',
34
+ :'percent' => :'percent',
35
+ :'amount' => :'amount'
36
+ }
37
+ end
38
+
39
+ # Returns attribute mapping this model knows about
40
+ def self.acceptable_attribute_map
41
+ attribute_map
42
+ end
43
+
44
+ # Returns all the JSON keys this model knows about
45
+ def self.acceptable_attributes
46
+ acceptable_attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.openapi_types
51
+ {
52
+ :'code' => :'String',
53
+ :'reason' => :'String',
54
+ :'percent' => :'String',
55
+ :'amount' => :'String'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
65
+ # Returns attribute type mapping
66
+ def self.acceptable_openapi_types
67
+ openapi_types
68
+ end
69
+
70
+ # Returns the nullable attributes
71
+ def self.acceptable_openapi_nullable
72
+ openapi_nullable
73
+ end
74
+
75
+ # Initializes the object
76
+ # @param [Hash] attributes Model attributes in the form of hash
77
+ def initialize(attributes = {})
78
+ if (!attributes.is_a?(Hash))
79
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TrevolGenerado::ItemAllowance` initialize method"
80
+ end
81
+
82
+ # check to see if the attribute exists and convert string to symbol for hash key
83
+ acceptable_attribute_map = self.class.acceptable_attribute_map
84
+ attributes = attributes.each_with_object({}) { |(k, v), h|
85
+ if (!acceptable_attribute_map.key?(k.to_sym))
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TrevolGenerado::ItemAllowance`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
87
+ end
88
+ h[k.to_sym] = v
89
+ }
90
+
91
+ if attributes.key?(:'code')
92
+ self.code = attributes[:'code']
93
+ end
94
+
95
+ if attributes.key?(:'reason')
96
+ self.reason = attributes[:'reason']
97
+ end
98
+
99
+ if attributes.key?(:'percent')
100
+ self.percent = attributes[:'percent']
101
+ end
102
+
103
+ if attributes.key?(:'amount')
104
+ self.amount = attributes[:'amount']
105
+ end
106
+ end
107
+
108
+ # Show invalid properties with the reasons. Usually used together with valid?
109
+ # @return Array for valid properties with the reasons
110
+ def list_invalid_properties
111
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
112
+ invalid_properties = Array.new
113
+ invalid_properties
114
+ end
115
+
116
+ # Check to see if the all the properties in the model are valid
117
+ # @return true if the model is valid
118
+ def valid?
119
+ warn '[DEPRECATED] the `valid?` method is obsolete'
120
+ true
121
+ end
122
+
123
+ # Checks equality by comparing each attribute.
124
+ # @param [Object] Object to be compared
125
+ def ==(o)
126
+ return true if self.equal?(o)
127
+ self.class == o.class &&
128
+ code == o.code &&
129
+ reason == o.reason &&
130
+ percent == o.percent &&
131
+ amount == o.amount
132
+ end
133
+
134
+ # @see the `==` method
135
+ # @param [Object] Object to be compared
136
+ def eql?(o)
137
+ self == o
138
+ end
139
+
140
+ # Calculates hash code according to all attributes.
141
+ # @return [Integer] Hash code
142
+ def hash
143
+ [code, reason, percent, amount].hash
144
+ end
145
+
146
+ # Builds the object from hash
147
+ # @param [Hash] attributes Model attributes in the form of hash
148
+ # @return [Object] Returns the model itself
149
+ def self.build_from_hash(attributes)
150
+ return nil unless attributes.is_a?(Hash)
151
+ attributes = attributes.transform_keys(&:to_sym)
152
+ # include attributes inherited from allOf parents (the nearest declaration wins)
153
+ map = acceptable_attribute_map
154
+ transformed_hash = {}
155
+ acceptable_openapi_types.each_pair do |key, type|
156
+ if attributes.key?(map[key]) && attributes[map[key]].nil?
157
+ transformed_hash["#{key}"] = nil
158
+ elsif type =~ /\AArray<(.*)>/i
159
+ # check to ensure the input is an array given that the attribute
160
+ # is documented as an array but the input is not
161
+ if attributes[map[key]].is_a?(Array)
162
+ transformed_hash["#{key}"] = attributes[map[key]].map { |v| _deserialize($1, v) }
163
+ end
164
+ elsif !attributes[map[key]].nil?
165
+ transformed_hash["#{key}"] = _deserialize(type, attributes[map[key]])
166
+ end
167
+ end
168
+ new(transformed_hash)
169
+ end
170
+
171
+ # Returns the object in the form of hash
172
+ # @return [Hash] Returns the object in the form of hash
173
+ def to_hash
174
+ hash = {}
175
+ # include attributes inherited from allOf parents (the nearest declaration wins)
176
+ self.class.acceptable_attribute_map.each_pair do |attr, param|
177
+ value = self.send(attr)
178
+ if value.nil?
179
+ is_nullable = self.class.acceptable_openapi_nullable.include?(attr)
180
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
181
+ end
182
+
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ end
189
+
190
+ end