< Return to Summary | File Generated: Tue Apr 16 2024 11:52:28 GMT+0000 (Coordinated Universal Time)

anonymous-leasing >> lease-response (OpenBookingApprovalFlow >> Multiple)

Booking Flow: OpenBookingApprovalFlow

Opportunity Type: Multiple

Feature: Leasing / Anonymous leasing, including leaseExpires (Implemented)

Test: Response at C2 includes a "lease" with a "leaseExpires" in the future

Named lease returned at C2 reserves the OrderItems for a specified length of time

Running only this test

npm start -- --runInBand test/features/leasing/anonymous-leasing/implemented/lease-response-test.js

Is this test failing?

The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.


⚠️ 29 passed with 0 failures, 195 warnings and 54 suggestions


Specs

✅ Fetch Opportunities

Local Microservice Test Interface for OrderItem 0 Request

POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities

{
  "@type": "ScheduledSession",
  "superEvent": {
    "@type": "SessionSeries",
    "organizer": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}

Response status code: 200 OK. Responded in 16.857546ms.

{
  "@context": "https://openactive.io/",
  "@type": "ScheduledSession",
  "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330"
}

Local Microservice Test Interface for OrderItem 2 Request

POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities

{
  "@type": "ScheduledSession",
  "superEvent": {
    "@type": "SessionSeries",
    "organizer": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}

Response status code: 200 OK. Responded in 18.526822ms.

{
  "@context": "https://openactive.io/",
  "@type": "ScheduledSession",
  "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1009/events/10082"
}

Local Microservice Test Interface for OrderItem 3 Request

POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}

Response status code: 200 OK. Responded in 18.862029ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823"
}

Local Microservice Test Interface for OrderItem 4 Request

POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}

Response status code: 200 OK. Responded in 19.706841ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666"
}

Local Microservice Test Interface for OrderItem 5 Request

POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}

Response status code: 200 OK. Responded in 20.100538ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498"
}

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1033%2Fevents%2F10330?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 23.806976ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330",
    "startDate": "2024-04-18T11:39:46+00:00",
    "endDate": "2024-04-18T13:08:46+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/1033",
      "identifier": 1033,
      "name": "Metal Yoga",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#bf1a5e00-cdcf-465d-8c5a-6f57040b7f7e",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Yoga"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/2",
        "identifier": 2,
        "name": "Premier Lifters",
        "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1BB",
          "streetAddress": "Greyfriars Court, Paradise Square"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": false
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": false
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": false
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": true
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": true
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": true
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7504933,
          "longitude": -1.2620685
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000002",
        "url": "https://en.wikipedia.org/wiki/Premier_Inn"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1D",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "openBookingPrepayment": "https://openactive.io/Unavailable",
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "05276 713978",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://remington.com"
      },
      "url": "https://www.example.com/sessions/1033"
    },
    "duration": "PT1H29M",
    "maximumAttendeeCapacity": 43,
    "remainingAttendeeCapacity": 43
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1009%2Fevents%2F10082?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 22.604486ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1009/events/10082",
    "startDate": "2024-04-17T19:28:46+00:00",
    "endDate": "2024-04-18T00:51:46+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/1009",
      "identifier": 1009,
      "name": "GOLDEN: Steel Running",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#72ddb2dc-7d75-424e-880a-d90eabe91381",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Running"
        }
      ],
      "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/2",
        "identifier": 2,
        "name": "Premier Lifters",
        "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1BB",
          "streetAddress": "Greyfriars Court, Paradise Square"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": false
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": false
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": false
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": true
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": true
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": true
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7504933,
          "longitude": -1.2620685
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000002",
        "url": "https://en.wikipedia.org/wiki/Premier_Inn"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07396 836224",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://alysa.org"
      },
      "url": "https://www.example.com/sessions/1009"
    },
    "duration": "PT5H23M",
    "maximumAttendeeCapacity": 33,
    "remainingAttendeeCapacity": 33
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1183%2Findividual-facility-uses%2F2%2Fslots%2F11823?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 21.761788ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823",
    "identifier": 11823,
    "duration": "PT57M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2",
      "name": "Court 2 at Wooden Cricket Net",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183",
        "identifier": 1183,
        "name": "GOLDEN: Wooden Cricket Net",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Cricket Net"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03399 358089",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://marcos.com"
        },
        "url": "https://www.example.com/facilities/1183"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 1,
    "startDate": "2024-04-24T09:55:46+00:00",
    "endDate": "2024-04-24T10:52:46+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1067%2Findividual-facility-uses%2F5%2Fslots%2F10666?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 20.901989ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666",
    "identifier": 10666,
    "duration": "PT4H28M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5",
      "name": "Court 5 at Granite Squash Court",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067",
        "identifier": 1067,
        "name": "Granite Squash Court",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/3",
          "identifier": 3,
          "name": "Stroll & Stretch",
          "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1UU",
            "streetAddress": "Norfolk Street"
          },
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.749826,
            "longitude": -1.261492
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000003",
          "url": "https://en.wikipedia.org/wiki/Shopping_center"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09097 973415",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://lacy.biz"
        },
        "url": "https://www.example.com/facilities/1067"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 1,
    "startDate": "2024-04-25T15:17:46+00:00",
    "endDate": "2024-04-25T19:45:46+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1650%2Findividual-facility-uses%2F7%2Fslots%2F16498?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 20.076733ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498",
    "identifier": 16498,
    "duration": "PT2H33M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7",
      "name": "Court 7 at Cotton Squash Court",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650",
        "identifier": 1650,
        "name": "GOLDEN: Cotton Squash Court",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "01412 178698",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://ayden.net"
        },
        "url": "https://www.example.com/facilities/1650"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      }
    ],
    "remainingUses": 1,
    "startDate": "2024-04-24T17:42:46+00:00",
    "endDate": "2024-04-24T20:15:46+00:00"
  }
}

Specs

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations

✅ C1

C1 Request

PUT https://localhost:5001/api/openbooking/order-quote-templates/790f037b-a8fb-4cde-90a3-03fa697afde9

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "brokerRole": "https://openactive.io/AgentBroker",
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com",
    "description": "A fitness app for all the community",
    "logo": {
      "@type": "ImageObject",
      "url": "http://data.myfitnessapp.org.uk/images/logo.png"
    },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Alan Peacock Way",
      "addressLocality": "Village East",
      "addressRegion": "Middlesbrough",
      "postalCode": "TS4 3AE",
      "addressCountry": "GB"
    }
  },
  "seller": "https://localhost:5001/api/identifiers/sellers/1",
  "orderedItem": [
    {
      "@type": "OrderItem",
      "position": 0,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330"
    },
    {
      "@type": "OrderItem",
      "position": 1,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330"
    },
    {
      "@type": "OrderItem",
      "position": 2,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1009/events/10082"
    },
    {
      "@type": "OrderItem",
      "position": 3,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823"
    },
    {
      "@type": "OrderItem",
      "position": 4,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666"
    },
    {
      "@type": "OrderItem",
      "position": 5,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498"
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  }
}

Response status code: 200 OK. Responded in 326.950006ms.

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "@id": "https://localhost:5001/api/openbooking/order-quotes/790f037b-a8fb-4cde-90a3-03fa697afde9",
  "lease": {
    "@type": "Lease",
    "leaseExpires": "2024-04-16T11:57:49+00:00"
  },
  "orderRequiresApproval": true,
  "bookingService": {
    "@type": "BookingService",
    "name": "Acme booking system",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ],
    "url": "https://example.com"
  },
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com"
  },
  "brokerRole": "https://openactive.io/AgentBroker",
  "orderedItem": [
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "latestCancellationBeforeStartDate": "P1D",
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330",
        "startDate": "2024-04-18T11:39:46+00:00",
        "endDate": "2024-04-18T13:08:46+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/1033",
          "name": "Metal Yoga",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/2",
            "identifier": 2,
            "name": "Premier Lifters",
            "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1BB",
              "streetAddress": "Greyfriars Court, Paradise Square"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": false
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": false
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": false
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": true
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": true
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": true
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7504933,
              "longitude": -1.2620685
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000002",
            "url": "https://en.wikipedia.org/wiki/Premier_Inn"
          },
          "url": "https://example.com/events/1033"
        },
        "maximumAttendeeCapacity": 43,
        "remainingAttendeeCapacity": 43
      },
      "position": 0,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "latestCancellationBeforeStartDate": "P1D",
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330",
        "startDate": "2024-04-18T11:39:46+00:00",
        "endDate": "2024-04-18T13:08:46+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/1033",
          "name": "Metal Yoga",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/2",
            "identifier": 2,
            "name": "Premier Lifters",
            "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1BB",
              "streetAddress": "Greyfriars Court, Paradise Square"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": false
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": false
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": false
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": true
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": true
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": true
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7504933,
              "longitude": -1.2620685
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000002",
            "url": "https://en.wikipedia.org/wiki/Premier_Inn"
          },
          "url": "https://example.com/events/1033"
        },
        "maximumAttendeeCapacity": 43,
        "remainingAttendeeCapacity": 43
      },
      "position": 1,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "latestCancellationBeforeStartDate": "P1DT16H",
        "price": 2.8,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1009/events/10082",
        "startDate": "2024-04-17T19:28:46+00:00",
        "endDate": "2024-04-18T00:51:46+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009",
          "name": "Steel Running",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/2",
            "identifier": 2,
            "name": "Premier Lifters",
            "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1BB",
              "streetAddress": "Greyfriars Court, Paradise Square"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": false
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": false
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": false
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": true
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": true
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": true
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7504933,
              "longitude": -1.2620685
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000002",
            "url": "https://en.wikipedia.org/wiki/Premier_Inn"
          },
          "url": "https://example.com/events/1009"
        },
        "maximumAttendeeCapacity": 33,
        "remainingAttendeeCapacity": 33
      },
      "position": 2,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0.56,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/1183",
            "name": "Wooden Cricket Net",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/1",
              "identifier": 1,
              "name": "Post-ercise Plaza",
              "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1AA",
                "streetAddress": "Kings Mead House"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": true
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": true
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": true
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": false
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": false
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": false
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7502,
                "longitude": -1.2674
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000001",
              "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
            },
            "url": "https://example.com/events/1183"
          },
          "name": "Court 2 at Wooden Cricket Net"
        },
        "maximumUses": 1,
        "remainingUses": 1,
        "startDate": "2024-04-24T09:55:46+00:00",
        "endDate": "2024-04-24T10:52:46+00:00"
      },
      "position": 3,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/1067",
            "name": "Granite Squash Court",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/3",
              "identifier": 3,
              "name": "Stroll & Stretch",
              "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1UU",
                "streetAddress": "Norfolk Street"
              },
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.749826,
                "longitude": -1.261492
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000003",
              "url": "https://en.wikipedia.org/wiki/Shopping_center"
            },
            "url": "https://example.com/events/1067"
          },
          "name": "Court 5 at Granite Squash Court"
        },
        "maximumUses": 1,
        "remainingUses": 1,
        "startDate": "2024-04-25T15:17:46+00:00",
        "endDate": "2024-04-25T19:45:46+00:00"
      },
      "position": 4,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/1650",
            "name": "Cotton Squash Court",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/1650"
          },
          "name": "Court 7 at Cotton Squash Court"
        },
        "maximumUses": 1,
        "remainingUses": 1,
        "startDate": "2024-04-24T17:42:46+00:00",
        "endDate": "2024-04-24T20:15:46+00:00"
      },
      "position": 5,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  },
  "seller": {
    "@type": "Organization",
    "@id": "https://localhost:5001/api/identifiers/sellers/1",
    "name": "Acme Fitness Ltd",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "GB",
      "addressLocality": "Another town",
      "addressRegion": "Oxfordshire",
      "postalCode": "OX1 1AA",
      "streetAddress": "1 Hidden Gem"
    },
    "isOpenBookingAllowed": true,
    "legalName": "Acme Fitness Ltd",
    "taxMode": "https://openactive.io/TaxGross",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ]
  },
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "openBookingPrepayment": "https://openactive.io/Required",
    "price": 2.8,
    "priceCurrency": "GBP"
  },
  "totalPaymentTax": [
    {
      "@type": "TaxChargeSpecification",
      "name": "VAT at 20%",
      "price": 0.56,
      "priceCurrency": "GBP",
      "rate": 0.2
    }
  ]
}

Specs

✅ C1 >> validation of C1

Specs

Validations

✅ Assert Opportunity Capacity (after C1)

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1033%2Fevents%2F10330?useCacheIfAvailable=true&expectedCapacity=41


Response status code: 200 OK. Responded in 38.551207ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1033/events/10330",
    "startDate": "2024-04-18T11:39:46+00:00",
    "endDate": "2024-04-18T13:08:46+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/1033",
      "identifier": 1033,
      "name": "Metal Yoga",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#bf1a5e00-cdcf-465d-8c5a-6f57040b7f7e",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Yoga"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/2",
        "identifier": 2,
        "name": "Premier Lifters",
        "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1BB",
          "streetAddress": "Greyfriars Court, Paradise Square"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": false
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": false
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": false
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": true
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": true
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": true
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7504933,
          "longitude": -1.2620685
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000002",
        "url": "https://en.wikipedia.org/wiki/Premier_Inn"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1033#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1D",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "openBookingPrepayment": "https://openactive.io/Unavailable",
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "05276 713978",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://remington.com"
      },
      "url": "https://www.example.com/sessions/1033"
    },
    "duration": "PT1H29M",
    "maximumAttendeeCapacity": 43,
    "remainingAttendeeCapacity": 41
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1009%2Fevents%2F10082?useCacheIfAvailable=true&expectedCapacity=32


Response status code: 200 OK. Responded in 37.521489ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1009/events/10082",
    "startDate": "2024-04-17T19:28:46+00:00",
    "endDate": "2024-04-18T00:51:46+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/1009",
      "identifier": 1009,
      "name": "GOLDEN: Steel Running",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#72ddb2dc-7d75-424e-880a-d90eabe91381",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Running"
        }
      ],
      "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/2",
        "identifier": 2,
        "name": "Premier Lifters",
        "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1BB",
          "streetAddress": "Greyfriars Court, Paradise Square"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": false
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": false
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": false
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": true
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": true
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": true
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7504933,
          "longitude": -1.2620685
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000002",
        "url": "https://en.wikipedia.org/wiki/Premier_Inn"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1009#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "latestCancellationBeforeStartDate": "P1DT16H",
          "openBookingFlowRequirement": [
            "https://openactive.io/OpenBookingApproval"
          ],
          "price": 2.8,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07396 836224",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://alysa.org"
      },
      "url": "https://www.example.com/sessions/1009"
    },
    "duration": "PT5H23M",
    "maximumAttendeeCapacity": 33,
    "remainingAttendeeCapacity": 32
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1183%2Findividual-facility-uses%2F2%2Fslots%2F11823?useCacheIfAvailable=true&expectedCapacity=0


Response status code: 200 OK. Responded in 432.226726ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823",
  "modified": "1713268371703",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823",
    "identifier": 11823,
    "duration": "PT57M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2",
      "name": "Court 2 at Wooden Cricket Net",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183",
        "identifier": 1183,
        "name": "GOLDEN: Wooden Cricket Net",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Cricket Net"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03399 358089",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://marcos.com"
        },
        "url": "https://www.example.com/facilities/1183"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1183/individual-facility-uses/2/slots/11823#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 0,
    "startDate": "2024-04-24T09:55:46+00:00",
    "endDate": "2024-04-24T10:52:46+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1067%2Findividual-facility-uses%2F5%2Fslots%2F10666?useCacheIfAvailable=true&expectedCapacity=0


Response status code: 200 OK. Responded in 431.294452ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666",
  "modified": "1713268371704",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666",
    "identifier": 10666,
    "duration": "PT4H28M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5",
      "name": "Court 5 at Granite Squash Court",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067",
        "identifier": 1067,
        "name": "Granite Squash Court",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/3",
          "identifier": 3,
          "name": "Stroll & Stretch",
          "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1UU",
            "streetAddress": "Norfolk Street"
          },
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.749826,
            "longitude": -1.261492
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000003",
          "url": "https://en.wikipedia.org/wiki/Shopping_center"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09097 973415",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://lacy.biz"
        },
        "url": "https://www.example.com/facilities/1067"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1067/individual-facility-uses/5/slots/10666#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 0,
    "startDate": "2024-04-25T15:17:46+00:00",
    "endDate": "2024-04-25T19:45:46+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1650%2Findividual-facility-uses%2F7%2Fslots%2F16498?useCacheIfAvailable=true&expectedCapacity=0


Response status code: 200 OK. Responded in 431.635179ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498",
  "modified": "1713268371705",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498",
    "identifier": 16498,
    "duration": "PT2H33M",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7",
      "name": "Court 7 at Cotton Squash Court",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650",
        "identifier": 1650,
        "name": "GOLDEN: Cotton Squash Court",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "01412 178698",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://ayden.net"
        },
        "url": "https://www.example.com/facilities/1650"
      }
    },
    "maximumUses": 1,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/1650/individual-facility-uses/7/slots/16498#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "openBookingFlowRequirement": [
          "https://openactive.io/OpenBookingApproval",
          "https://openactive.io/OpenBookingNegotiation"
        ],
        "openBookingPrepayment": "https://openactive.io/Unavailable",
        "price": 0,
        "priceCurrency": "GBP",
        "validFromBeforeStartDate": "P10DT25M"
      }
    ],
    "remainingUses": 0,
    "startDate": "2024-04-24T17:42:46+00:00",
    "endDate": "2024-04-24T20:15:46+00:00"
  }
}

Specs

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations