@d19n/youfibre-odin-sdk 1.0.202 → 1.0.203

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 (409) hide show
  1. package/README.md +602 -29
  2. package/dist/EntityRegistry.d.ts +138 -1303
  3. package/dist/EntityRegistry.js +141 -155
  4. package/dist/accessors-v2/AccountAccessor.d.ts +18 -0
  5. package/dist/accessors-v2/AccountAccessor.js +22 -0
  6. package/dist/accessors-v2/ActivityAccessor.d.ts +18 -0
  7. package/dist/accessors-v2/ActivityAccessor.js +22 -0
  8. package/dist/accessors-v2/ActivityLogAccessor.d.ts +18 -0
  9. package/dist/accessors-v2/ActivityLogAccessor.js +22 -0
  10. package/dist/accessors-v2/AddressAccessor.d.ts +18 -0
  11. package/dist/accessors-v2/AddressAccessor.js +22 -0
  12. package/dist/accessors-v2/BillingAdjustmentAccessor.d.ts +18 -0
  13. package/dist/accessors-v2/BillingAdjustmentAccessor.js +22 -0
  14. package/dist/accessors-v2/BillingRequestAccessor.d.ts +18 -0
  15. package/dist/accessors-v2/BillingRequestAccessor.js +22 -0
  16. package/dist/accessors-v2/CallLegAccessor.d.ts +18 -0
  17. package/dist/accessors-v2/CallLegAccessor.js +22 -0
  18. package/dist/accessors-v2/CaseAccessor.d.ts +18 -0
  19. package/dist/accessors-v2/CaseAccessor.js +22 -0
  20. package/dist/accessors-v2/ChangeReasonAccessor.d.ts +18 -0
  21. package/dist/accessors-v2/ChangeReasonAccessor.js +22 -0
  22. package/dist/accessors-v2/ChurnRequestAccessor.d.ts +18 -0
  23. package/dist/accessors-v2/ChurnRequestAccessor.js +22 -0
  24. package/dist/accessors-v2/ConfigAccessor.d.ts +18 -0
  25. package/dist/accessors-v2/ConfigAccessor.js +22 -0
  26. package/dist/accessors-v2/ContactAccessor.d.ts +18 -0
  27. package/dist/accessors-v2/ContactAccessor.js +22 -0
  28. package/dist/accessors-v2/ContractBuyOutAccessor.d.ts +18 -0
  29. package/dist/accessors-v2/ContractBuyOutAccessor.js +22 -0
  30. package/dist/accessors-v2/ConversationAccessor.d.ts +18 -0
  31. package/dist/accessors-v2/ConversationAccessor.js +22 -0
  32. package/dist/accessors-v2/CreditNoteAccessor.d.ts +18 -0
  33. package/dist/accessors-v2/CreditNoteAccessor.js +22 -0
  34. package/dist/accessors-v2/CrmDatasetAccessor.d.ts +18 -0
  35. package/dist/accessors-v2/CrmDatasetAccessor.js +22 -0
  36. package/dist/accessors-v2/CustomerDeviceAtaAccessor.d.ts +18 -0
  37. package/dist/accessors-v2/CustomerDeviceAtaAccessor.js +22 -0
  38. package/dist/accessors-v2/CustomerDeviceOntAccessor.d.ts +18 -0
  39. package/dist/accessors-v2/CustomerDeviceOntAccessor.js +22 -0
  40. package/dist/accessors-v2/CustomerDeviceRouterAccessor.d.ts +18 -0
  41. package/dist/accessors-v2/CustomerDeviceRouterAccessor.js +22 -0
  42. package/dist/accessors-v2/CustomerPhonePortingAccessor.d.ts +18 -0
  43. package/dist/accessors-v2/CustomerPhonePortingAccessor.js +22 -0
  44. package/dist/accessors-v2/DiscountAccessor.d.ts +18 -0
  45. package/dist/accessors-v2/DiscountAccessor.js +22 -0
  46. package/dist/accessors-v2/EmailAccessor.d.ts +18 -0
  47. package/dist/accessors-v2/EmailAccessor.js +22 -0
  48. package/dist/accessors-v2/EmailTemplateAccessor.d.ts +18 -0
  49. package/dist/accessors-v2/EmailTemplateAccessor.js +22 -0
  50. package/dist/accessors-v2/FieldServiceDispatchedProductAccessor.d.ts +18 -0
  51. package/dist/accessors-v2/FieldServiceDispatchedProductAccessor.js +22 -0
  52. package/dist/accessors-v2/FieldServiceProductAccessor.d.ts +18 -0
  53. package/dist/accessors-v2/FieldServiceProductAccessor.js +22 -0
  54. package/dist/accessors-v2/ImpersonationTrackerAccessor.d.ts +18 -0
  55. package/dist/accessors-v2/ImpersonationTrackerAccessor.js +22 -0
  56. package/dist/accessors-v2/InvoiceAccessor.d.ts +18 -0
  57. package/dist/accessors-v2/InvoiceAccessor.js +22 -0
  58. package/dist/accessors-v2/KnowledgeArticleAccessor.d.ts +18 -0
  59. package/dist/accessors-v2/KnowledgeArticleAccessor.js +22 -0
  60. package/dist/accessors-v2/LeadAccessor.d.ts +18 -0
  61. package/dist/accessors-v2/LeadAccessor.js +22 -0
  62. package/dist/accessors-v2/NetworkDeviceAccessor.d.ts +18 -0
  63. package/dist/accessors-v2/NetworkDeviceAccessor.js +22 -0
  64. package/dist/accessors-v2/NoteAccessor.d.ts +18 -0
  65. package/dist/accessors-v2/NoteAccessor.js +22 -0
  66. package/dist/accessors-v2/OfferAccessor.d.ts +18 -0
  67. package/dist/accessors-v2/OfferAccessor.js +22 -0
  68. package/dist/accessors-v2/OhExternalAuditAccessor.d.ts +18 -0
  69. package/dist/accessors-v2/OhExternalAuditAccessor.js +22 -0
  70. package/dist/accessors-v2/OneTouchSwitchAccessor.d.ts +18 -0
  71. package/dist/accessors-v2/OneTouchSwitchAccessor.js +22 -0
  72. package/dist/accessors-v2/OntReplacementApprovalAccessor.d.ts +18 -0
  73. package/dist/accessors-v2/OntReplacementApprovalAccessor.js +22 -0
  74. package/dist/accessors-v2/OrderAccessor.d.ts +18 -0
  75. package/dist/accessors-v2/OrderAccessor.js +22 -0
  76. package/dist/accessors-v2/OrderCheckAccessor.d.ts +18 -0
  77. package/dist/accessors-v2/OrderCheckAccessor.js +22 -0
  78. package/dist/accessors-v2/OrderItemAccessor.d.ts +18 -0
  79. package/dist/accessors-v2/OrderItemAccessor.js +22 -0
  80. package/dist/accessors-v2/OutageAccessor.d.ts +18 -0
  81. package/dist/accessors-v2/OutageAccessor.js +22 -0
  82. package/dist/accessors-v2/OverlayRealA55Accessor.d.ts +18 -0
  83. package/dist/accessors-v2/OverlayRealA55Accessor.js +22 -0
  84. package/dist/accessors-v2/PICRequestAccessor.d.ts +18 -0
  85. package/dist/accessors-v2/PICRequestAccessor.js +22 -0
  86. package/dist/accessors-v2/PaymentAccessor.d.ts +18 -0
  87. package/dist/accessors-v2/PaymentAccessor.js +22 -0
  88. package/dist/accessors-v2/PaymentMethodAccessor.d.ts +18 -0
  89. package/dist/accessors-v2/PaymentMethodAccessor.js +22 -0
  90. package/dist/accessors-v2/PaymentMethodRefundAccessor.d.ts +18 -0
  91. package/dist/accessors-v2/PaymentMethodRefundAccessor.js +22 -0
  92. package/dist/accessors-v2/PermissionToFailAccessor.d.ts +18 -0
  93. package/dist/accessors-v2/PermissionToFailAccessor.js +22 -0
  94. package/dist/accessors-v2/PriceBookAccessor.d.ts +18 -0
  95. package/dist/accessors-v2/PriceBookAccessor.js +22 -0
  96. package/dist/accessors-v2/ProductAccessor.d.ts +18 -0
  97. package/dist/accessors-v2/ProductAccessor.js +22 -0
  98. package/dist/accessors-v2/PushNotificationAccessor.d.ts +18 -0
  99. package/dist/accessors-v2/PushNotificationAccessor.js +22 -0
  100. package/dist/accessors-v2/RemediationOutcomeFormAccessor.d.ts +18 -0
  101. package/dist/accessors-v2/RemediationOutcomeFormAccessor.js +22 -0
  102. package/dist/accessors-v2/ReturnsAccessor.d.ts +18 -0
  103. package/dist/accessors-v2/ReturnsAccessor.js +22 -0
  104. package/dist/accessors-v2/ScheduleSlotAccessor.d.ts +18 -0
  105. package/dist/accessors-v2/ScheduleSlotAccessor.js +22 -0
  106. package/dist/accessors-v2/ServiceAccessor.d.ts +18 -0
  107. package/dist/accessors-v2/ServiceAccessor.js +22 -0
  108. package/dist/accessors-v2/ServiceAppointmentConfigAccessor.d.ts +18 -0
  109. package/dist/accessors-v2/ServiceAppointmentConfigAccessor.js +22 -0
  110. package/dist/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.d.ts +18 -0
  111. package/dist/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.js +22 -0
  112. package/dist/accessors-v2/TeamAccessor.d.ts +18 -0
  113. package/dist/accessors-v2/TeamAccessor.js +22 -0
  114. package/dist/accessors-v2/TimeSlotAccessor.d.ts +18 -0
  115. package/dist/accessors-v2/TimeSlotAccessor.js +22 -0
  116. package/dist/accessors-v2/TransactionAccessor.d.ts +18 -0
  117. package/dist/accessors-v2/TransactionAccessor.js +22 -0
  118. package/dist/accessors-v2/UgRetroAuditAccessor.d.ts +18 -0
  119. package/dist/accessors-v2/UgRetroAuditAccessor.js +22 -0
  120. package/dist/accessors-v2/UserAccessor.d.ts +18 -0
  121. package/dist/accessors-v2/UserAccessor.js +22 -0
  122. package/dist/accessors-v2/VisitAccessor.d.ts +18 -0
  123. package/dist/accessors-v2/VisitAccessor.js +22 -0
  124. package/dist/accessors-v2/VoiceConfigurationAccessor.d.ts +18 -0
  125. package/dist/accessors-v2/VoiceConfigurationAccessor.js +22 -0
  126. package/dist/accessors-v2/WayleaveAuditAccessor.d.ts +18 -0
  127. package/dist/accessors-v2/WayleaveAuditAccessor.js +22 -0
  128. package/dist/accessors-v2/WorkOrderAccessor.d.ts +18 -0
  129. package/dist/accessors-v2/WorkOrderAccessor.js +22 -0
  130. package/dist/accessors-v2/WorkOrderStatusUpdateAccessor.d.ts +18 -0
  131. package/dist/accessors-v2/WorkOrderStatusUpdateAccessor.js +22 -0
  132. package/dist/accessors-v2/YfFieldServiceVisitAccessor.d.ts +18 -0
  133. package/dist/accessors-v2/YfFieldServiceVisitAccessor.js +22 -0
  134. package/dist/api-sdk-v2/WorkOrderApi.d.ts +24 -24
  135. package/dist/api-sdk-v2/WorkOrderApi.js +68 -68
  136. package/dist/db-accessors-v2/AccountDbAccessor.d.ts +18 -0
  137. package/dist/db-accessors-v2/AccountDbAccessor.js +22 -0
  138. package/dist/db-accessors-v2/ActivityDbAccessor.d.ts +18 -0
  139. package/dist/db-accessors-v2/ActivityDbAccessor.js +22 -0
  140. package/dist/db-accessors-v2/ActivityLogDbAccessor.d.ts +18 -0
  141. package/dist/db-accessors-v2/ActivityLogDbAccessor.js +22 -0
  142. package/dist/db-accessors-v2/AddressDbAccessor.d.ts +18 -0
  143. package/dist/db-accessors-v2/AddressDbAccessor.js +22 -0
  144. package/dist/db-accessors-v2/BillingAdjustmentDbAccessor.d.ts +18 -0
  145. package/dist/db-accessors-v2/BillingAdjustmentDbAccessor.js +22 -0
  146. package/dist/db-accessors-v2/BillingRequestDbAccessor.d.ts +18 -0
  147. package/dist/db-accessors-v2/BillingRequestDbAccessor.js +22 -0
  148. package/dist/db-accessors-v2/CallLegDbAccessor.d.ts +18 -0
  149. package/dist/db-accessors-v2/CallLegDbAccessor.js +22 -0
  150. package/dist/db-accessors-v2/CaseDbAccessor.d.ts +18 -0
  151. package/dist/db-accessors-v2/CaseDbAccessor.js +22 -0
  152. package/dist/db-accessors-v2/ChangeReasonDbAccessor.d.ts +18 -0
  153. package/dist/db-accessors-v2/ChangeReasonDbAccessor.js +22 -0
  154. package/dist/db-accessors-v2/ChurnRequestDbAccessor.d.ts +18 -0
  155. package/dist/db-accessors-v2/ChurnRequestDbAccessor.js +22 -0
  156. package/dist/db-accessors-v2/ConfigDbAccessor.d.ts +18 -0
  157. package/dist/db-accessors-v2/ConfigDbAccessor.js +22 -0
  158. package/dist/db-accessors-v2/ContactDbAccessor.d.ts +18 -0
  159. package/dist/db-accessors-v2/ContactDbAccessor.js +22 -0
  160. package/dist/db-accessors-v2/ContractBuyOutDbAccessor.d.ts +18 -0
  161. package/dist/db-accessors-v2/ContractBuyOutDbAccessor.js +22 -0
  162. package/dist/db-accessors-v2/ConversationDbAccessor.d.ts +18 -0
  163. package/dist/db-accessors-v2/ConversationDbAccessor.js +22 -0
  164. package/dist/db-accessors-v2/CreditNoteDbAccessor.d.ts +18 -0
  165. package/dist/db-accessors-v2/CreditNoteDbAccessor.js +22 -0
  166. package/dist/db-accessors-v2/CrmDatasetDbAccessor.d.ts +18 -0
  167. package/dist/db-accessors-v2/CrmDatasetDbAccessor.js +22 -0
  168. package/dist/db-accessors-v2/CustomerDeviceAtaDbAccessor.d.ts +18 -0
  169. package/dist/db-accessors-v2/CustomerDeviceAtaDbAccessor.js +22 -0
  170. package/dist/db-accessors-v2/CustomerDeviceOntDbAccessor.d.ts +18 -0
  171. package/dist/db-accessors-v2/CustomerDeviceOntDbAccessor.js +22 -0
  172. package/dist/db-accessors-v2/CustomerDeviceRouterDbAccessor.d.ts +18 -0
  173. package/dist/db-accessors-v2/CustomerDeviceRouterDbAccessor.js +22 -0
  174. package/dist/db-accessors-v2/CustomerPhonePortingDbAccessor.d.ts +18 -0
  175. package/dist/db-accessors-v2/CustomerPhonePortingDbAccessor.js +22 -0
  176. package/dist/db-accessors-v2/DiscountDbAccessor.d.ts +18 -0
  177. package/dist/db-accessors-v2/DiscountDbAccessor.js +22 -0
  178. package/dist/db-accessors-v2/EmailDbAccessor.d.ts +18 -0
  179. package/dist/db-accessors-v2/EmailDbAccessor.js +22 -0
  180. package/dist/db-accessors-v2/EmailTemplateDbAccessor.d.ts +18 -0
  181. package/dist/db-accessors-v2/EmailTemplateDbAccessor.js +22 -0
  182. package/dist/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.d.ts +18 -0
  183. package/dist/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.js +22 -0
  184. package/dist/db-accessors-v2/FieldServiceProductDbAccessor.d.ts +18 -0
  185. package/dist/db-accessors-v2/FieldServiceProductDbAccessor.js +22 -0
  186. package/dist/db-accessors-v2/ImpersonationTrackerDbAccessor.d.ts +18 -0
  187. package/dist/db-accessors-v2/ImpersonationTrackerDbAccessor.js +22 -0
  188. package/dist/db-accessors-v2/InvoiceDbAccessor.d.ts +18 -0
  189. package/dist/db-accessors-v2/InvoiceDbAccessor.js +22 -0
  190. package/dist/db-accessors-v2/KnowledgeArticleDbAccessor.d.ts +18 -0
  191. package/dist/db-accessors-v2/KnowledgeArticleDbAccessor.js +22 -0
  192. package/dist/db-accessors-v2/LeadDbAccessor.d.ts +18 -0
  193. package/dist/db-accessors-v2/LeadDbAccessor.js +22 -0
  194. package/dist/db-accessors-v2/NetworkDeviceDbAccessor.d.ts +18 -0
  195. package/dist/db-accessors-v2/NetworkDeviceDbAccessor.js +22 -0
  196. package/dist/db-accessors-v2/NoteDbAccessor.d.ts +18 -0
  197. package/dist/db-accessors-v2/NoteDbAccessor.js +22 -0
  198. package/dist/db-accessors-v2/OfferDbAccessor.d.ts +18 -0
  199. package/dist/db-accessors-v2/OfferDbAccessor.js +22 -0
  200. package/dist/db-accessors-v2/OhExternalAuditDbAccessor.d.ts +18 -0
  201. package/dist/db-accessors-v2/OhExternalAuditDbAccessor.js +22 -0
  202. package/dist/db-accessors-v2/OneTouchSwitchDbAccessor.d.ts +18 -0
  203. package/dist/db-accessors-v2/OneTouchSwitchDbAccessor.js +22 -0
  204. package/dist/db-accessors-v2/OntReplacementApprovalDbAccessor.d.ts +18 -0
  205. package/dist/db-accessors-v2/OntReplacementApprovalDbAccessor.js +22 -0
  206. package/dist/db-accessors-v2/OrderCheckDbAccessor.d.ts +18 -0
  207. package/dist/db-accessors-v2/OrderCheckDbAccessor.js +22 -0
  208. package/dist/db-accessors-v2/OrderDbAccessor.d.ts +18 -0
  209. package/dist/db-accessors-v2/OrderDbAccessor.js +22 -0
  210. package/dist/db-accessors-v2/OrderItemDbAccessor.d.ts +18 -0
  211. package/dist/db-accessors-v2/OrderItemDbAccessor.js +22 -0
  212. package/dist/db-accessors-v2/OutageDbAccessor.d.ts +18 -0
  213. package/dist/db-accessors-v2/OutageDbAccessor.js +22 -0
  214. package/dist/db-accessors-v2/OverlayRealA55DbAccessor.d.ts +18 -0
  215. package/dist/db-accessors-v2/OverlayRealA55DbAccessor.js +22 -0
  216. package/dist/db-accessors-v2/PICRequestDbAccessor.d.ts +18 -0
  217. package/dist/db-accessors-v2/PICRequestDbAccessor.js +22 -0
  218. package/dist/db-accessors-v2/PaymentDbAccessor.d.ts +18 -0
  219. package/dist/db-accessors-v2/PaymentDbAccessor.js +22 -0
  220. package/dist/db-accessors-v2/PaymentMethodDbAccessor.d.ts +18 -0
  221. package/dist/db-accessors-v2/PaymentMethodDbAccessor.js +22 -0
  222. package/dist/db-accessors-v2/PaymentMethodRefundDbAccessor.d.ts +18 -0
  223. package/dist/db-accessors-v2/PaymentMethodRefundDbAccessor.js +22 -0
  224. package/dist/db-accessors-v2/PermissionToFailDbAccessor.d.ts +18 -0
  225. package/dist/db-accessors-v2/PermissionToFailDbAccessor.js +22 -0
  226. package/dist/db-accessors-v2/PriceBookDbAccessor.d.ts +18 -0
  227. package/dist/db-accessors-v2/PriceBookDbAccessor.js +22 -0
  228. package/dist/db-accessors-v2/ProductDbAccessor.d.ts +18 -0
  229. package/dist/db-accessors-v2/ProductDbAccessor.js +22 -0
  230. package/dist/db-accessors-v2/PushNotificationDbAccessor.d.ts +18 -0
  231. package/dist/db-accessors-v2/PushNotificationDbAccessor.js +22 -0
  232. package/dist/db-accessors-v2/RemediationOutcomeFormDbAccessor.d.ts +18 -0
  233. package/dist/db-accessors-v2/RemediationOutcomeFormDbAccessor.js +22 -0
  234. package/dist/db-accessors-v2/ReturnsDbAccessor.d.ts +18 -0
  235. package/dist/db-accessors-v2/ReturnsDbAccessor.js +22 -0
  236. package/dist/db-accessors-v2/ScheduleSlotDbAccessor.d.ts +18 -0
  237. package/dist/db-accessors-v2/ScheduleSlotDbAccessor.js +22 -0
  238. package/dist/db-accessors-v2/ServiceAppointmentConfigDbAccessor.d.ts +18 -0
  239. package/dist/db-accessors-v2/ServiceAppointmentConfigDbAccessor.js +22 -0
  240. package/dist/db-accessors-v2/ServiceDbAccessor.d.ts +18 -0
  241. package/dist/db-accessors-v2/ServiceDbAccessor.js +22 -0
  242. package/dist/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.d.ts +18 -0
  243. package/dist/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.js +22 -0
  244. package/dist/db-accessors-v2/TeamDbAccessor.d.ts +18 -0
  245. package/dist/db-accessors-v2/TeamDbAccessor.js +22 -0
  246. package/dist/db-accessors-v2/TimeSlotDbAccessor.d.ts +18 -0
  247. package/dist/db-accessors-v2/TimeSlotDbAccessor.js +22 -0
  248. package/dist/db-accessors-v2/TransactionDbAccessor.d.ts +18 -0
  249. package/dist/db-accessors-v2/TransactionDbAccessor.js +22 -0
  250. package/dist/db-accessors-v2/UgRetroAuditDbAccessor.d.ts +18 -0
  251. package/dist/db-accessors-v2/UgRetroAuditDbAccessor.js +22 -0
  252. package/dist/db-accessors-v2/UserDbAccessor.d.ts +18 -0
  253. package/dist/db-accessors-v2/UserDbAccessor.js +22 -0
  254. package/dist/db-accessors-v2/VisitDbAccessor.d.ts +18 -0
  255. package/dist/db-accessors-v2/VisitDbAccessor.js +22 -0
  256. package/dist/db-accessors-v2/VoiceConfigurationDbAccessor.d.ts +18 -0
  257. package/dist/db-accessors-v2/VoiceConfigurationDbAccessor.js +22 -0
  258. package/dist/db-accessors-v2/WayleaveAuditDbAccessor.d.ts +18 -0
  259. package/dist/db-accessors-v2/WayleaveAuditDbAccessor.js +22 -0
  260. package/dist/db-accessors-v2/WorkOrderDbAccessor.d.ts +18 -0
  261. package/dist/db-accessors-v2/WorkOrderDbAccessor.js +22 -0
  262. package/dist/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.d.ts +18 -0
  263. package/dist/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.js +22 -0
  264. package/dist/db-accessors-v2/YfFieldServiceVisitDbAccessor.d.ts +18 -0
  265. package/dist/db-accessors-v2/YfFieldServiceVisitDbAccessor.js +22 -0
  266. package/dist/db-sdk-v2/WorkOrderDb.d.ts +24 -24
  267. package/dist/db-sdk-v2/WorkOrderDb.js +68 -68
  268. package/dist/entities-v2/RemediationRequiredReason.d.ts +102 -102
  269. package/dist/entities-v2/RemediationRequiredReason.js +100 -100
  270. package/dist/entities-v2/WorkOrder.d.ts +1 -3
  271. package/dist/entities-v2/WorkOrder.js +2 -4
  272. package/dist/runner.js +43 -40
  273. package/package.json +2 -2
  274. package/src/EntityRegistry.ts +145 -156
  275. package/src/accessors-v2/AccountAccessor.ts +25 -1
  276. package/src/accessors-v2/ActivityAccessor.ts +25 -1
  277. package/src/accessors-v2/ActivityLogAccessor.ts +25 -1
  278. package/src/accessors-v2/AddressAccessor.ts +25 -1
  279. package/src/accessors-v2/BillingAdjustmentAccessor.ts +25 -1
  280. package/src/accessors-v2/BillingRequestAccessor.ts +25 -1
  281. package/src/accessors-v2/CallLegAccessor.ts +25 -1
  282. package/src/accessors-v2/CaseAccessor.ts +25 -1
  283. package/src/accessors-v2/ChangeReasonAccessor.ts +25 -1
  284. package/src/accessors-v2/ChurnRequestAccessor.ts +25 -1
  285. package/src/accessors-v2/ConfigAccessor.ts +25 -1
  286. package/src/accessors-v2/ContactAccessor.ts +25 -1
  287. package/src/accessors-v2/ContractBuyOutAccessor.ts +25 -1
  288. package/src/accessors-v2/ConversationAccessor.ts +25 -1
  289. package/src/accessors-v2/CreditNoteAccessor.ts +25 -1
  290. package/src/accessors-v2/CrmDatasetAccessor.ts +25 -1
  291. package/src/accessors-v2/CustomerDeviceAtaAccessor.ts +25 -1
  292. package/src/accessors-v2/CustomerDeviceOntAccessor.ts +25 -1
  293. package/src/accessors-v2/CustomerDeviceRouterAccessor.ts +25 -1
  294. package/src/accessors-v2/CustomerPhonePortingAccessor.ts +25 -1
  295. package/src/accessors-v2/DiscountAccessor.ts +25 -1
  296. package/src/accessors-v2/EmailAccessor.ts +25 -1
  297. package/src/accessors-v2/EmailTemplateAccessor.ts +25 -1
  298. package/src/accessors-v2/FieldServiceDispatchedProductAccessor.ts +25 -1
  299. package/src/accessors-v2/FieldServiceProductAccessor.ts +25 -1
  300. package/src/accessors-v2/ImpersonationTrackerAccessor.ts +25 -1
  301. package/src/accessors-v2/InvoiceAccessor.ts +25 -1
  302. package/src/accessors-v2/KnowledgeArticleAccessor.ts +25 -1
  303. package/src/accessors-v2/LeadAccessor.ts +25 -1
  304. package/src/accessors-v2/NetworkDeviceAccessor.ts +25 -1
  305. package/src/accessors-v2/NoteAccessor.ts +25 -1
  306. package/src/accessors-v2/OfferAccessor.ts +25 -1
  307. package/src/accessors-v2/OhExternalAuditAccessor.ts +25 -1
  308. package/src/accessors-v2/OneTouchSwitchAccessor.ts +25 -1
  309. package/src/accessors-v2/OntReplacementApprovalAccessor.ts +25 -1
  310. package/src/accessors-v2/OrderAccessor.ts +25 -1
  311. package/src/accessors-v2/OrderCheckAccessor.ts +25 -1
  312. package/src/accessors-v2/OrderItemAccessor.ts +25 -1
  313. package/src/accessors-v2/OutageAccessor.ts +25 -1
  314. package/src/accessors-v2/OverlayRealA55Accessor.ts +25 -1
  315. package/src/accessors-v2/PICRequestAccessor.ts +25 -1
  316. package/src/accessors-v2/PaymentAccessor.ts +25 -1
  317. package/src/accessors-v2/PaymentMethodAccessor.ts +25 -1
  318. package/src/accessors-v2/PaymentMethodRefundAccessor.ts +25 -1
  319. package/src/accessors-v2/PermissionToFailAccessor.ts +25 -1
  320. package/src/accessors-v2/PriceBookAccessor.ts +25 -1
  321. package/src/accessors-v2/ProductAccessor.ts +25 -1
  322. package/src/accessors-v2/PushNotificationAccessor.ts +25 -1
  323. package/src/accessors-v2/RemediationOutcomeFormAccessor.ts +25 -1
  324. package/src/accessors-v2/ReturnsAccessor.ts +25 -1
  325. package/src/accessors-v2/ScheduleSlotAccessor.ts +25 -1
  326. package/src/accessors-v2/ServiceAccessor.ts +25 -1
  327. package/src/accessors-v2/ServiceAppointmentConfigAccessor.ts +25 -1
  328. package/src/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.ts +25 -1
  329. package/src/accessors-v2/TeamAccessor.ts +25 -1
  330. package/src/accessors-v2/TimeSlotAccessor.ts +25 -1
  331. package/src/accessors-v2/TransactionAccessor.ts +25 -1
  332. package/src/accessors-v2/UgRetroAuditAccessor.ts +25 -1
  333. package/src/accessors-v2/UserAccessor.ts +25 -1
  334. package/src/accessors-v2/VisitAccessor.ts +25 -1
  335. package/src/accessors-v2/VoiceConfigurationAccessor.ts +25 -1
  336. package/src/accessors-v2/WayleaveAuditAccessor.ts +25 -1
  337. package/src/accessors-v2/WorkOrderAccessor.ts +25 -1
  338. package/src/accessors-v2/WorkOrderStatusUpdateAccessor.ts +25 -1
  339. package/src/accessors-v2/YfFieldServiceVisitAccessor.ts +25 -1
  340. package/src/api-sdk-v2/WorkOrderApi.ts +141 -141
  341. package/src/db-accessors-v2/AccountDbAccessor.ts +24 -0
  342. package/src/db-accessors-v2/ActivityDbAccessor.ts +24 -0
  343. package/src/db-accessors-v2/ActivityLogDbAccessor.ts +24 -0
  344. package/src/db-accessors-v2/AddressDbAccessor.ts +24 -0
  345. package/src/db-accessors-v2/BillingAdjustmentDbAccessor.ts +24 -0
  346. package/src/db-accessors-v2/BillingRequestDbAccessor.ts +24 -0
  347. package/src/db-accessors-v2/CallLegDbAccessor.ts +24 -0
  348. package/src/db-accessors-v2/CaseDbAccessor.ts +24 -0
  349. package/src/db-accessors-v2/ChangeReasonDbAccessor.ts +24 -0
  350. package/src/db-accessors-v2/ChurnRequestDbAccessor.ts +24 -0
  351. package/src/db-accessors-v2/ConfigDbAccessor.ts +24 -0
  352. package/src/db-accessors-v2/ContactDbAccessor.ts +24 -0
  353. package/src/db-accessors-v2/ContractBuyOutDbAccessor.ts +24 -0
  354. package/src/db-accessors-v2/ConversationDbAccessor.ts +24 -0
  355. package/src/db-accessors-v2/CreditNoteDbAccessor.ts +24 -0
  356. package/src/db-accessors-v2/CrmDatasetDbAccessor.ts +24 -0
  357. package/src/db-accessors-v2/CustomerDeviceAtaDbAccessor.ts +24 -0
  358. package/src/db-accessors-v2/CustomerDeviceOntDbAccessor.ts +24 -0
  359. package/src/db-accessors-v2/CustomerDeviceRouterDbAccessor.ts +24 -0
  360. package/src/db-accessors-v2/CustomerPhonePortingDbAccessor.ts +24 -0
  361. package/src/db-accessors-v2/DiscountDbAccessor.ts +24 -0
  362. package/src/db-accessors-v2/EmailDbAccessor.ts +24 -0
  363. package/src/db-accessors-v2/EmailTemplateDbAccessor.ts +24 -0
  364. package/src/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.ts +24 -0
  365. package/src/db-accessors-v2/FieldServiceProductDbAccessor.ts +24 -0
  366. package/src/db-accessors-v2/ImpersonationTrackerDbAccessor.ts +24 -0
  367. package/src/db-accessors-v2/InvoiceDbAccessor.ts +24 -0
  368. package/src/db-accessors-v2/KnowledgeArticleDbAccessor.ts +24 -0
  369. package/src/db-accessors-v2/LeadDbAccessor.ts +24 -0
  370. package/src/db-accessors-v2/NetworkDeviceDbAccessor.ts +24 -0
  371. package/src/db-accessors-v2/NoteDbAccessor.ts +24 -0
  372. package/src/db-accessors-v2/OfferDbAccessor.ts +24 -0
  373. package/src/db-accessors-v2/OhExternalAuditDbAccessor.ts +24 -0
  374. package/src/db-accessors-v2/OneTouchSwitchDbAccessor.ts +24 -0
  375. package/src/db-accessors-v2/OntReplacementApprovalDbAccessor.ts +24 -0
  376. package/src/db-accessors-v2/OrderCheckDbAccessor.ts +24 -0
  377. package/src/db-accessors-v2/OrderDbAccessor.ts +24 -0
  378. package/src/db-accessors-v2/OrderItemDbAccessor.ts +24 -0
  379. package/src/db-accessors-v2/OutageDbAccessor.ts +24 -0
  380. package/src/db-accessors-v2/OverlayRealA55DbAccessor.ts +24 -0
  381. package/src/db-accessors-v2/PICRequestDbAccessor.ts +24 -0
  382. package/src/db-accessors-v2/PaymentDbAccessor.ts +24 -0
  383. package/src/db-accessors-v2/PaymentMethodDbAccessor.ts +24 -0
  384. package/src/db-accessors-v2/PaymentMethodRefundDbAccessor.ts +24 -0
  385. package/src/db-accessors-v2/PermissionToFailDbAccessor.ts +24 -0
  386. package/src/db-accessors-v2/PriceBookDbAccessor.ts +24 -0
  387. package/src/db-accessors-v2/ProductDbAccessor.ts +24 -0
  388. package/src/db-accessors-v2/PushNotificationDbAccessor.ts +24 -0
  389. package/src/db-accessors-v2/RemediationOutcomeFormDbAccessor.ts +24 -0
  390. package/src/db-accessors-v2/ReturnsDbAccessor.ts +24 -0
  391. package/src/db-accessors-v2/ScheduleSlotDbAccessor.ts +24 -0
  392. package/src/db-accessors-v2/ServiceAppointmentConfigDbAccessor.ts +24 -0
  393. package/src/db-accessors-v2/ServiceDbAccessor.ts +24 -0
  394. package/src/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.ts +24 -0
  395. package/src/db-accessors-v2/TeamDbAccessor.ts +24 -0
  396. package/src/db-accessors-v2/TimeSlotDbAccessor.ts +24 -0
  397. package/src/db-accessors-v2/TransactionDbAccessor.ts +24 -0
  398. package/src/db-accessors-v2/UgRetroAuditDbAccessor.ts +24 -0
  399. package/src/db-accessors-v2/UserDbAccessor.ts +24 -0
  400. package/src/db-accessors-v2/VisitDbAccessor.ts +24 -0
  401. package/src/db-accessors-v2/VoiceConfigurationDbAccessor.ts +24 -0
  402. package/src/db-accessors-v2/WayleaveAuditDbAccessor.ts +24 -0
  403. package/src/db-accessors-v2/WorkOrderDbAccessor.ts +24 -0
  404. package/src/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.ts +24 -0
  405. package/src/db-accessors-v2/YfFieldServiceVisitDbAccessor.ts +24 -0
  406. package/src/db-sdk-v2/WorkOrderDb.ts +151 -151
  407. package/src/entities-v2/RemediationRequiredReason.ts +105 -105
  408. package/src/entities-v2/WorkOrder.ts +1 -3
  409. package/src/runner.ts +52 -41
package/README.md CHANGED
@@ -20,7 +20,7 @@ Typed SDK for the ODIN platform providing full type safety for records, actions,
20
20
  ## Installation
21
21
 
22
22
  ```bash
23
- npm install @d19n/youfibre-odin-sdk
23
+ npm install @youfibre/odin-sdk
24
24
  ```
25
25
 
26
26
  ---
@@ -30,7 +30,7 @@ npm install @d19n/youfibre-odin-sdk
30
30
  ### API Access (Scripts, External Clients)
31
31
 
32
32
  ```typescript
33
- import { OdinApiClient } from '@d19n/youfibre-odin-sdk';
33
+ import { OdinApiClient } from '@youfibre/odin-sdk';
34
34
 
35
35
  const odin = new OdinApiClient({
36
36
  host: 'api.youfibre.com',
@@ -48,7 +48,7 @@ await order.activateOrder({ ActiveDate: '2025-01-15' });
48
48
  ### DB Access (Backend Services)
49
49
 
50
50
  ```typescript
51
- import { OdinDbClient } from '@d19n/youfibre-odin-sdk';
51
+ import { OdinDbClient } from '@youfibre/odin-sdk';
52
52
 
53
53
  // In a NestJS service
54
54
  @Injectable()
@@ -123,7 +123,7 @@ const odin = new OdinDbClient(principal, dbService);
123
123
 
124
124
  ```typescript
125
125
  import { Injectable } from '@nestjs/common';
126
- import { OdinDbClient } from '@d19n/youfibre-odin-sdk';
126
+ import { OdinDbClient } from '@youfibre/odin-sdk';
127
127
  import { DbService } from '@d19n/schema-manager/dist/db/db.service';
128
128
 
129
129
  @Injectable()
@@ -229,13 +229,68 @@ for (const result of results) {
229
229
 
230
230
  ## Searching Records
231
231
 
232
+ ODIN uses a structured query format with `OdinQuery` and `OdinFilter` types.
233
+
234
+ ### Query Structure
235
+
236
+ ```typescript
237
+ interface OdinFilter {
238
+ columnName: string; // Property name (e.g., 'Status', 'Contractor')
239
+ operator: OdinOperator; // 'eq', 'in', 'not in', 'gte', 'lte', 'gt', 'lt', etc.
240
+ value: any; // Filter value(s)
241
+ // Optional:
242
+ linkedEntity?: string; // For filtering on linked records
243
+ linkedRelationType?: string; // 'child' | 'parent'
244
+ caseSensitive?: boolean; // Default: false
245
+ }
246
+
247
+ interface OdinQuery {
248
+ entity: string; // Use 'infer' to auto-detect from accessor
249
+ type: 'and'; // Currently only 'and' is supported
250
+ value: OdinFilter[]; // Array of filters (AND'd together)
251
+ pageSize: number; // Max 1000 per request
252
+ pageNumber: number; // 0-indexed
253
+ sort?: Record<string, { order: 'asc' | 'desc' }>;
254
+ returnProperties?: string[]; // Fields to return
255
+ searchAfter?: any[]; // For cursor-based pagination
256
+ includeDeleted?: boolean;
257
+ includeArchived?: boolean;
258
+ }
259
+
260
+ // Available operators
261
+ type OdinOperator =
262
+ | 'eq' // Equals
263
+ | 'in' // In array
264
+ | 'not in' // Not in array
265
+ | 'gte' // Greater than or equal
266
+ | 'lte' // Less than or equal
267
+ | 'gt' // Greater than
268
+ | 'lt' // Less than
269
+ | 'isNull' // Is null
270
+ | 'notNull' // Is not null
271
+ | 'anyTerm' // Contains any term (text search)
272
+ | 'allTerm' // Contains all terms (text search)
273
+ | 'phrase' // Exact phrase match
274
+ | 'nested'; // Nested object query
275
+ ```
276
+
232
277
  ### Basic Search
233
278
 
234
279
  ```typescript
235
280
  const result = await odin.orders.search({
236
281
  query: {
237
- terms: 'ACTIVE',
238
- pageSize: 50,
282
+ entity: 'infer',
283
+ type: 'and',
284
+ value: [
285
+ {
286
+ columnName: 'Status',
287
+ operator: 'eq',
288
+ value: 'Active',
289
+ },
290
+ ],
291
+ returnProperties: ['id', 'title', 'type', 'properties.*'],
292
+ pageSize: 100,
293
+ pageNumber: 0,
239
294
  },
240
295
  });
241
296
 
@@ -244,28 +299,242 @@ console.log(result.totalRecords); // number
244
299
  console.log(result.hasMore); // boolean
245
300
  ```
246
301
 
247
- ### Search with Filters
302
+ ### Search with Multiple Filters
303
+
304
+ Filters are AND'd together:
248
305
 
249
306
  ```typescript
250
307
  const result = await odin.orders.search({
251
308
  query: {
252
- must: [
253
- { field: 'properties.Status', value: 'Active' },
254
- { field: 'properties.ContractType', value: 'Residential' },
309
+ entity: 'infer',
310
+ type: 'and',
311
+ value: [
312
+ {
313
+ columnName: 'Status',
314
+ operator: 'in',
315
+ value: ['Active', 'Pending'],
316
+ },
317
+ {
318
+ columnName: 'ContractType',
319
+ operator: 'eq',
320
+ value: 'Residential',
321
+ },
322
+ {
323
+ columnName: 'ActiveDate',
324
+ operator: 'gte',
325
+ value: '2025-01-01',
326
+ },
255
327
  ],
256
- sort: [{ field: 'createdAt', order: 'desc' }],
328
+ returnProperties: ['id', 'title', 'type', 'properties.*', 'stage'],
329
+ sort: {
330
+ createdAt: { order: 'desc' },
331
+ },
257
332
  pageSize: 100,
333
+ pageNumber: 0,
334
+ },
335
+ });
336
+ ```
337
+
338
+ ### Excluding Values (NOT IN)
339
+
340
+ ```typescript
341
+ const result = await odin.workOrders.search({
342
+ query: {
343
+ entity: 'infer',
344
+ type: 'and',
345
+ value: [
346
+ {
347
+ columnName: 'EntityType',
348
+ operator: 'not in',
349
+ value: ['COLLECTION', 'DISPATCH'],
350
+ },
351
+ {
352
+ columnName: 'Contractor',
353
+ operator: 'not in',
354
+ value: ['INTERNAL'],
355
+ },
356
+ ],
357
+ pageSize: 1000,
358
+ pageNumber: 0,
359
+ },
360
+ });
361
+ ```
362
+
363
+ ### Date Range Queries
364
+
365
+ ```typescript
366
+ const result = await odin.visits.search({
367
+ query: {
368
+ entity: 'infer',
369
+ type: 'and',
370
+ value: [
371
+ {
372
+ columnName: 'ScheduledDate',
373
+ operator: 'gte',
374
+ value: '2025-01-01',
375
+ },
376
+ {
377
+ columnName: 'ScheduledDate',
378
+ operator: 'lte',
379
+ value: '2025-01-31',
380
+ },
381
+ ],
382
+ sort: {
383
+ ScheduledDate: { order: 'asc' },
384
+ },
385
+ pageSize: 500,
386
+ pageNumber: 0,
387
+ },
388
+ });
389
+ ```
390
+
391
+ ### Text Search
392
+
393
+ ```typescript
394
+ // Match any term
395
+ const result = await odin.contacts.search({
396
+ query: {
397
+ entity: 'infer',
398
+ type: 'and',
399
+ value: [
400
+ {
401
+ columnName: 'FirstName',
402
+ operator: 'anyTerm',
403
+ value: 'john smith', // Matches 'john' OR 'smith'
404
+ },
405
+ ],
406
+ pageSize: 50,
407
+ pageNumber: 0,
408
+ },
409
+ });
410
+
411
+ // Match exact phrase
412
+ const result = await odin.contacts.search({
413
+ query: {
414
+ entity: 'infer',
415
+ type: 'and',
416
+ value: [
417
+ {
418
+ columnName: 'FullName',
419
+ operator: 'phrase',
420
+ value: 'John Smith', // Matches exact phrase
421
+ },
422
+ ],
423
+ pageSize: 50,
424
+ pageNumber: 0,
425
+ },
426
+ });
427
+ ```
428
+
429
+ ### Null Checks
430
+
431
+ ```typescript
432
+ const result = await odin.orders.search({
433
+ query: {
434
+ entity: 'infer',
435
+ type: 'and',
436
+ value: [
437
+ {
438
+ columnName: 'CancelledDate',
439
+ operator: 'isNull',
440
+ value: true,
441
+ },
442
+ {
443
+ columnName: 'ActiveDate',
444
+ operator: 'notNull',
445
+ value: true,
446
+ },
447
+ ],
448
+ pageSize: 100,
449
+ pageNumber: 0,
450
+ },
451
+ });
452
+ ```
453
+
454
+ ### Selecting Return Properties
455
+
456
+ Control which fields are returned to reduce payload size:
457
+
458
+ ```typescript
459
+ const result = await odin.orders.search({
460
+ query: {
461
+ entity: 'infer',
462
+ type: 'and',
463
+ value: [
464
+ { columnName: 'Status', operator: 'eq', value: 'Active' },
465
+ ],
466
+ returnProperties: [
467
+ 'id',
468
+ 'title',
469
+ 'type',
470
+ 'entity',
471
+ 'recordNumber',
472
+ 'properties.*', // All properties
473
+ 'stage', // Pipeline stage
474
+ 'links.*', // All linked records
475
+ ],
476
+ pageSize: 100,
477
+ pageNumber: 0,
478
+ },
479
+ });
480
+ ```
481
+
482
+ ### Sorting Results
483
+
484
+ ```typescript
485
+ const result = await odin.orders.search({
486
+ query: {
487
+ entity: 'infer',
488
+ type: 'and',
489
+ value: [
490
+ { columnName: 'Status', operator: 'eq', value: 'Active' },
491
+ ],
492
+ sort: {
493
+ createdAt: { order: 'desc' }, // Primary sort
494
+ 'properties.Priority': { order: 'asc' }, // Secondary sort
495
+ },
496
+ pageSize: 100,
497
+ pageNumber: 0,
258
498
  },
259
499
  });
260
500
  ```
261
501
 
262
502
  ### Search All (Auto-Pagination)
263
503
 
504
+ Returns ALL matching records (up to ~1M) with automatic pagination:
505
+
264
506
  ```typescript
265
- // Returns ALL matching records (handles pagination internally)
266
507
  const allOrders = await odin.orders.searchAll({
267
508
  query: {
268
- must: [{ field: 'properties.Status', value: 'Active' }],
509
+ entity: 'infer',
510
+ type: 'and',
511
+ value: [
512
+ {
513
+ columnName: 'Status',
514
+ operator: 'in',
515
+ value: ['Active', 'Pending'],
516
+ },
517
+ {
518
+ columnName: 'UpdatedAt',
519
+ operator: 'gte',
520
+ value: '2025-01-01',
521
+ },
522
+ ],
523
+ returnProperties: [
524
+ 'id',
525
+ 'title',
526
+ 'type',
527
+ 'entity',
528
+ 'schemaId',
529
+ 'recordNumber',
530
+ 'properties.*',
531
+ 'stage',
532
+ ],
533
+ sort: {
534
+ createdAt: { order: 'asc' }, // Required for consistent pagination
535
+ },
536
+ pageSize: 1000, // Max per request
537
+ pageNumber: 0,
269
538
  },
270
539
  });
271
540
 
@@ -279,8 +548,16 @@ For memory-efficient processing of large datasets:
279
548
  ```typescript
280
549
  for await (const batch of odin.orders.paginate({
281
550
  query: {
282
- must: [{ field: 'properties.Status', value: 'Active' }],
551
+ entity: 'infer',
552
+ type: 'and',
553
+ value: [
554
+ { columnName: 'Status', operator: 'eq', value: 'Active' },
555
+ ],
556
+ sort: {
557
+ createdAt: { order: 'asc' },
558
+ },
283
559
  pageSize: 500,
560
+ pageNumber: 0,
284
561
  },
285
562
  })) {
286
563
  // Process batch of 500 records
@@ -290,6 +567,302 @@ for await (const batch of odin.orders.paginate({
290
567
  }
291
568
  ```
292
569
 
570
+ ### Searching Linked Records
571
+
572
+ Filter by properties on linked entities:
573
+
574
+ ```typescript
575
+ // Find orders linked to a specific account
576
+ const result = await odin.orders.search({
577
+ query: {
578
+ entity: 'infer',
579
+ type: 'and',
580
+ value: [
581
+ {
582
+ columnName: 'Status',
583
+ operator: 'eq',
584
+ value: 'Active',
585
+ },
586
+ {
587
+ columnName: 'AccountNumber',
588
+ operator: 'eq',
589
+ value: 'ACC-12345',
590
+ linkedEntity: 'CrmModule:Account',
591
+ linkedRelationType: 'parent',
592
+ },
593
+ ],
594
+ pageSize: 100,
595
+ pageNumber: 0,
596
+ },
597
+ });
598
+ ```
599
+
600
+ ---
601
+
602
+ ## Fluent Query Builder
603
+
604
+ For a cleaner, more readable API, use the fluent query builder:
605
+
606
+ ### Basic Usage
607
+
608
+ ```typescript
609
+ const results = await odin.orders
610
+ .query()
611
+ .where('Status', 'eq', 'Active')
612
+ .limit(100)
613
+ .execute();
614
+
615
+ console.log(results.records); // OrderRecord[]
616
+ console.log(results.totalRecords); // number
617
+ console.log(results.hasMore); // boolean
618
+ ```
619
+
620
+ ### Chaining Filters
621
+
622
+ All filters are AND'd together:
623
+
624
+ ```typescript
625
+ const results = await odin.orders
626
+ .query()
627
+ .where('Status', 'in', ['Active', 'Pending'])
628
+ .where('ContractType', 'eq', 'Residential')
629
+ .where('ActiveDate', 'gte', '2025-01-01')
630
+ .whereNotIn('CancellationReason', ['Duplicate', 'Test'])
631
+ .select('id', 'title', 'properties.*', 'stage')
632
+ .sortBy('createdAt', 'desc')
633
+ .limit(100)
634
+ .execute();
635
+ ```
636
+
637
+ ### Available Filter Methods
638
+
639
+ ```typescript
640
+ // Equality
641
+ .where('Status', 'eq', 'Active')
642
+ .whereEq('Status', 'Active') // Shorthand
643
+
644
+ // In / Not In
645
+ .where('Status', 'in', ['Active', 'Pending'])
646
+ .whereIn('Status', ['Active', 'Pending']) // Shorthand
647
+ .whereNotIn('Status', ['Cancelled', 'Draft'])
648
+
649
+ // Comparison
650
+ .where('Amount', 'gte', 100)
651
+ .whereGte('Amount', 100) // Shorthand
652
+ .whereLte('Amount', 1000)
653
+ .whereGt('Amount', 0)
654
+ .whereLt('Amount', 10000)
655
+
656
+ // Date Range
657
+ .whereBetween('CreatedAt', '2025-01-01', '2025-01-31')
658
+
659
+ // Null Checks
660
+ .whereNull('CancelledDate')
661
+ .whereNotNull('ActiveDate')
662
+
663
+ // Text Search
664
+ .whereAnyTerm('Description', 'urgent priority') // OR match
665
+ .whereAllTerms('Description', 'urgent priority') // AND match
666
+ .wherePhrase('Title', 'Service Order') // Exact phrase
667
+
668
+ // Linked Entity
669
+ .whereLinked('AccountNumber', 'eq', 'ACC-123', 'CrmModule:Account', 'parent')
670
+ ```
671
+
672
+ ### Projection & Sorting
673
+
674
+ ```typescript
675
+ const results = await odin.orders
676
+ .query()
677
+ .where('Status', 'eq', 'Active')
678
+ .select('id', 'title', 'type', 'properties.*', 'stage', 'links.*')
679
+ .sortBy('createdAt', 'desc')
680
+ .sortBy('properties.Priority', 'asc') // Secondary sort
681
+ .execute();
682
+ ```
683
+
684
+ ### Pagination
685
+
686
+ ```typescript
687
+ // Limit and page
688
+ const page1 = await odin.orders.query()
689
+ .where('Status', 'eq', 'Active')
690
+ .limit(100)
691
+ .page(0)
692
+ .execute();
693
+
694
+ const page2 = await odin.orders.query()
695
+ .where('Status', 'eq', 'Active')
696
+ .limit(100)
697
+ .page(1)
698
+ .execute();
699
+
700
+ // Using offset
701
+ const results = await odin.orders.query()
702
+ .limit(100)
703
+ .offset(200) // Skip first 200, returns 200-299
704
+ .execute();
705
+ ```
706
+
707
+ ### Convenience Methods
708
+
709
+ ```typescript
710
+ // Get just records (no metadata)
711
+ const records = await odin.orders
712
+ .query()
713
+ .where('Status', 'eq', 'Active')
714
+ .getMany();
715
+
716
+ // Get single record
717
+ const order = await odin.orders
718
+ .query()
719
+ .where('OrderNumber', 'eq', 'ORD-12345')
720
+ .getOne(); // Returns OrderRecord | null
721
+
722
+ // Get single record or throw
723
+ const order = await odin.orders
724
+ .query()
725
+ .where('OrderNumber', 'eq', 'ORD-12345')
726
+ .getOneOrFail(); // Throws if not found
727
+
728
+ // Count matching records
729
+ const count = await odin.orders
730
+ .query()
731
+ .where('Status', 'eq', 'Active')
732
+ .count();
733
+
734
+ // Check if any match
735
+ const hasActive = await odin.orders
736
+ .query()
737
+ .where('Status', 'eq', 'Active')
738
+ .exists();
739
+ ```
740
+
741
+ ### Fetch All with Auto-Pagination
742
+
743
+ ```typescript
744
+ // WARNING: Can return up to ~1M records
745
+ const allOrders = await odin.orders
746
+ .query()
747
+ .where('Status', 'in', ['Active', 'Pending'])
748
+ .where('UpdatedAt', 'gte', '2025-01-01')
749
+ .select('id', 'title', 'properties.*')
750
+ .sortBy('createdAt', 'asc') // Required for consistent pagination
751
+ .limit(1000)
752
+ .executeAll();
753
+
754
+ console.log(allOrders.length); // Could be thousands
755
+ ```
756
+
757
+ ### Memory-Efficient Pagination
758
+
759
+ For processing large datasets without loading all into memory:
760
+
761
+ ```typescript
762
+ for await (const batch of odin.orders
763
+ .query()
764
+ .where('Status', 'eq', 'Active')
765
+ .sortBy('createdAt', 'asc')
766
+ .limit(500)
767
+ .paginate()
768
+ ) {
769
+ // Process batch of 500 records
770
+ for (const order of batch) {
771
+ await processOrder(order);
772
+ }
773
+ }
774
+ ```
775
+
776
+ ### Include Deleted/Archived
777
+
778
+ ```typescript
779
+ const results = await odin.orders
780
+ .query()
781
+ .where('Status', 'eq', 'Cancelled')
782
+ .includeDeleted()
783
+ .includeArchived()
784
+ .execute();
785
+ ```
786
+
787
+ ### Clone & Reuse Queries
788
+
789
+ ```typescript
790
+ const baseQuery = odin.orders
791
+ .query()
792
+ .where('ContractType', 'eq', 'Residential')
793
+ .select('id', 'title', 'properties.*')
794
+ .sortBy('createdAt', 'desc');
795
+
796
+ // Clone and add more filters
797
+ const activeOrders = await baseQuery
798
+ .clone()
799
+ .where('Status', 'eq', 'Active')
800
+ .execute();
801
+
802
+ const pendingOrders = await baseQuery
803
+ .clone()
804
+ .where('Status', 'eq', 'Pending')
805
+ .execute();
806
+ ```
807
+
808
+ ### Build Query Without Executing
809
+
810
+ ```typescript
811
+ // Get the raw OdinQuery object
812
+ const query = odin.orders
813
+ .query()
814
+ .where('Status', 'eq', 'Active')
815
+ .limit(100)
816
+ .build();
817
+
818
+ console.log(query);
819
+ // {
820
+ // entity: 'infer',
821
+ // type: 'and',
822
+ // value: [{ columnName: 'Status', operator: 'eq', value: 'Active' }],
823
+ // pageSize: 100,
824
+ // pageNumber: 0
825
+ // }
826
+ ```
827
+
828
+ ### Debug with Query Plan
829
+
830
+ See the exact Elasticsearch query that will be executed (useful for debugging):
831
+
832
+ ```typescript
833
+ const plan = await odin.orders
834
+ .query()
835
+ .where('Status', 'in', ['Active', 'Pending'])
836
+ .where('UpdatedAt', 'gte', '2025-01-01')
837
+ .select('id', 'title', 'properties.*')
838
+ .sortBy('createdAt', 'asc')
839
+ .limit(100)
840
+ .returnQueryPlan();
841
+
842
+ console.log(plan);
843
+ // Shows the Elasticsearch query structure
844
+ ```
845
+
846
+ This is equivalent to:
847
+
848
+ ```typescript
849
+ const res = await odin.orders.search({
850
+ returnQueryPlan: true,
851
+ query: {
852
+ entity: 'infer',
853
+ type: 'and',
854
+ value: [
855
+ { columnName: 'Status', operator: 'in', value: ['Active', 'Pending'] },
856
+ { columnName: 'UpdatedAt', operator: 'gte', value: '2025-01-01' },
857
+ ],
858
+ returnProperties: ['id', 'title', 'properties.*'],
859
+ sort: { createdAt: { order: 'asc' } },
860
+ pageSize: 100,
861
+ pageNumber: 0,
862
+ },
863
+ });
864
+ ```
865
+
293
866
  ---
294
867
 
295
868
  ## Linking Records
@@ -333,7 +906,7 @@ await order.unlink(contactId); // Can pass ID string directly
333
906
  #### Before (Legacy)
334
907
 
335
908
  ```typescript
336
- import { OrderApi } from '@d19n/youfibre-odin-sdk/api-sdk-v2';
909
+ import { OrderApi } from '@youfibre/odin-sdk/api-sdk-v2';
337
910
 
338
911
  const api = new OrderApi({
339
912
  host: 'api.youfibre.com',
@@ -357,7 +930,7 @@ await api.applyAction({
357
930
  #### After (New SDK)
358
931
 
359
932
  ```typescript
360
- import { OdinApiClient } from '@d19n/youfibre-odin-sdk';
933
+ import { OdinApiClient } from '@youfibre/odin-sdk';
361
934
 
362
935
  const odin = new OdinApiClient({
363
936
  host: 'api.youfibre.com',
@@ -377,7 +950,7 @@ await order.activateOrder({ ActiveDate: '2025-01-15' });
377
950
  #### Before (Legacy)
378
951
 
379
952
  ```typescript
380
- import { OrderDb } from '@d19n/youfibre-odin-sdk/db-sdk-v2';
953
+ import { OrderDb } from '@youfibre/odin-sdk/db-sdk-v2';
381
954
 
382
955
  const db = new OrderDb(principal, dbService);
383
956
 
@@ -397,7 +970,7 @@ await db.applyAction({
397
970
  #### After (New SDK)
398
971
 
399
972
  ```typescript
400
- import { OdinDbClient } from '@d19n/youfibre-odin-sdk';
973
+ import { OdinDbClient } from '@youfibre/odin-sdk';
401
974
 
402
975
  const odin = new OdinDbClient(principal, dbService);
403
976
 
@@ -424,10 +997,10 @@ await order.activateOrder({ ActiveDate: '2025-01-15' });
424
997
  1. **Update imports:**
425
998
  ```typescript
426
999
  // Before
427
- import { OrderApi, ContactApi } from '@d19n/youfibre-odin-sdk/api-sdk-v2';
1000
+ import { OrderApi, ContactApi } from '@youfibre/odin-sdk/api-sdk-v2';
428
1001
 
429
1002
  // After
430
- import { OdinApiClient } from '@d19n/youfibre-odin-sdk';
1003
+ import { OdinApiClient } from '@youfibre/odin-sdk';
431
1004
  ```
432
1005
 
433
1006
  2. **Replace class instantiation:**
@@ -479,7 +1052,7 @@ await order.activateOrder({ ActiveDate: '2025-01-15' });
479
1052
  ## Architecture
480
1053
 
481
1054
  ```
482
- @d19n/youfibre-odin-sdk/
1055
+ @youfibre/odin-sdk/
483
1056
  ├── OdinApiClient.ts # Unified API client
484
1057
  ├── OdinDbClient.ts # Unified DB client
485
1058
  ├── EntityRegistry.ts # Dynamic entity access
@@ -538,7 +1111,7 @@ OdinApiClient / OdinDbClient
538
1111
  ### Dynamic Entity Access
539
1112
 
540
1113
  ```typescript
541
- import { EntityRegistry, getAccessor } from '@d19n/youfibre-odin-sdk';
1114
+ import { EntityRegistry, getAccessor } from '@youfibre/odin-sdk';
542
1115
 
543
1116
  // Get accessor dynamically by entity name
544
1117
  const accessor = getAccessor('Order', provider);
@@ -567,14 +1140,14 @@ const principal = await odin.getPrincipal();
567
1140
 
568
1141
  ```typescript
569
1142
  // Import property types directly
570
- import { OrderProperties } from '@d19n/youfibre-odin-sdk/entities-v2/Order';
571
- import { ContactProperties } from '@d19n/youfibre-odin-sdk/entities-v2/Contact';
1143
+ import { OrderProperties } from '@youfibre/odin-sdk/entities-v2/Order';
1144
+ import { ContactProperties } from '@youfibre/odin-sdk/entities-v2/Contact';
572
1145
 
573
1146
  // Import action property types
574
- import { ActivateOrderProperties } from '@d19n/youfibre-odin-sdk/actions-v2/ActivateOrderDto';
1147
+ import { ActivateOrderProperties } from '@youfibre/odin-sdk/actions-v2/ActivateOrderDto';
575
1148
 
576
1149
  // Import record types
577
- import { OrderRecord } from '@d19n/youfibre-odin-sdk/records-v2/OrderRecord';
1150
+ import { OrderRecord } from '@youfibre/odin-sdk/records-v2/OrderRecord';
578
1151
  ```
579
1152
 
580
1153
  ---
@@ -587,10 +1160,10 @@ Ensure you're importing from the correct paths:
587
1160
 
588
1161
  ```typescript
589
1162
  // ✅ Correct
590
- import { OdinApiClient } from '@d19n/youfibre-odin-sdk';
1163
+ import { OdinApiClient } from '@youfibre/odin-sdk';
591
1164
 
592
1165
  // ❌ Wrong
593
- import { OdinApiClient } from '@d19n/youfibre-odin-sdk/dist/src/OdinApiClient';
1166
+ import { OdinApiClient } from '@youfibre/odin-sdk/dist/src/OdinApiClient';
594
1167
  ```
595
1168
 
596
1169
  ### Type Errors on Properties
@@ -598,7 +1171,7 @@ import { OdinApiClient } from '@d19n/youfibre-odin-sdk/dist/src/OdinApiClient';
598
1171
  If TypeScript doesn't recognize properties, ensure your SDK is up to date:
599
1172
 
600
1173
  ```bash
601
- npm update @d19n/youfibre-odin-sdk
1174
+ npm update @youfibre/odin-sdk
602
1175
  ```
603
1176
 
604
1177
  ### Action Not Found