@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.
- package/README.md +602 -29
- package/dist/EntityRegistry.d.ts +138 -1303
- package/dist/EntityRegistry.js +141 -155
- package/dist/accessors-v2/AccountAccessor.d.ts +18 -0
- package/dist/accessors-v2/AccountAccessor.js +22 -0
- package/dist/accessors-v2/ActivityAccessor.d.ts +18 -0
- package/dist/accessors-v2/ActivityAccessor.js +22 -0
- package/dist/accessors-v2/ActivityLogAccessor.d.ts +18 -0
- package/dist/accessors-v2/ActivityLogAccessor.js +22 -0
- package/dist/accessors-v2/AddressAccessor.d.ts +18 -0
- package/dist/accessors-v2/AddressAccessor.js +22 -0
- package/dist/accessors-v2/BillingAdjustmentAccessor.d.ts +18 -0
- package/dist/accessors-v2/BillingAdjustmentAccessor.js +22 -0
- package/dist/accessors-v2/BillingRequestAccessor.d.ts +18 -0
- package/dist/accessors-v2/BillingRequestAccessor.js +22 -0
- package/dist/accessors-v2/CallLegAccessor.d.ts +18 -0
- package/dist/accessors-v2/CallLegAccessor.js +22 -0
- package/dist/accessors-v2/CaseAccessor.d.ts +18 -0
- package/dist/accessors-v2/CaseAccessor.js +22 -0
- package/dist/accessors-v2/ChangeReasonAccessor.d.ts +18 -0
- package/dist/accessors-v2/ChangeReasonAccessor.js +22 -0
- package/dist/accessors-v2/ChurnRequestAccessor.d.ts +18 -0
- package/dist/accessors-v2/ChurnRequestAccessor.js +22 -0
- package/dist/accessors-v2/ConfigAccessor.d.ts +18 -0
- package/dist/accessors-v2/ConfigAccessor.js +22 -0
- package/dist/accessors-v2/ContactAccessor.d.ts +18 -0
- package/dist/accessors-v2/ContactAccessor.js +22 -0
- package/dist/accessors-v2/ContractBuyOutAccessor.d.ts +18 -0
- package/dist/accessors-v2/ContractBuyOutAccessor.js +22 -0
- package/dist/accessors-v2/ConversationAccessor.d.ts +18 -0
- package/dist/accessors-v2/ConversationAccessor.js +22 -0
- package/dist/accessors-v2/CreditNoteAccessor.d.ts +18 -0
- package/dist/accessors-v2/CreditNoteAccessor.js +22 -0
- package/dist/accessors-v2/CrmDatasetAccessor.d.ts +18 -0
- package/dist/accessors-v2/CrmDatasetAccessor.js +22 -0
- package/dist/accessors-v2/CustomerDeviceAtaAccessor.d.ts +18 -0
- package/dist/accessors-v2/CustomerDeviceAtaAccessor.js +22 -0
- package/dist/accessors-v2/CustomerDeviceOntAccessor.d.ts +18 -0
- package/dist/accessors-v2/CustomerDeviceOntAccessor.js +22 -0
- package/dist/accessors-v2/CustomerDeviceRouterAccessor.d.ts +18 -0
- package/dist/accessors-v2/CustomerDeviceRouterAccessor.js +22 -0
- package/dist/accessors-v2/CustomerPhonePortingAccessor.d.ts +18 -0
- package/dist/accessors-v2/CustomerPhonePortingAccessor.js +22 -0
- package/dist/accessors-v2/DiscountAccessor.d.ts +18 -0
- package/dist/accessors-v2/DiscountAccessor.js +22 -0
- package/dist/accessors-v2/EmailAccessor.d.ts +18 -0
- package/dist/accessors-v2/EmailAccessor.js +22 -0
- package/dist/accessors-v2/EmailTemplateAccessor.d.ts +18 -0
- package/dist/accessors-v2/EmailTemplateAccessor.js +22 -0
- package/dist/accessors-v2/FieldServiceDispatchedProductAccessor.d.ts +18 -0
- package/dist/accessors-v2/FieldServiceDispatchedProductAccessor.js +22 -0
- package/dist/accessors-v2/FieldServiceProductAccessor.d.ts +18 -0
- package/dist/accessors-v2/FieldServiceProductAccessor.js +22 -0
- package/dist/accessors-v2/ImpersonationTrackerAccessor.d.ts +18 -0
- package/dist/accessors-v2/ImpersonationTrackerAccessor.js +22 -0
- package/dist/accessors-v2/InvoiceAccessor.d.ts +18 -0
- package/dist/accessors-v2/InvoiceAccessor.js +22 -0
- package/dist/accessors-v2/KnowledgeArticleAccessor.d.ts +18 -0
- package/dist/accessors-v2/KnowledgeArticleAccessor.js +22 -0
- package/dist/accessors-v2/LeadAccessor.d.ts +18 -0
- package/dist/accessors-v2/LeadAccessor.js +22 -0
- package/dist/accessors-v2/NetworkDeviceAccessor.d.ts +18 -0
- package/dist/accessors-v2/NetworkDeviceAccessor.js +22 -0
- package/dist/accessors-v2/NoteAccessor.d.ts +18 -0
- package/dist/accessors-v2/NoteAccessor.js +22 -0
- package/dist/accessors-v2/OfferAccessor.d.ts +18 -0
- package/dist/accessors-v2/OfferAccessor.js +22 -0
- package/dist/accessors-v2/OhExternalAuditAccessor.d.ts +18 -0
- package/dist/accessors-v2/OhExternalAuditAccessor.js +22 -0
- package/dist/accessors-v2/OneTouchSwitchAccessor.d.ts +18 -0
- package/dist/accessors-v2/OneTouchSwitchAccessor.js +22 -0
- package/dist/accessors-v2/OntReplacementApprovalAccessor.d.ts +18 -0
- package/dist/accessors-v2/OntReplacementApprovalAccessor.js +22 -0
- package/dist/accessors-v2/OrderAccessor.d.ts +18 -0
- package/dist/accessors-v2/OrderAccessor.js +22 -0
- package/dist/accessors-v2/OrderCheckAccessor.d.ts +18 -0
- package/dist/accessors-v2/OrderCheckAccessor.js +22 -0
- package/dist/accessors-v2/OrderItemAccessor.d.ts +18 -0
- package/dist/accessors-v2/OrderItemAccessor.js +22 -0
- package/dist/accessors-v2/OutageAccessor.d.ts +18 -0
- package/dist/accessors-v2/OutageAccessor.js +22 -0
- package/dist/accessors-v2/OverlayRealA55Accessor.d.ts +18 -0
- package/dist/accessors-v2/OverlayRealA55Accessor.js +22 -0
- package/dist/accessors-v2/PICRequestAccessor.d.ts +18 -0
- package/dist/accessors-v2/PICRequestAccessor.js +22 -0
- package/dist/accessors-v2/PaymentAccessor.d.ts +18 -0
- package/dist/accessors-v2/PaymentAccessor.js +22 -0
- package/dist/accessors-v2/PaymentMethodAccessor.d.ts +18 -0
- package/dist/accessors-v2/PaymentMethodAccessor.js +22 -0
- package/dist/accessors-v2/PaymentMethodRefundAccessor.d.ts +18 -0
- package/dist/accessors-v2/PaymentMethodRefundAccessor.js +22 -0
- package/dist/accessors-v2/PermissionToFailAccessor.d.ts +18 -0
- package/dist/accessors-v2/PermissionToFailAccessor.js +22 -0
- package/dist/accessors-v2/PriceBookAccessor.d.ts +18 -0
- package/dist/accessors-v2/PriceBookAccessor.js +22 -0
- package/dist/accessors-v2/ProductAccessor.d.ts +18 -0
- package/dist/accessors-v2/ProductAccessor.js +22 -0
- package/dist/accessors-v2/PushNotificationAccessor.d.ts +18 -0
- package/dist/accessors-v2/PushNotificationAccessor.js +22 -0
- package/dist/accessors-v2/RemediationOutcomeFormAccessor.d.ts +18 -0
- package/dist/accessors-v2/RemediationOutcomeFormAccessor.js +22 -0
- package/dist/accessors-v2/ReturnsAccessor.d.ts +18 -0
- package/dist/accessors-v2/ReturnsAccessor.js +22 -0
- package/dist/accessors-v2/ScheduleSlotAccessor.d.ts +18 -0
- package/dist/accessors-v2/ScheduleSlotAccessor.js +22 -0
- package/dist/accessors-v2/ServiceAccessor.d.ts +18 -0
- package/dist/accessors-v2/ServiceAccessor.js +22 -0
- package/dist/accessors-v2/ServiceAppointmentConfigAccessor.d.ts +18 -0
- package/dist/accessors-v2/ServiceAppointmentConfigAccessor.js +22 -0
- package/dist/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.d.ts +18 -0
- package/dist/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.js +22 -0
- package/dist/accessors-v2/TeamAccessor.d.ts +18 -0
- package/dist/accessors-v2/TeamAccessor.js +22 -0
- package/dist/accessors-v2/TimeSlotAccessor.d.ts +18 -0
- package/dist/accessors-v2/TimeSlotAccessor.js +22 -0
- package/dist/accessors-v2/TransactionAccessor.d.ts +18 -0
- package/dist/accessors-v2/TransactionAccessor.js +22 -0
- package/dist/accessors-v2/UgRetroAuditAccessor.d.ts +18 -0
- package/dist/accessors-v2/UgRetroAuditAccessor.js +22 -0
- package/dist/accessors-v2/UserAccessor.d.ts +18 -0
- package/dist/accessors-v2/UserAccessor.js +22 -0
- package/dist/accessors-v2/VisitAccessor.d.ts +18 -0
- package/dist/accessors-v2/VisitAccessor.js +22 -0
- package/dist/accessors-v2/VoiceConfigurationAccessor.d.ts +18 -0
- package/dist/accessors-v2/VoiceConfigurationAccessor.js +22 -0
- package/dist/accessors-v2/WayleaveAuditAccessor.d.ts +18 -0
- package/dist/accessors-v2/WayleaveAuditAccessor.js +22 -0
- package/dist/accessors-v2/WorkOrderAccessor.d.ts +18 -0
- package/dist/accessors-v2/WorkOrderAccessor.js +22 -0
- package/dist/accessors-v2/WorkOrderStatusUpdateAccessor.d.ts +18 -0
- package/dist/accessors-v2/WorkOrderStatusUpdateAccessor.js +22 -0
- package/dist/accessors-v2/YfFieldServiceVisitAccessor.d.ts +18 -0
- package/dist/accessors-v2/YfFieldServiceVisitAccessor.js +22 -0
- package/dist/api-sdk-v2/WorkOrderApi.d.ts +24 -24
- package/dist/api-sdk-v2/WorkOrderApi.js +68 -68
- package/dist/db-accessors-v2/AccountDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/AccountDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ActivityDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ActivityDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ActivityLogDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ActivityLogDbAccessor.js +22 -0
- package/dist/db-accessors-v2/AddressDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/AddressDbAccessor.js +22 -0
- package/dist/db-accessors-v2/BillingAdjustmentDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/BillingAdjustmentDbAccessor.js +22 -0
- package/dist/db-accessors-v2/BillingRequestDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/BillingRequestDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CallLegDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CallLegDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CaseDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CaseDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ChangeReasonDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ChangeReasonDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ChurnRequestDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ChurnRequestDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ConfigDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ConfigDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ContactDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ContactDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ContractBuyOutDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ContractBuyOutDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ConversationDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ConversationDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CreditNoteDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CreditNoteDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CrmDatasetDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CrmDatasetDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CustomerDeviceAtaDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CustomerDeviceAtaDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CustomerDeviceOntDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CustomerDeviceOntDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CustomerDeviceRouterDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CustomerDeviceRouterDbAccessor.js +22 -0
- package/dist/db-accessors-v2/CustomerPhonePortingDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/CustomerPhonePortingDbAccessor.js +22 -0
- package/dist/db-accessors-v2/DiscountDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/DiscountDbAccessor.js +22 -0
- package/dist/db-accessors-v2/EmailDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/EmailDbAccessor.js +22 -0
- package/dist/db-accessors-v2/EmailTemplateDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/EmailTemplateDbAccessor.js +22 -0
- package/dist/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.js +22 -0
- package/dist/db-accessors-v2/FieldServiceProductDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/FieldServiceProductDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ImpersonationTrackerDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ImpersonationTrackerDbAccessor.js +22 -0
- package/dist/db-accessors-v2/InvoiceDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/InvoiceDbAccessor.js +22 -0
- package/dist/db-accessors-v2/KnowledgeArticleDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/KnowledgeArticleDbAccessor.js +22 -0
- package/dist/db-accessors-v2/LeadDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/LeadDbAccessor.js +22 -0
- package/dist/db-accessors-v2/NetworkDeviceDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/NetworkDeviceDbAccessor.js +22 -0
- package/dist/db-accessors-v2/NoteDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/NoteDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OfferDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OfferDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OhExternalAuditDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OhExternalAuditDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OneTouchSwitchDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OneTouchSwitchDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OntReplacementApprovalDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OntReplacementApprovalDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OrderCheckDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OrderCheckDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OrderDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OrderDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OrderItemDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OrderItemDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OutageDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OutageDbAccessor.js +22 -0
- package/dist/db-accessors-v2/OverlayRealA55DbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/OverlayRealA55DbAccessor.js +22 -0
- package/dist/db-accessors-v2/PICRequestDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PICRequestDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PaymentDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PaymentDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PaymentMethodDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PaymentMethodDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PaymentMethodRefundDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PaymentMethodRefundDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PermissionToFailDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PermissionToFailDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PriceBookDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PriceBookDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ProductDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ProductDbAccessor.js +22 -0
- package/dist/db-accessors-v2/PushNotificationDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/PushNotificationDbAccessor.js +22 -0
- package/dist/db-accessors-v2/RemediationOutcomeFormDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/RemediationOutcomeFormDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ReturnsDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ReturnsDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ScheduleSlotDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ScheduleSlotDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ServiceAppointmentConfigDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ServiceAppointmentConfigDbAccessor.js +22 -0
- package/dist/db-accessors-v2/ServiceDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/ServiceDbAccessor.js +22 -0
- package/dist/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.js +22 -0
- package/dist/db-accessors-v2/TeamDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/TeamDbAccessor.js +22 -0
- package/dist/db-accessors-v2/TimeSlotDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/TimeSlotDbAccessor.js +22 -0
- package/dist/db-accessors-v2/TransactionDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/TransactionDbAccessor.js +22 -0
- package/dist/db-accessors-v2/UgRetroAuditDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/UgRetroAuditDbAccessor.js +22 -0
- package/dist/db-accessors-v2/UserDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/UserDbAccessor.js +22 -0
- package/dist/db-accessors-v2/VisitDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/VisitDbAccessor.js +22 -0
- package/dist/db-accessors-v2/VoiceConfigurationDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/VoiceConfigurationDbAccessor.js +22 -0
- package/dist/db-accessors-v2/WayleaveAuditDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/WayleaveAuditDbAccessor.js +22 -0
- package/dist/db-accessors-v2/WorkOrderDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/WorkOrderDbAccessor.js +22 -0
- package/dist/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.js +22 -0
- package/dist/db-accessors-v2/YfFieldServiceVisitDbAccessor.d.ts +18 -0
- package/dist/db-accessors-v2/YfFieldServiceVisitDbAccessor.js +22 -0
- package/dist/db-sdk-v2/WorkOrderDb.d.ts +24 -24
- package/dist/db-sdk-v2/WorkOrderDb.js +68 -68
- package/dist/entities-v2/RemediationRequiredReason.d.ts +102 -102
- package/dist/entities-v2/RemediationRequiredReason.js +100 -100
- package/dist/entities-v2/WorkOrder.d.ts +1 -3
- package/dist/entities-v2/WorkOrder.js +2 -4
- package/dist/runner.js +43 -40
- package/package.json +2 -2
- package/src/EntityRegistry.ts +145 -156
- package/src/accessors-v2/AccountAccessor.ts +25 -1
- package/src/accessors-v2/ActivityAccessor.ts +25 -1
- package/src/accessors-v2/ActivityLogAccessor.ts +25 -1
- package/src/accessors-v2/AddressAccessor.ts +25 -1
- package/src/accessors-v2/BillingAdjustmentAccessor.ts +25 -1
- package/src/accessors-v2/BillingRequestAccessor.ts +25 -1
- package/src/accessors-v2/CallLegAccessor.ts +25 -1
- package/src/accessors-v2/CaseAccessor.ts +25 -1
- package/src/accessors-v2/ChangeReasonAccessor.ts +25 -1
- package/src/accessors-v2/ChurnRequestAccessor.ts +25 -1
- package/src/accessors-v2/ConfigAccessor.ts +25 -1
- package/src/accessors-v2/ContactAccessor.ts +25 -1
- package/src/accessors-v2/ContractBuyOutAccessor.ts +25 -1
- package/src/accessors-v2/ConversationAccessor.ts +25 -1
- package/src/accessors-v2/CreditNoteAccessor.ts +25 -1
- package/src/accessors-v2/CrmDatasetAccessor.ts +25 -1
- package/src/accessors-v2/CustomerDeviceAtaAccessor.ts +25 -1
- package/src/accessors-v2/CustomerDeviceOntAccessor.ts +25 -1
- package/src/accessors-v2/CustomerDeviceRouterAccessor.ts +25 -1
- package/src/accessors-v2/CustomerPhonePortingAccessor.ts +25 -1
- package/src/accessors-v2/DiscountAccessor.ts +25 -1
- package/src/accessors-v2/EmailAccessor.ts +25 -1
- package/src/accessors-v2/EmailTemplateAccessor.ts +25 -1
- package/src/accessors-v2/FieldServiceDispatchedProductAccessor.ts +25 -1
- package/src/accessors-v2/FieldServiceProductAccessor.ts +25 -1
- package/src/accessors-v2/ImpersonationTrackerAccessor.ts +25 -1
- package/src/accessors-v2/InvoiceAccessor.ts +25 -1
- package/src/accessors-v2/KnowledgeArticleAccessor.ts +25 -1
- package/src/accessors-v2/LeadAccessor.ts +25 -1
- package/src/accessors-v2/NetworkDeviceAccessor.ts +25 -1
- package/src/accessors-v2/NoteAccessor.ts +25 -1
- package/src/accessors-v2/OfferAccessor.ts +25 -1
- package/src/accessors-v2/OhExternalAuditAccessor.ts +25 -1
- package/src/accessors-v2/OneTouchSwitchAccessor.ts +25 -1
- package/src/accessors-v2/OntReplacementApprovalAccessor.ts +25 -1
- package/src/accessors-v2/OrderAccessor.ts +25 -1
- package/src/accessors-v2/OrderCheckAccessor.ts +25 -1
- package/src/accessors-v2/OrderItemAccessor.ts +25 -1
- package/src/accessors-v2/OutageAccessor.ts +25 -1
- package/src/accessors-v2/OverlayRealA55Accessor.ts +25 -1
- package/src/accessors-v2/PICRequestAccessor.ts +25 -1
- package/src/accessors-v2/PaymentAccessor.ts +25 -1
- package/src/accessors-v2/PaymentMethodAccessor.ts +25 -1
- package/src/accessors-v2/PaymentMethodRefundAccessor.ts +25 -1
- package/src/accessors-v2/PermissionToFailAccessor.ts +25 -1
- package/src/accessors-v2/PriceBookAccessor.ts +25 -1
- package/src/accessors-v2/ProductAccessor.ts +25 -1
- package/src/accessors-v2/PushNotificationAccessor.ts +25 -1
- package/src/accessors-v2/RemediationOutcomeFormAccessor.ts +25 -1
- package/src/accessors-v2/ReturnsAccessor.ts +25 -1
- package/src/accessors-v2/ScheduleSlotAccessor.ts +25 -1
- package/src/accessors-v2/ServiceAccessor.ts +25 -1
- package/src/accessors-v2/ServiceAppointmentConfigAccessor.ts +25 -1
- package/src/accessors-v2/SiteSpecificRiskAssessmentOutcomeFormAccessor.ts +25 -1
- package/src/accessors-v2/TeamAccessor.ts +25 -1
- package/src/accessors-v2/TimeSlotAccessor.ts +25 -1
- package/src/accessors-v2/TransactionAccessor.ts +25 -1
- package/src/accessors-v2/UgRetroAuditAccessor.ts +25 -1
- package/src/accessors-v2/UserAccessor.ts +25 -1
- package/src/accessors-v2/VisitAccessor.ts +25 -1
- package/src/accessors-v2/VoiceConfigurationAccessor.ts +25 -1
- package/src/accessors-v2/WayleaveAuditAccessor.ts +25 -1
- package/src/accessors-v2/WorkOrderAccessor.ts +25 -1
- package/src/accessors-v2/WorkOrderStatusUpdateAccessor.ts +25 -1
- package/src/accessors-v2/YfFieldServiceVisitAccessor.ts +25 -1
- package/src/api-sdk-v2/WorkOrderApi.ts +141 -141
- package/src/db-accessors-v2/AccountDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ActivityDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ActivityLogDbAccessor.ts +24 -0
- package/src/db-accessors-v2/AddressDbAccessor.ts +24 -0
- package/src/db-accessors-v2/BillingAdjustmentDbAccessor.ts +24 -0
- package/src/db-accessors-v2/BillingRequestDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CallLegDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CaseDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ChangeReasonDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ChurnRequestDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ConfigDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ContactDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ContractBuyOutDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ConversationDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CreditNoteDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CrmDatasetDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CustomerDeviceAtaDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CustomerDeviceOntDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CustomerDeviceRouterDbAccessor.ts +24 -0
- package/src/db-accessors-v2/CustomerPhonePortingDbAccessor.ts +24 -0
- package/src/db-accessors-v2/DiscountDbAccessor.ts +24 -0
- package/src/db-accessors-v2/EmailDbAccessor.ts +24 -0
- package/src/db-accessors-v2/EmailTemplateDbAccessor.ts +24 -0
- package/src/db-accessors-v2/FieldServiceDispatchedProductDbAccessor.ts +24 -0
- package/src/db-accessors-v2/FieldServiceProductDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ImpersonationTrackerDbAccessor.ts +24 -0
- package/src/db-accessors-v2/InvoiceDbAccessor.ts +24 -0
- package/src/db-accessors-v2/KnowledgeArticleDbAccessor.ts +24 -0
- package/src/db-accessors-v2/LeadDbAccessor.ts +24 -0
- package/src/db-accessors-v2/NetworkDeviceDbAccessor.ts +24 -0
- package/src/db-accessors-v2/NoteDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OfferDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OhExternalAuditDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OneTouchSwitchDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OntReplacementApprovalDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OrderCheckDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OrderDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OrderItemDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OutageDbAccessor.ts +24 -0
- package/src/db-accessors-v2/OverlayRealA55DbAccessor.ts +24 -0
- package/src/db-accessors-v2/PICRequestDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PaymentDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PaymentMethodDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PaymentMethodRefundDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PermissionToFailDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PriceBookDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ProductDbAccessor.ts +24 -0
- package/src/db-accessors-v2/PushNotificationDbAccessor.ts +24 -0
- package/src/db-accessors-v2/RemediationOutcomeFormDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ReturnsDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ScheduleSlotDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ServiceAppointmentConfigDbAccessor.ts +24 -0
- package/src/db-accessors-v2/ServiceDbAccessor.ts +24 -0
- package/src/db-accessors-v2/SiteSpecificRiskAssessmentOutcomeFormDbAccessor.ts +24 -0
- package/src/db-accessors-v2/TeamDbAccessor.ts +24 -0
- package/src/db-accessors-v2/TimeSlotDbAccessor.ts +24 -0
- package/src/db-accessors-v2/TransactionDbAccessor.ts +24 -0
- package/src/db-accessors-v2/UgRetroAuditDbAccessor.ts +24 -0
- package/src/db-accessors-v2/UserDbAccessor.ts +24 -0
- package/src/db-accessors-v2/VisitDbAccessor.ts +24 -0
- package/src/db-accessors-v2/VoiceConfigurationDbAccessor.ts +24 -0
- package/src/db-accessors-v2/WayleaveAuditDbAccessor.ts +24 -0
- package/src/db-accessors-v2/WorkOrderDbAccessor.ts +24 -0
- package/src/db-accessors-v2/WorkOrderStatusUpdateDbAccessor.ts +24 -0
- package/src/db-accessors-v2/YfFieldServiceVisitDbAccessor.ts +24 -0
- package/src/db-sdk-v2/WorkOrderDb.ts +151 -151
- package/src/entities-v2/RemediationRequiredReason.ts +105 -105
- package/src/entities-v2/WorkOrder.ts +1 -3
- 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 @
|
|
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 '@
|
|
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 '@
|
|
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 '@
|
|
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
|
-
|
|
238
|
-
|
|
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
|
-
|
|
253
|
-
|
|
254
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 '@
|
|
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 '@
|
|
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 '@
|
|
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 '@
|
|
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 '@
|
|
1000
|
+
import { OrderApi, ContactApi } from '@youfibre/odin-sdk/api-sdk-v2';
|
|
428
1001
|
|
|
429
1002
|
// After
|
|
430
|
-
import { OdinApiClient } from '@
|
|
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
|
-
@
|
|
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 '@
|
|
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 '@
|
|
571
|
-
import { ContactProperties } from '@
|
|
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 '@
|
|
1147
|
+
import { ActivateOrderProperties } from '@youfibre/odin-sdk/actions-v2/ActivateOrderDto';
|
|
575
1148
|
|
|
576
1149
|
// Import record types
|
|
577
|
-
import { OrderRecord } from '@
|
|
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 '@
|
|
1163
|
+
import { OdinApiClient } from '@youfibre/odin-sdk';
|
|
591
1164
|
|
|
592
1165
|
// ❌ Wrong
|
|
593
|
-
import { OdinApiClient } from '@
|
|
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 @
|
|
1174
|
+
npm update @youfibre/odin-sdk
|
|
602
1175
|
```
|
|
603
1176
|
|
|
604
1177
|
### Action Not Found
|