Skip to content

OrderViewEvent

OrderViewEvent schema

Properties

  • AggregateId (string, format: {FulfillmentSystemId}-{FulfillmentSystemCustomerId}-{ShippingOrderId})Unique ID for shipping order within Integration Broker.
  • CorrelationId (string)Unique ID for SOB-external event trigger.
  • AggregateType (string)Type of event schema.
  • EventActionUser (['string', 'null'])Username of user who triggered event.
  • EventDateTimeUtc (string)UTC based datetime of when event was triggered.
  • EventName (string)Name of triggered event.
  • EventNameValuePairs (['array', 'null'])

    • Items (object)
  • EventPublisherApp (string)Name of source application that published event.

  • EventSchemaVersion (string)Version of event schema being used.
  • EventSource (string)Name of system where event was triggered.
  • OrderView (object)OrderView level details for Cosmos DB Views database.

    • BillingEntityId (['string', 'null'])Billing entity ID.
    • OmsCustomerId (['string', 'null'])OMS customer ID.
    • OmsId (['string', 'null'])OMS ID.
    • OmsOrderId (['string', 'null'])OMS order ID.
    • OrderId (['string', 'null'], required)Unique ID for order within order management system.
    • ReferenceId (['string', 'null'])Reference ID.
    • SourceSystemCustomerId (['string', 'null'])This is an automatically generated field added by middleware. It is considered read-only.
    • SourceSystemId (['integer', 'null'])This is an automatically generated field added by middleware. It is considered read-only.
    • SourceSystemOrderId (['string', 'null'])Source system order ID.
    • AccessGroups (['array', 'null'])Access groups.

      • Items (string)
    • AffiliateIdentifier (['string', 'null'])Affiliate identifier.

    • AffiliateName (['string', 'null'])Affiliate name.
    • BillTos (['array', 'null'], required)Bill to addresses.

      • Items (object)

        • Address1 (['string', 'null'])Address line 1 for address.
        • Address2 (['string', 'null'])Address line 2 for address.
        • Address3 (['string', 'null'])Address line 3 for address.
        • City (['string', 'null'])City name for address.
        • Company (['string', 'null'])Company name for address.
        • Country (['string', 'null'])Country name for address.
        • EmailAddress (['string', 'null'])Contact email address for address.
        • FaxNumber (['string', 'null'])Fax number for address.
        • IsDeleted (['boolean', 'null'])Whether the bill to address is deleted.
        • Key (['string', 'null'])Key for the bill to address.
        • Name (['string', 'null'])Contact name for this address.
        • PhoneNumber (['string', 'null'])Phone number for address.
        • PostalCode (['string', 'null'])Postal code for address.
        • StateProvince (['string', 'null'])State or province name for address.
    • CostCenter (['string', 'null'])Cost center.

    • CreateDateTime (['string', 'null'])Create date time.
    • CreditCardFee (['number', 'null'])Credit card fee.
    • DefaultBillToKey (['string', 'null'])Default bill to key.
    • DefaultOrderedByKey (['string', 'null'])Default ordered by key.
    • DefaultShipToKey (['string', 'null'])Default ship to key.
    • DueDate (['string', 'null'])Due date.
    • LineItems (['array', 'null'], required)Order line items.

      • Items (object)

        • OfferId (['string', 'null'])Unique ID for offer within Integration Broker.
        • ProductManagementSystemCustomerId (['string', 'null'])
        • ProductManagementSystemId (['integer', 'string', 'null'])Identifier for a product management system that can be an integer, string, or null.
        • ReferenceId (['string', 'null'])
        • VariableTemplatePrintId (['string', 'null'])Unique ID for variable template file associated to offer on individual line item.
        • AdditionalProperties (['array', 'null'])Additional properties details for Order LineItems.

          • Items (object)

            • IsDeleted (['boolean', 'null'])Whether the additional property is deleted.
            • Key (['string', 'null'])Key of the additional property.
            • Value (['string', 'null'])Value of the additional property.
        • BillToKey (['string', 'null'])Unique ID for Order.BillTos.Key property associated to individual line item.

        • Comment (['string', 'null'])Manually entered comment for individual line item.
        • CostCenter (['string', 'null'])
        • DueDate (['string', 'null'])Datetime of expected due date for individual line item.
        • LineItemFee (['number', 'null'])Fee applied to individual line item.
        • OfferDescription (['string', 'null'])Description for offer within product management system.
        • OfferLineNumber (['string', 'null'])Unique ID for individual line item.
        • OfferNumber (['string', 'null'])Name for offer within product management system.
        • OrderedByKey (['string', 'null'])Unique ID for Order.OrderedBy.Key property associated to individual line item.
        • PONumber (['string', 'null'])Purchase order number for individual line item.
        • Price (['number', 'null'])Total offer price of individual line item.
        • Products (['array', 'null'])Order.LineItems level product details.

          • Items (object)

            • FulfillmentSystemCustomerId (['string', 'null'])Fulfillment system customer ID.
            • FulfillmentSystemId (['string', 'null'])Fulfillment system ID.
            • FulfillmentSystemProductId (['string', 'null'])Fulfillment system product ID.
            • ProductId (['string', 'null'])Product ID.
            • AssociatedFileName (['string', 'null'])Associated file name.
            • Color (['string', 'null'])Product color.
            • Comment (['string', 'null'])Comment for the product.
            • Components (['array', 'null'])Product components.

              • Items (object)

                • ProductId (['string', 'null'])Component product ID.
                • AssociatedFileName (['string', 'null'])Component associated file name.
                • Comment (['string', 'null'])Component comment.
                • ComponentLineNumber (['string', 'null'])Component line number.
                • IsDeleted (['boolean', 'null'])Whether the component is deleted.
                • OfferLineNumber (['string', 'null'])Component offer line number.
                • ProductLineNumber (['string', 'null'])Component product line number.
                • QuantityBackordered (['integer', 'null'])Component quantity backordered.
                • QuantityOrdered (['integer', 'null'])Component quantity ordered.
            • IsDeleted (['boolean', 'null'])Whether the product is deleted.

            • OfferLineNumber (['string', 'null'])Offer line number.
            • PageCount (['integer', 'null'])Page count.
            • ProductDescription (['string', 'null'])Product description.
            • ProductLineNumber (['string', 'null'])Product line number.
            • ProductNumber (['string', 'null'])Product number.
            • ProductOwner (['string', 'null'])Product owner.
            • QuantityBackordered (['integer', 'null'])Quantity backordered.
            • QuantityOrdered (['integer', 'null'])Quantity ordered.
            • Size (['string', 'null'])Product size.
        • QuantityCanceled (['integer', 'null'])

        • QuantityOrdered (['integer', 'null'])Amount of offer ordered for individual line item.
        • RushOrder (['boolean', 'null'])True/false indicator if individual line item is expedited.
        • ShipToKey (['string', 'null'])Unique ID for Order.ShipTos.Key property associated to individual line item.
        • Status (['string', 'null'])
        • TaxAmount (['number', 'null'])Total tax amount applied to individual line item.
    • ModifiedDateTime (['string', 'null'])Modified date time.

    • OmsCustomerName (['string', 'null'])OMS customer name.
    • OrderFee (['number', 'null'])Order fee.
    • OrderVariables (['object', 'null'])Order variables.
    • OrderedBys (['array', 'null'])Ordered by addresses.

      • Items (object)

        • Address1 (['string', 'null'])Address line 1 for address.
        • Address2 (['string', 'null'])Address line 2 for address.
        • Address3 (['string', 'null'])Address line 3 for address.
        • City (['string', 'null'])City name for address.
        • Company (['string', 'null'])Company name for address.
        • Country (['string', 'null'])Country name for address.
        • EmailAddress (['string', 'null'])Contact email address for address.
        • FaxNumber (['string', 'null'])Fax number for address.
        • IsDeleted (['boolean', 'null'])Whether the ordered by address is deleted.
        • Key (['string', 'null'])Key for the ordered by address.
        • Name (['string', 'null'])Contact name for this address.
        • PhoneNumber (['string', 'null'])Phone number for address.
        • PostalCode (['string', 'null'])Postal code for address.
        • StateProvince (['string', 'null'])State or province name for address.
    • PONumber (['string', 'null'])PO number.

    • PaymentMethods (['array', 'null'])Payment methods.

      • Items (object)

        • Amount (['number', 'null'], required)Total amount applied to payment method.
        • MethodName (['string', 'null'], required)Name of payment method.
    • PickPackHandlingFee (['number', 'null'])Pick pack handling fee.

    • RushOrder (['boolean', 'null'])Rush order flag.
    • ShipTos (['array', 'null'], required)Ship to addresses.

      • Items (object)

        • AffiliateId (['string', 'null'])Affiliate ID.
        • OmsShippingMethodId (['string', 'null'])OMS shipping method ID.
        • ReferenceId (['string', 'null'])Reference ID.
        • SourceSystemShippingMethodId (['string', 'null'])Source system shipping method ID.
        • AffiliateName (['string', 'null'])Affiliate name.
        • Comment (['string', 'null'])Comment.
        • CostCenter (['string', 'null'])Cost center.
        • CreditCardFee (['number', 'null'])Credit card fee.
        • DueDate (['string', 'null'])Due date.
        • Key (['string', 'null'])Key for the ship to.
        • OrderFee (['number', 'null'])Order fee.
        • PONumber (['string', 'null'])PO number.
        • PaymentMethods (['array', 'null'])Payment methods.

          • Items (object)

            • Amount (['number', 'null'], required)Total amount applied to payment method.
            • MethodName (['string', 'null'], required)Name of payment method.
        • PickPackHandlingFee (['number', 'null'])Pick pack handling fee.

        • RushFee (['number', 'null'])Rush fee.
        • RushOrder (['boolean', 'null'])Whether this is a rush order.
        • ShipToAddress (['object', 'null'])Ship to address.

          • Address1 (['string', 'null'])Address line 1 for address.
          • Address2 (['string', 'null'])Address line 2 for address.
          • Address3 (['string', 'null'])Address line 3 for address.
          • City (['string', 'null'])City name for address.
          • Company (['string', 'null'])Company name for address.
          • Country (['string', 'null'])Country name for address.
          • EmailAddress (['string', 'null'])Contact email address for address.
          • FaxNumber (['string', 'null'])Fax number for address.
          • Name (['string', 'null'])Contact name for this address.
          • PhoneNumber (['string', 'null'])Phone number for address.
          • PostalCode (['string', 'null'])Postal code for address.
          • StateProvince (['string', 'null'])State or province name for address.
        • ShippingCarrier (['string', 'null'])Shipping carrier.

        • ShippingCost (['number', 'null'])Shipping cost.
        • ShippingHandlingTax (['number', 'null'])Shipping handling tax.
        • ShippingService (['string', 'null'])Shipping service.
        • Status (['string', 'null'])Status.
        • TotalOrderFee (['number', 'null'])Total order fee.
    • ShippingHandlingTax (['number', 'null'])Shipping handling tax.

    • Statuses (['array', 'null'])Order statuses - critical for OrderView as it's used for OrderStatus property in Service Bus messages.

      • Items (string)
    • TotalOrderFee (['number', 'null'])Total order fee.

    • TotalShippingCost (['number', 'null'])Total shipping cost.
  • EventName (string)Name of triggered event for OrderView. Must be one of: ["OrderView Created", "OrderView Updated", "OrderView Status Changed", "OrderView View Updated", "OrderView View Refreshed"].

Examples

{
    "AggregateId": "2-gbdstorefrontcust-2-P-4692-3606-50",
    "CorrelationId": "ae7f8b49-f36a-4b6e-9444-8f22f11a6fe3",
    "_rid": "s7l1AJVVwJcLwwIAAAAAAA==",
    "id": "aa2ec6a5-baf9-43ff-9002-3d25892fbb2a",
    "AggregateType": "OrderView",
    "EventActionUser": null,
    "EventDateTimeUtc": "2024-11-20T20:26:38.55",
    "EventName": "OrderView Updated",
    "EventNameValuePairs": null,
    "EventPublisherApp": "OrderBroker ViewOrder Event Publisher",
    "EventSchemaVersion": "1.6.1",
    "EventSource": "OrderBroker",
    "OrderView": {
        "OmsCustomerId": "001146",
        "OmsId": "1",
        "OmsOrderId": "2-gbdstorefrontcust-2-P-4692-3606-50",
        "OrderId": "2-gbdstorefrontcust-2-P-4692-3606-50",
        "ReferenceId": "2-P-4692-3606-50",
        "SourceSystemCustomerId": null,
        "SourceSystemId": null,
        "SourceSystemOrderId": null,
        "AccessGroups": [
            "IN"
        ],
        "AffiliateIdentifier": 9,
        "AffiliateName": "ZT - iHPqWad",
        "BillTos": [
            {
                "Address1": "77185 Juan Ford Apt. 265",
                "Address2": "",
                "Address3": "",
                "City": "Lovechester",
                "Company": "",
                "Country": "USA",
                "EmailAddress": "cody09@example.com",
                "FaxNumber": "",
                "IsDeleted": null,
                "Key": 0,
                "Name": "Leslie Harmon",
                "PhoneNumber": "377.454.4845",
                "PostalCode": "52209",
                "StateProvince": "Georgia"
            }
        ],
        "CostCenter": "6342091000- IN Medicaid Case Mgmt",
        "CreateDateTime": null,
        "CreditCardFee": null,
        "DefaultBillToKey": 0,
        "DefaultOrderedByKey": 0,
        "DefaultShipToKey": null,
        "DueDate": null,
        "LineItems": [
            {
                "OfferId": "1-001146-23788",
                "ProductManagementSystemCustomerId": "001146",
                "ProductManagementSystemId": 1,
                "ReferenceId": null,
                "VariableTemplatePrintId": null,
                "AdditionalProperties": [],
                "BillToKey": null,
                "Comment": "1022385INMENABS Rev. 11/22 PM:https://xxxxx.cloudfront.net/temporary/example.pdf,e47de917-5db4-45dc-9079-203690246f0a.pdf",
                "CostCenter": null,
                "DueDate": null,
                "IsDeleted": false,
                "LineItemFee": 0,
                "OfferDescription": "Important Phone Numbers Update SH MKT (IN)",
                "OfferLineNumber": "15602",
                "OfferNumber": "1022385INMENABS Rev. 11/22 PM",
                "OrderedByKey": null,
                "PONumber": null,
                "Price": 35,
                "Products": [],
                "QuantityCanceled": null,
                "QuantityOrdered": 1,
                "RushOrder": null,
                "ShipToKey": 0,
                "Status": null,
                "TaxAmount": 0
            }
        ],
        "ModifiedDateTime": "2024-11-20T14:26:38",
        "OmsCustomerName": "Ryan Griffin",
        "OrderFee": null,
        "OrderVariables": {},
        "OrderedBys": [
            {
                "Address1": "28133 Derrick Rapids",
                "Address2": "",
                "Address3": "",
                "City": "New Emilyside",
                "Company": "",
                "Country": "USA",
                "EmailAddress": "sarah01@example.com",
                "FaxNumber": "",
                "IsDeleted": null,
                "Key": 0,
                "Name": "Dawn Conway",
                "PhoneNumber": "+1-963-434-5913x919",
                "PostalCode": 9945,
                "StateProvince": "Montana"
            }
        ],
        "PONumber": "",
        "PaymentMethods": null,
        "PickPackHandlingFee": null,
        "RushOrder": false,
        "ShipTos": null,
        "ShippingHandlingTax": null,
        "Statuses": [
            "Order In Process"
        ],
        "TotalOrderFee": null,
        "TotalShippingCost": null
    },
    "_attachments": "attachments/",
    "_etag": "\"080066e6-0000-0300-0000-673e47300000\"",
    "_self": "dbs/s7l1AA==/colls/s7l1AJVVwJc=/docs/s7l1AJVVwJcLwwIAAAAAAA==/",
    "_ts": 1732134704
}

Quicktype Command

quicktype \
    --framework SystemTextJson  \
    --lang cs  \
    --number-type double  \
    --src-lang schema  \
    --no-check-required  \
    --density dense  \
    --features complete  \
    --namespace OtpSchema.Event.OrderView.OrderViewEvent  \
    --src .working/build/internal/json-schema-for-cs/OrderViewEvent.json -o .working/build/internal/csharp/OtpSchema/Event/OrderView/OrderViewEvent.cs
OrderViewEvent
// <auto-generated />
//
// To parse this JSON data, add NuGet 'System.Text.Json' then do:
//
//    using OtpSchema.Event.OrderView.OrderViewEvent;
//
//    var orderViewEvent = OrderViewEvent.FromJson(jsonString);
#nullable enable
#pragma warning disable CS8618
#pragma warning disable CS8601
#pragma warning disable CS8603

namespace OtpSchema.Event.OrderView.OrderViewEvent
{
    using System;
    using System.Collections.Generic;

    using System.Text.Json;
    using System.Text.Json.Serialization;
    using System.Globalization;
    using J = System.Text.Json.Serialization.JsonPropertyNameAttribute;
    using N = System.Text.Json.Serialization.JsonIgnoreCondition;

    /// <summary>OrderViewEvent schema; ; Details for Shipping Order JSON schema</summary>
    public partial class OrderViewEvent
    {
        [J("AggregateId")]         public string AggregateId { get; set; }                               // Unique ID for shipping order within Integration Broker
        [J("AggregateType")]       public string AggregateType { get; set; }                             // Type of event schema
        [J("CorrelationId")]       public string CorrelationId { get; set; }                             // Unique ID for SOB-external event trigger
        [J("EventActionUser")]     public string EventActionUser { get; set; }                           // Username of user who triggered event
        [J("EventDateTimeUtc")]    public string EventDateTimeUtc { get; set; }                          // UTC based datetime of when event was triggered
        [J("EventName")]           public AggregateId EventName { get; set; }                            // Name of triggered event; ; Name of triggered event for OrderView
        [J("EventNameValuePairs")] public Dictionary<string, object>[] EventNameValuePairs { get; set; }
        [J("EventPublisherApp")]   public string EventPublisherApp { get; set; }                         // Name of source application that published event
        [J("EventSchemaVersion")]  public string EventSchemaVersion { get; set; }                        // Version of event schema being used
        [J("EventSource")]         public string EventSource { get; set; }                               // Name of system where event was triggered
        [J("OrderView")]           public OrderView OrderView { get; set; }                              // OrderView level details for Cosmos DB Views database
    }

    /// <summary>OrderView level details for Cosmos DB Views database</summary>
    public partial class OrderView
    {
        [J("AccessGroups")]           public string[] AccessGroups { get; set; }                     // Access groups
        [J("AffiliateIdentifier")]    public string AffiliateIdentifier { get; set; }                // Affiliate identifier
        [J("AffiliateName")]          public string AffiliateName { get; set; }                      // Affiliate name
        [J("BillingEntityId")]        public string BillingEntityId { get; set; }                    // Billing entity ID
        [J("BillTos")]                public BillTo[] BillTos { get; set; }                          // Bill to addresses
        [J("CostCenter")]             public string CostCenter { get; set; }                         // Cost center
        [J("CreateDateTime")]         public string CreateDateTime { get; set; }                     // Create date time
        [J("CreditCardFee")]          public double? CreditCardFee { get; set; }                     // Credit card fee
        [J("DefaultBillToKey")]       public string DefaultBillToKey { get; set; }                   // Default bill to key
        [J("DefaultOrderedByKey")]    public string DefaultOrderedByKey { get; set; }                // Default ordered by key
        [J("DefaultShipToKey")]       public string DefaultShipToKey { get; set; }                   // Default ship to key
        [J("DueDate")]                public string DueDate { get; set; }                            // Due date
        [J("LineItems")]              public LineItem[] LineItems { get; set; }                      // Order line items
        [J("ModifiedDateTime")]       public string ModifiedDateTime { get; set; }                   // Modified date time
        [J("OmsCustomerId")]          public string OmsCustomerId { get; set; }                      // OMS customer ID
        [J("OmsCustomerName")]        public string OmsCustomerName { get; set; }                    // OMS customer name
        [J("OmsId")]                  public string OmsId { get; set; }                              // OMS ID
        [J("OmsOrderId")]             public string OmsOrderId { get; set; }                         // OMS order ID
        [J("OrderedBys")]             public OrderedBy[] OrderedBys { get; set; }                    // Ordered by addresses
        [J("OrderFee")]               public double? OrderFee { get; set; }                          // Order fee
        [J("OrderId")]                public string OrderId { get; set; }                            // Unique ID for order within order management system
        [J("OrderVariables")]         public Dictionary<string, object> OrderVariables { get; set; } // Order variables
        [J("PaymentMethods")]         public OrderViewPaymentMethod[] PaymentMethods { get; set; }   // Payment methods
        [J("PickPackHandlingFee")]    public double? PickPackHandlingFee { get; set; }               // Pick pack handling fee
        [J("PONumber")]               public string PoNumber { get; set; }                           // PO number
        [J("ReferenceId")]            public string ReferenceId { get; set; }                        // Reference ID
        [J("RushOrder")]              public bool? RushOrder { get; set; }                           // Rush order flag
        [J("ShippingHandlingTax")]    public double? ShippingHandlingTax { get; set; }               // Shipping handling tax
        [J("ShipTos")]                public ShipTo[] ShipTos { get; set; }                          // Ship to addresses
        [J("SourceSystemCustomerId")] public string SourceSystemCustomerId { get; set; }             // This is an automatically generated field added by middleware.  It is considered read-only
        [J("SourceSystemId")]         public long? SourceSystemId { get; set; }                      // This is an automatically generated field added by middleware.  It is considered read-only
        [J("SourceSystemOrderId")]    public string SourceSystemOrderId { get; set; }                // Source system order ID
        [J("Statuses")]               public string[] Statuses { get; set; }                         // Order statuses - critical for OrderView as it's used for OrderStatus property in Service; Bus messages
        [J("TotalOrderFee")]          public double? TotalOrderFee { get; set; }                     // Total order fee
        [J("TotalShippingCost")]      public double? TotalShippingCost { get; set; }                 // Total shipping cost
    }

    public partial class BillTo
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("IsDeleted")]     public bool? IsDeleted { get; set; }      // Whether the bill to address is deleted
        [J("Key")]           public string Key { get; set; }           // Key for the bill to address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class LineItem
    {
        [J("AdditionalProperties")]              public AdditionalProperty[] AdditionalProperties { get; set; }            // Additional properties details for Order LineItems
        [J("BillToKey")]                         public string BillToKey { get; set; }                                     // Unique ID for Order.BillTos.Key property associated to individual line item
        [J("Comment")]                           public string Comment { get; set; }                                       // Manually entered comment for individual line item
        [J("CostCenter")]                        public string CostCenter { get; set; }                                   
        [J("DueDate")]                           public string DueDate { get; set; }                                       // Datetime of expected due date for individual line item
        [J("LineItemFee")]                       public double? LineItemFee { get; set; }                                  // Fee applied to individual line item
        [J("OfferDescription")]                  public string OfferDescription { get; set; }                              // Description for offer within product management system
        [J("OfferId")]                           public string OfferId { get; set; }                                       // Unique ID for offer within Integration Broker
        [J("OfferLineNumber")]                   public string OfferLineNumber { get; set; }                               // Unique ID for individual line item
        [J("OfferNumber")]                       public string OfferNumber { get; set; }                                   // Name for offer within product management system
        [J("OrderedByKey")]                      public string OrderedByKey { get; set; }                                  // Unique ID for Order.OrderedBy.Key property associated to individual line item
        [J("PONumber")]                          public string PoNumber { get; set; }                                      // Purchase order number for individual line item
        [J("Price")]                             public double? Price { get; set; }                                        // Total offer price of individual line item
        [J("ProductManagementSystemCustomerId")] public string ProductManagementSystemCustomerId { get; set; }            
        [J("ProductManagementSystemId")]         public ProductManagementSystemId? ProductManagementSystemId { get; set; } // Identifier for a product management system that can be an integer, string, or null
        [J("Products")]                          public Product[] Products { get; set; }                                   // Order.LineItems level product details
        [J("QuantityCanceled")]                  public long? QuantityCanceled { get; set; }                              
        [J("QuantityOrdered")]                   public long? QuantityOrdered { get; set; }                                // Amount of offer ordered for individual line item
        [J("ReferenceId")]                       public string ReferenceId { get; set; }                                  
        [J("RushOrder")]                         public bool? RushOrder { get; set; }                                      // True/false indicator if individual line item is expedited
        [J("ShipToKey")]                         public string ShipToKey { get; set; }                                     // Unique ID for Order.ShipTos.Key property associated to individual line item
        [J("Status")]                            public string Status { get; set; }                                       
        [J("TaxAmount")]                         public double? TaxAmount { get; set; }                                    // Total tax amount applied to individual line item
        [J("VariableTemplatePrintId")]           public string VariableTemplatePrintId { get; set; }                       // Unique ID for variable template file associated to offer on individual line item
    }

    public partial class AdditionalProperty
    {
        [J("IsDeleted")] public bool? IsDeleted { get; set; } // Whether the additional property is deleted
        [J("Key")]       public string Key { get; set; }      // Key of the additional property
        [J("Value")]     public string Value { get; set; }    // Value of the additional property
    }

    public partial class Product
    {
        [J("AssociatedFileName")]          public string AssociatedFileName { get; set; }          // Associated file name
        [J("Color")]                       public string Color { get; set; }                       // Product color
        [J("Comment")]                     public string Comment { get; set; }                     // Comment for the product
        [J("Components")]                  public Component[] Components { get; set; }             // Product components
        [J("FulfillmentSystemCustomerId")] public string FulfillmentSystemCustomerId { get; set; } // Fulfillment system customer ID
        [J("FulfillmentSystemId")]         public string FulfillmentSystemId { get; set; }         // Fulfillment system ID
        [J("FulfillmentSystemProductId")]  public string FulfillmentSystemProductId { get; set; }  // Fulfillment system product ID
        [J("IsDeleted")]                   public bool? IsDeleted { get; set; }                    // Whether the product is deleted
        [J("OfferLineNumber")]             public string OfferLineNumber { get; set; }             // Offer line number
        [J("PageCount")]                   public long? PageCount { get; set; }                    // Page count
        [J("ProductDescription")]          public string ProductDescription { get; set; }          // Product description
        [J("ProductId")]                   public string ProductId { get; set; }                   // Product ID
        [J("ProductLineNumber")]           public string ProductLineNumber { get; set; }           // Product line number
        [J("ProductNumber")]               public string ProductNumber { get; set; }               // Product number
        [J("ProductOwner")]                public string ProductOwner { get; set; }                // Product owner
        [J("QuantityBackordered")]         public long? QuantityBackordered { get; set; }          // Quantity backordered
        [J("QuantityOrdered")]             public long? QuantityOrdered { get; set; }              // Quantity ordered
        [J("Size")]                        public string Size { get; set; }                        // Product size
    }

    public partial class Component
    {
        [J("AssociatedFileName")]  public string AssociatedFileName { get; set; }  // Component associated file name
        [J("Comment")]             public string Comment { get; set; }             // Component comment
        [J("ComponentLineNumber")] public string ComponentLineNumber { get; set; } // Component line number
        [J("IsDeleted")]           public bool? IsDeleted { get; set; }            // Whether the component is deleted
        [J("OfferLineNumber")]     public string OfferLineNumber { get; set; }     // Component offer line number
        [J("ProductId")]           public string ProductId { get; set; }           // Component product ID
        [J("ProductLineNumber")]   public string ProductLineNumber { get; set; }   // Component product line number
        [J("QuantityBackordered")] public long? QuantityBackordered { get; set; }  // Component quantity backordered
        [J("QuantityOrdered")]     public long? QuantityOrdered { get; set; }      // Component quantity ordered
    }

    public partial class OrderedBy
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("IsDeleted")]     public bool? IsDeleted { get; set; }      // Whether the ordered by address is deleted
        [J("Key")]           public string Key { get; set; }           // Key for the ordered by address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class OrderViewPaymentMethod
    {
        [J("Amount")]     public double? Amount { get; set; }    // Total amount applied to payment method
        [J("MethodName")] public string MethodName { get; set; } // Name of payment method
    }

    public partial class ShipTo
    {
        [J("AffiliateId")]                  public string AffiliateId { get; set; }                   // Affiliate ID
        [J("AffiliateName")]                public string AffiliateName { get; set; }                 // Affiliate name
        [J("Comment")]                      public string Comment { get; set; }                       // Comment
        [J("CostCenter")]                   public string CostCenter { get; set; }                    // Cost center
        [J("CreditCardFee")]                public double? CreditCardFee { get; set; }                // Credit card fee
        [J("DueDate")]                      public string DueDate { get; set; }                       // Due date
        [J("Key")]                          public string Key { get; set; }                           // Key for the ship to
        [J("OmsShippingMethodId")]          public string OmsShippingMethodId { get; set; }           // OMS shipping method ID
        [J("OrderFee")]                     public double? OrderFee { get; set; }                     // Order fee
        [J("PaymentMethods")]               public ShipToPaymentMethod[] PaymentMethods { get; set; } // Payment methods
        [J("PickPackHandlingFee")]          public double? PickPackHandlingFee { get; set; }          // Pick pack handling fee
        [J("PONumber")]                     public string PoNumber { get; set; }                      // PO number
        [J("ReferenceId")]                  public string ReferenceId { get; set; }                   // Reference ID
        [J("RushFee")]                      public double? RushFee { get; set; }                      // Rush fee
        [J("RushOrder")]                    public bool? RushOrder { get; set; }                      // Whether this is a rush order
        [J("ShippingCarrier")]              public string ShippingCarrier { get; set; }               // Shipping carrier
        [J("ShippingCost")]                 public double? ShippingCost { get; set; }                 // Shipping cost
        [J("ShippingHandlingTax")]          public double? ShippingHandlingTax { get; set; }          // Shipping handling tax
        [J("ShippingService")]              public string ShippingService { get; set; }               // Shipping service
        [J("ShipToAddress")]                public ShipToAddress ShipToAddress { get; set; }          // Ship to address
        [J("SourceSystemShippingMethodId")] public string SourceSystemShippingMethodId { get; set; }  // Source system shipping method ID
        [J("Status")]                       public string Status { get; set; }                        // Status
        [J("TotalOrderFee")]                public double? TotalOrderFee { get; set; }                // Total order fee
    }

    public partial class ShipToPaymentMethod
    {
        [J("Amount")]     public double? Amount { get; set; }    // Total amount applied to payment method
        [J("MethodName")] public string MethodName { get; set; } // Name of payment method
    }

    public partial class ShipToAddress
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    /// <summary>Name of triggered event for OrderView</summary>
    public enum AggregateId { OrderViewCreated, OrderViewStatusChanged, OrderViewUpdated, OrderViewViewRefreshed, OrderViewViewUpdated };

    /// <summary>Identifier for a product management system that can be an integer, string, or null</summary>
    public partial struct ProductManagementSystemId
    {
        public long? Integer;
        public string String;

        public static implicit operator ProductManagementSystemId(long Integer) => new ProductManagementSystemId { Integer = Integer };
        public static implicit operator ProductManagementSystemId(string String) => new ProductManagementSystemId { String = String };
        public bool IsNull => Integer == null && String == null;
    }

    public partial class OrderViewEvent
    {
        public static OrderViewEvent FromJson(string json) => JsonSerializer.Deserialize<OrderViewEvent>(json, OtpSchema.Event.OrderView.OrderViewEvent.Converter.Settings);
    }

    public static class Serialize
    {
        public static string ToJson(this OrderViewEvent self) => JsonSerializer.Serialize(self, OtpSchema.Event.OrderView.OrderViewEvent.Converter.Settings);
    }

    internal static class Converter
    {
        public static readonly JsonSerializerOptions Settings = new(JsonSerializerDefaults.General)
        {
            Converters =
            {
                AggregateIdConverter.Singleton,
                ProductManagementSystemIdConverter.Singleton,
                new DateOnlyConverter(),
                new TimeOnlyConverter(),
                IsoDateTimeOffsetConverter.Singleton
            },
        };
    }

    internal class AggregateIdConverter : JsonConverter<AggregateId>
    {
        public override bool CanConvert(Type t) => t == typeof(AggregateId);

        public override AggregateId Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            var value = reader.GetString();
            switch (value)
            {
                case "OrderView Created":
                    return AggregateId.OrderViewCreated;
                case "OrderView Status Changed":
                    return AggregateId.OrderViewStatusChanged;
                case "OrderView Updated":
                    return AggregateId.OrderViewUpdated;
                case "OrderView View Refreshed":
                    return AggregateId.OrderViewViewRefreshed;
                case "OrderView View Updated":
                    return AggregateId.OrderViewViewUpdated;
            }
            throw new Exception("Cannot unmarshal type AggregateId");
        }

        public override void Write(Utf8JsonWriter writer, AggregateId value, JsonSerializerOptions options)
        {
            switch (value)
            {
                case AggregateId.OrderViewCreated:
                    JsonSerializer.Serialize(writer, "OrderView Created", options);
                    return;
                case AggregateId.OrderViewStatusChanged:
                    JsonSerializer.Serialize(writer, "OrderView Status Changed", options);
                    return;
                case AggregateId.OrderViewUpdated:
                    JsonSerializer.Serialize(writer, "OrderView Updated", options);
                    return;
                case AggregateId.OrderViewViewRefreshed:
                    JsonSerializer.Serialize(writer, "OrderView View Refreshed", options);
                    return;
                case AggregateId.OrderViewViewUpdated:
                    JsonSerializer.Serialize(writer, "OrderView View Updated", options);
                    return;
            }
            throw new Exception("Cannot marshal type AggregateId");
        }

        public static readonly AggregateIdConverter Singleton = new AggregateIdConverter();
    }

    internal class ProductManagementSystemIdConverter : JsonConverter<ProductManagementSystemId>
    {
        public override bool CanConvert(Type t) => t == typeof(ProductManagementSystemId);

        public override ProductManagementSystemId Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            switch (reader.TokenType)
            {
                case JsonTokenType.Null:
                    return new ProductManagementSystemId { };
                case JsonTokenType.Number:
                    var integerValue = reader.GetInt64();
                    return new ProductManagementSystemId { Integer = integerValue };
                case JsonTokenType.String:
                    var stringValue = reader.GetString();
                    return new ProductManagementSystemId { String = stringValue };
            }
            throw new Exception("Cannot unmarshal type ProductManagementSystemId");
        }

        public override void Write(Utf8JsonWriter writer, ProductManagementSystemId value, JsonSerializerOptions options)
        {
            if (value.IsNull)
            {
                writer.WriteNullValue();
                return;
            }
            if (value.Integer != null)
            {
                JsonSerializer.Serialize(writer, value.Integer.Value, options);
                return;
            }
            if (value.String != null)
            {
                JsonSerializer.Serialize(writer, value.String, options);
                return;
            }
            throw new Exception("Cannot marshal type ProductManagementSystemId");
        }

        public static readonly ProductManagementSystemIdConverter Singleton = new ProductManagementSystemIdConverter();
    }

    public class DateOnlyConverter : JsonConverter<DateOnly>
    {
        private readonly string serializationFormat;
        public DateOnlyConverter() : this(null) { }

        public DateOnlyConverter(string? serializationFormat)
        {
                this.serializationFormat = serializationFormat ?? "yyyy-MM-dd";
        }

        public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                var value = reader.GetString();
                return DateOnly.Parse(value!);
        }

        public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options)
                => writer.WriteStringValue(value.ToString(serializationFormat));
    }

    public class TimeOnlyConverter : JsonConverter<TimeOnly>
    {
        private readonly string serializationFormat;

        public TimeOnlyConverter() : this(null) { }

        public TimeOnlyConverter(string? serializationFormat)
        {
                this.serializationFormat = serializationFormat ?? "HH:mm:ss.fff";
        }

        public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                var value = reader.GetString();
                return TimeOnly.Parse(value!);
        }

        public override void Write(Utf8JsonWriter writer, TimeOnly value, JsonSerializerOptions options)
                => writer.WriteStringValue(value.ToString(serializationFormat));
    }

    internal class IsoDateTimeOffsetConverter : JsonConverter<DateTimeOffset>
    {
        public override bool CanConvert(Type t) => t == typeof(DateTimeOffset);

        private const string DefaultDateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";

        private DateTimeStyles _dateTimeStyles = DateTimeStyles.RoundtripKind;
        private string? _dateTimeFormat;
        private CultureInfo? _culture;

        public DateTimeStyles DateTimeStyles
        {
                get => _dateTimeStyles;
                set => _dateTimeStyles = value;
        }

        public string? DateTimeFormat
        {
                get => _dateTimeFormat ?? string.Empty;
                set => _dateTimeFormat = (string.IsNullOrEmpty(value)) ? null : value;
        }

        public CultureInfo Culture
        {
                get => _culture ?? CultureInfo.CurrentCulture;
                set => _culture = value;
        }

        public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options)
        {
                string text;


                if ((_dateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal
                        || (_dateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal)
                {
                        value = value.ToUniversalTime();
                }

                text = value.ToString(_dateTimeFormat ?? DefaultDateTimeFormat, Culture);

                writer.WriteStringValue(text);
        }

        public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                string? dateText = reader.GetString();

                if (string.IsNullOrEmpty(dateText) == false)
                {
                        if (!string.IsNullOrEmpty(_dateTimeFormat))
                        {
                                return DateTimeOffset.ParseExact(dateText, _dateTimeFormat, Culture, _dateTimeStyles);
                        }
                        else
                        {
                                return DateTimeOffset.Parse(dateText, Culture, _dateTimeStyles);
                        }
                }
                else
                {
                        return default(DateTimeOffset);
                }
        }


        public static readonly IsoDateTimeOffsetConverter Singleton = new IsoDateTimeOffsetConverter();
    }
}
#pragma warning restore CS8618
#pragma warning restore CS8601
#pragma warning restore CS8603

OrderViewEvent
{
  "$schema": "http://json-schema.org/draft-07/schema#", 
  "$id": "OrderViewEvent.json", 
  "description": "OrderViewEvent schema", 
  "type": "object", 
  "allOf": [
    {
      "$schema": "http://json-schema.org/draft-07/schema#", 
      "$id": "EventBase.json", 
      "description": "Details for Shipping Order JSON schema", 
      "type": "object", 
      "properties": {
        "AggregateId": {
          "description": "Unique ID for shipping order within Integration Broker", 
          "type": "string", 
          "format": "{FulfillmentSystemId}-{FulfillmentSystemCustomerId}-{ShippingOrderId}"
        }, 
        "CorrelationId": {"description": "Unique ID for SOB-external event trigger", "type": "string"}, 
        "AggregateType": {"description": "Type of event schema", "type": "string"}, 
        "EventActionUser": {
          "description": "Username of user who triggered event", 
          "type": ["string", "null"], 
          "veraCoreSource": "SHPACK_UserName in warehouse DB.  SHPACK in the OMS contains a SeqId for the warehouse table."
        }, 
        "EventDateTimeUtc": {
          "description": "UTC based datetime of when event was triggered", 
          "type": "string"
        }, 
        "EventName": {"description": "Name of triggered event", "type": "string"}, 
        "EventNameValuePairs": { "type": ["array", "null"], "items": {"type": "object"} }, 
        "EventPublisherApp": {
          "description": "Name of source application that published event", 
          "type": "string"
        }, 
        "EventSchemaVersion": {"description": "Version of event schema being used", "type": "string"}, 
        "EventSource": {"description": "Name of system where event was triggered", "type": "string"}
      }, 
      "required": [
        "AggregateId", "AggregateType", "CorrelationId", "EventDateTimeUtc", "EventName", 
        "EventPublisherApp", "EventSchemaVersion", "EventSource"
      ]
    }, 
    {
      "type": "object", 
      "properties": {
        "OrderView": {
          "$schema": "http://json-schema.org/draft-07/schema#", 
          "$id": "OrderView.json", 
          "description": "OrderView level details for Cosmos DB Views database", 
          "type": "object", 
          "properties": {
            "BillingEntityId": { "description": "Billing entity ID", "type": ["string", "null"] }, 
            "OmsCustomerId": { "description": "OMS customer ID", "type": ["string", "null"] }, 
            "OmsId": { "description": "OMS ID", "type": ["string", "null"] }, 
            "OmsOrderId": { "description": "OMS order ID", "type": ["string", "null"] }, 
            "OrderId": {
              "description": "Unique ID for order within order management system", 
              "type": ["string", "null"]
            }, 
            "ReferenceId": { "description": "Reference ID", "type": ["string", "null"] }, 
            "SourceSystemCustomerId": {
              "description": "This is an automatically generated field added by middleware.  It is considered read-only", 
              "type": ["string", "null"], 
              "readonly": true
            }, 
            "SourceSystemId": {
              "description": "This is an automatically generated field added by middleware.  It is considered read-only", 
              "type": ["integer", "null"], 
              "readonly": true
            }, 
            "SourceSystemOrderId": { "description": "Source system order ID", "type": ["string", "null"] }, 
            "AccessGroups": {
              "description": "Access groups", 
              "type": ["array", "null"], 
              "items": {"type": "string"}
            }, 
            "AffiliateIdentifier": { "description": "Affiliate identifier", "type": ["string", "null"] }, 
            "AffiliateName": { "description": "Affiliate name", "type": ["string", "null"] }, 
            "BillTos": {
              "description": "Bill to addresses", 
              "type": ["array", "null"], 
              "items": {
                "type": "object", 
                "properties": {
                  "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
                  "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
                  "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
                  "City": { "description": "City name for address", "type": ["string", "null"] }, 
                  "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
                  "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
                  "EmailAddress": {
                    "description": "Contact email address for address", 
                    "type": ["string", "null"]
                  }, 
                  "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
                  "IsDeleted": {
                    "description": "Whether the bill to address is deleted", 
                    "type": ["boolean", "null"]
                  }, 
                  "Key": { "description": "Key for the bill to address", "type": ["string", "null"] }, 
                  "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
                  "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
                  "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
                  "StateProvince": {
                    "description": "State or province name for address", 
                    "type": ["string", "null"]
                  }
                }
              }
            }, 
            "CostCenter": { "description": "Cost center", "type": ["string", "null"] }, 
            "CreateDateTime": { "description": "Create date time", "type": ["string", "null"] }, 
            "CreditCardFee": { "description": "Credit card fee", "type": ["number", "null"] }, 
            "DefaultBillToKey": { "description": "Default bill to key", "type": ["string", "null"] }, 
            "DefaultOrderedByKey": { "description": "Default ordered by key", "type": ["string", "null"] }, 
            "DefaultShipToKey": { "description": "Default ship to key", "type": ["string", "null"] }, 
            "DueDate": { "description": "Due date", "type": ["string", "null"] }, 
            "LineItems": {
              "description": "Order line items", 
              "type": ["array", "null"], 
              "items": {
                "type": "object", 
                "properties": {
                  "OfferId": {
                    "description": "Unique ID for offer within Integration Broker", 
                    "type": ["string", "null"]
                  }, 
                  "ProductManagementSystemCustomerId": { "type": ["string", "null"] }, 
                  "ProductManagementSystemId": {
                    "description": "Identifier for a product management system that can be an integer, string, or null", 
                    "type": ["integer", "string", "null"]
                  }, 
                  "ReferenceId": { "type": ["string", "null"] }, 
                  "VariableTemplatePrintId": {
                    "description": "Unique ID for variable template file associated to offer on individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "AdditionalProperties": {
                    "description": "Additional properties details for Order LineItems", 
                    "type": ["array", "null"], 
                    "items": {
                      "type": "object", 
                      "properties": {
                        "IsDeleted": {
                          "description": "Whether the additional property is deleted", 
                          "type": ["boolean", "null"]
                        }, 
                        "Key": { "description": "Key of the additional property", "type": ["string", "null"] }, 
                        "Value": {
                          "description": "Value of the additional property", 
                          "type": ["string", "null"]
                        }
                      }
                    }
                  }, 
                  "BillToKey": {
                    "description": "Unique ID for Order.BillTos.Key property associated to individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "Comment": {
                    "description": "Manually entered comment for individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "CostCenter": { "type": ["string", "null"] }, 
                  "DueDate": {
                    "description": "Datetime of expected due date for individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "LineItemFee": {
                    "description": "Fee applied to individual line item", 
                    "type": ["number", "null"]
                  }, 
                  "OfferDescription": {
                    "description": "Description for offer within product management system", 
                    "type": ["string", "null"]
                  }, 
                  "OfferLineNumber": {
                    "description": "Unique ID for individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "OfferNumber": {
                    "description": "Name for offer within product management system", 
                    "type": ["string", "null"]
                  }, 
                  "OrderedByKey": {
                    "description": "Unique ID for Order.OrderedBy.Key property associated to individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "PONumber": {
                    "description": "Purchase order number for individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "Price": {
                    "description": "Total offer price of individual line item", 
                    "type": ["number", "null"]
                  }, 
                  "Products": {
                    "description": "Order.LineItems level product details", 
                    "type": ["array", "null"], 
                    "items": {
                      "type": "object", 
                      "properties": {
                        "FulfillmentSystemCustomerId": { "description": "Fulfillment system customer ID", "type": ["string", "null"] }, 
                        "FulfillmentSystemId": { "description": "Fulfillment system ID", "type": ["string", "null"] }, 
                        "FulfillmentSystemProductId": { "description": "Fulfillment system product ID", "type": ["string", "null"] }, 
                        "ProductId": { "description": "Product ID", "type": ["string", "null"] }, 
                        "AssociatedFileName": { "description": "Associated file name", "type": ["string", "null"] }, 
                        "Color": { "description": "Product color", "type": ["string", "null"] }, 
                        "Comment": { "description": "Comment for the product", "type": ["string", "null"] }, 
                        "Components": {
                          "description": "Product components", 
                          "type": ["array", "null"], 
                          "items": {
                            "type": "object", 
                            "properties": {
                              "ProductId": { "description": "Component product ID", "type": ["string", "null"] }, 
                              "AssociatedFileName": { "description": "Component associated file name", "type": ["string", "null"] }, 
                              "Comment": { "description": "Component comment", "type": ["string", "null"] }, 
                              "ComponentLineNumber": { "description": "Component line number", "type": ["string", "null"] }, 
                              "IsDeleted": {
                                "description": "Whether the component is deleted", 
                                "type": ["boolean", "null"]
                              }, 
                              "OfferLineNumber": { "description": "Component offer line number", "type": ["string", "null"] }, 
                              "ProductLineNumber": { "description": "Component product line number", "type": ["string", "null"] }, 
                              "QuantityBackordered": { "description": "Component quantity backordered", "type": ["integer", "null"] }, 
                              "QuantityOrdered": { "description": "Component quantity ordered", "type": ["integer", "null"] }
                            }
                          }
                        }, 
                        "IsDeleted": { "description": "Whether the product is deleted", "type": ["boolean", "null"] }, 
                        "OfferLineNumber": { "description": "Offer line number", "type": ["string", "null"] }, 
                        "PageCount": { "description": "Page count", "type": ["integer", "null"] }, 
                        "ProductDescription": { "description": "Product description", "type": ["string", "null"] }, 
                        "ProductLineNumber": { "description": "Product line number", "type": ["string", "null"] }, 
                        "ProductNumber": { "description": "Product number", "type": ["string", "null"] }, 
                        "ProductOwner": { "description": "Product owner", "type": ["string", "null"] }, 
                        "QuantityBackordered": { "description": "Quantity backordered", "type": ["integer", "null"] }, 
                        "QuantityOrdered": { "description": "Quantity ordered", "type": ["integer", "null"] }, 
                        "Size": { "description": "Product size", "type": ["string", "null"] }
                      }
                    }
                  }, 
                  "QuantityCanceled": { "type": ["integer", "null"] }, 
                  "QuantityOrdered": {
                    "description": "Amount of offer ordered for individual line item", 
                    "type": ["integer", "null"]
                  }, 
                  "RushOrder": {
                    "description": "True/false indicator if individual line item is expedited", 
                    "type": ["boolean", "null"]
                  }, 
                  "ShipToKey": {
                    "description": "Unique ID for Order.ShipTos.Key property associated to individual line item", 
                    "type": ["string", "null"]
                  }, 
                  "Status": { "type": ["string", "null"] }, 
                  "TaxAmount": {
                    "description": "Total tax amount applied to individual line item", 
                    "type": ["number", "null"]
                  }
                }
              }
            }, 
            "ModifiedDateTime": { "description": "Modified date time", "type": ["string", "null"] }, 
            "OmsCustomerName": { "description": "OMS customer name", "type": ["string", "null"] }, 
            "OrderFee": { "description": "Order fee", "type": ["number", "null"] }, 
            "OrderVariables": { "description": "Order variables", "type": ["object", "null"] }, 
            "OrderedBys": {
              "description": "Ordered by addresses", 
              "type": ["array", "null"], 
              "items": {
                "type": "object", 
                "properties": {
                  "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
                  "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
                  "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
                  "City": { "description": "City name for address", "type": ["string", "null"] }, 
                  "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
                  "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
                  "EmailAddress": {
                    "description": "Contact email address for address", 
                    "type": ["string", "null"]
                  }, 
                  "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
                  "IsDeleted": {
                    "description": "Whether the ordered by address is deleted", 
                    "type": ["boolean", "null"]
                  }, 
                  "Key": { "description": "Key for the ordered by address", "type": ["string", "null"] }, 
                  "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
                  "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
                  "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
                  "StateProvince": {
                    "description": "State or province name for address", 
                    "type": ["string", "null"]
                  }
                }
              }
            }, 
            "PONumber": { "description": "PO number", "type": ["string", "null"] }, 
            "PaymentMethods": {
              "description": "Payment methods", 
              "type": ["array", "null"], 
              "items": {
                "type": "object", 
                "properties": {
                  "Amount": {
                    "description": "Total amount applied to payment method", 
                    "type": ["number", "null"]
                  }, 
                  "MethodName": { "description": "Name of payment method", "type": ["string", "null"] }
                }, 
                "required": ["Amount", "MethodName"]
              }
            }, 
            "PickPackHandlingFee": { "description": "Pick pack handling fee", "type": ["number", "null"] }, 
            "RushOrder": { "description": "Rush order flag", "type": ["boolean", "null"] }, 
            "ShipTos": {
              "description": "Ship to addresses", 
              "type": ["array", "null"], 
              "items": {
                "type": "object", 
                "properties": {
                  "AffiliateId": { "description": "Affiliate ID", "type": ["string", "null"] }, 
                  "OmsShippingMethodId": { "description": "OMS shipping method ID", "type": ["string", "null"] }, 
                  "ReferenceId": { "description": "Reference ID", "type": ["string", "null"] }, 
                  "SourceSystemShippingMethodId": {
                    "description": "Source system shipping method ID", 
                    "type": ["string", "null"]
                  }, 
                  "AffiliateName": { "description": "Affiliate name", "type": ["string", "null"] }, 
                  "Comment": { "description": "Comment", "type": ["string", "null"] }, 
                  "CostCenter": { "description": "Cost center", "type": ["string", "null"] }, 
                  "CreditCardFee": { "description": "Credit card fee", "type": ["number", "null"] }, 
                  "DueDate": { "description": "Due date", "type": ["string", "null"] }, 
                  "Key": { "description": "Key for the ship to", "type": ["string", "null"] }, 
                  "OrderFee": { "description": "Order fee", "type": ["number", "null"] }, 
                  "PONumber": { "description": "PO number", "type": ["string", "null"] }, 
                  "PaymentMethods": {
                    "description": "Payment methods", 
                    "type": ["array", "null"], 
                    "items": {
                      "type": "object", 
                      "properties": {
                        "Amount": {
                          "description": "Total amount applied to payment method", 
                          "type": ["number", "null"]
                        }, 
                        "MethodName": { "description": "Name of payment method", "type": ["string", "null"] }
                      }, 
                      "required": ["Amount", "MethodName"]
                    }
                  }, 
                  "PickPackHandlingFee": { "description": "Pick pack handling fee", "type": ["number", "null"] }, 
                  "RushFee": { "description": "Rush fee", "type": ["number", "null"] }, 
                  "RushOrder": { "description": "Whether this is a rush order", "type": ["boolean", "null"] }, 
                  "ShipToAddress": {
                    "description": "Ship to address", 
                    "type": ["object", "null"], 
                    "properties": {
                      "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
                      "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
                      "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
                      "City": { "description": "City name for address", "type": ["string", "null"] }, 
                      "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
                      "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
                      "EmailAddress": {
                        "description": "Contact email address for address", 
                        "type": ["string", "null"]
                      }, 
                      "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
                      "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
                      "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
                      "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
                      "StateProvince": {
                        "description": "State or province name for address", 
                        "type": ["string", "null"]
                      }
                    }
                  }, 
                  "ShippingCarrier": { "description": "Shipping carrier", "type": ["string", "null"] }, 
                  "ShippingCost": { "description": "Shipping cost", "type": ["number", "null"] }, 
                  "ShippingHandlingTax": { "description": "Shipping handling tax", "type": ["number", "null"] }, 
                  "ShippingService": { "description": "Shipping service", "type": ["string", "null"] }, 
                  "Status": { "description": "Status", "type": ["string", "null"] }, 
                  "TotalOrderFee": { "description": "Total order fee", "type": ["number", "null"] }
                }
              }
            }, 
            "ShippingHandlingTax": { "description": "Shipping handling tax", "type": ["number", "null"] }, 
            "Statuses": {
              "description": "Order statuses - critical for OrderView as it's used for OrderStatus property in Service Bus messages", 
              "type": ["array", "null"], 
              "items": {"type": "string"}
            }, 
            "TotalOrderFee": { "description": "Total order fee", "type": ["number", "null"] }, 
            "TotalShippingCost": { "description": "Total shipping cost", "type": ["number", "null"] }
          }, 
          "required": ["OrderId", "LineItems", "BillTos", "ShipTos"]
        }
      }, 
      "required": ["OrderView"]
    }, 
    {
      "type": "object", 
      "properties": {
        "EventName": {
          "description": "Name of triggered event for OrderView", 
          "type": "string", 
          "enum": [
            "OrderView Created", "OrderView Updated", "OrderView Status Changed", 
            "OrderView View Updated", "OrderView View Refreshed"
          ]
        }
      }
    }
  ], 
  "examples": [
    {
      "AggregateId": "2-gbdstorefrontcust-2-P-4692-3606-50", 
      "CorrelationId": "ae7f8b49-f36a-4b6e-9444-8f22f11a6fe3", 
      "_rid": "s7l1AJVVwJcLwwIAAAAAAA==", 
      "id": "aa2ec6a5-baf9-43ff-9002-3d25892fbb2a", 
      "AggregateType": "OrderView", 
      "EventActionUser": null, 
      "EventDateTimeUtc": "2024-11-20T20:26:38.55", 
      "EventName": "OrderView Updated", 
      "EventNameValuePairs": null, 
      "EventPublisherApp": "OrderBroker ViewOrder Event Publisher", 
      "EventSchemaVersion": "1.6.1", 
      "EventSource": "OrderBroker", 
      "OrderView": {
        "OmsCustomerId": "001146", 
        "OmsId": "1", 
        "OmsOrderId": "2-gbdstorefrontcust-2-P-4692-3606-50", 
        "OrderId": "2-gbdstorefrontcust-2-P-4692-3606-50", 
        "ReferenceId": "2-P-4692-3606-50", 
        "SourceSystemCustomerId": null, 
        "SourceSystemId": null, 
        "SourceSystemOrderId": null, 
        "AccessGroups": ["IN"], 
        "AffiliateIdentifier": 9, 
        "AffiliateName": "ZT - iHPqWad", 
        "BillTos": [
          {
            "Address1": "77185 Juan Ford Apt. 265", 
            "Address2": "", 
            "Address3": "", 
            "City": "Lovechester", 
            "Company": "", 
            "Country": "USA", 
            "EmailAddress": "cody09@example.com", 
            "FaxNumber": "", 
            "IsDeleted": null, 
            "Key": 0, 
            "Name": "Leslie Harmon", 
            "PhoneNumber": "377.454.4845", 
            "PostalCode": "52209", 
            "StateProvince": "Georgia"
          }
        ], 
        "CostCenter": "6342091000- IN Medicaid Case Mgmt", 
        "CreateDateTime": null, 
        "CreditCardFee": null, 
        "DefaultBillToKey": 0, 
        "DefaultOrderedByKey": 0, 
        "DefaultShipToKey": null, 
        "DueDate": null, 
        "LineItems": [
          {
            "OfferId": "1-001146-23788", 
            "ProductManagementSystemCustomerId": "001146", 
            "ProductManagementSystemId": 1, 
            "ReferenceId": null, 
            "VariableTemplatePrintId": null, 
            "AdditionalProperties": [], 
            "BillToKey": null, 
            "Comment": "1022385INMENABS Rev. 11/22 PM:https://xxxxx.cloudfront.net/temporary/example.pdf,e47de917-5db4-45dc-9079-203690246f0a.pdf", 
            "CostCenter": null, 
            "DueDate": null, 
            "IsDeleted": false, 
            "LineItemFee": 0, 
            "OfferDescription": "Important Phone Numbers Update SH MKT (IN)", 
            "OfferLineNumber": "15602", 
            "OfferNumber": "1022385INMENABS Rev. 11/22 PM", 
            "OrderedByKey": null, 
            "PONumber": null, 
            "Price": 35, 
            "Products": [], 
            "QuantityCanceled": null, 
            "QuantityOrdered": 1, 
            "RushOrder": null, 
            "ShipToKey": 0, 
            "Status": null, 
            "TaxAmount": 0
          }
        ], 
        "ModifiedDateTime": "2024-11-20T14:26:38", 
        "OmsCustomerName": "Ryan Griffin", 
        "OrderFee": null, 
        "OrderVariables": {}, 
        "OrderedBys": [
          {
            "Address1": "28133 Derrick Rapids", 
            "Address2": "", 
            "Address3": "", 
            "City": "New Emilyside", 
            "Company": "", 
            "Country": "USA", 
            "EmailAddress": "sarah01@example.com", 
            "FaxNumber": "", 
            "IsDeleted": null, 
            "Key": 0, 
            "Name": "Dawn Conway", 
            "PhoneNumber": "+1-963-434-5913x919", 
            "PostalCode": 9945, 
            "StateProvince": "Montana"
          }
        ], 
        "PONumber": "", 
        "PaymentMethods": null, 
        "PickPackHandlingFee": null, 
        "RushOrder": false, 
        "ShipTos": null, 
        "ShippingHandlingTax": null, 
        "Statuses": ["Order In Process"], 
        "TotalOrderFee": null, 
        "TotalShippingCost": null
      }, 
      "_attachments": "attachments/", 
      "_etag": "\"080066e6-0000-0300-0000-673e47300000\"", 
      "_self": "dbs/s7l1AA==/colls/s7l1AJVVwJc=/docs/s7l1AJVVwJcLwwIAAAAAAA==/", 
      "_ts": 1732134704
    }
  ]
}