diff --git a/OpenActive.NET.Generator/package-lock.json b/OpenActive.NET.Generator/package-lock.json
index a19dd36..cf38d8d 100644
--- a/OpenActive.NET.Generator/package-lock.json
+++ b/OpenActive.NET.Generator/package-lock.json
@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"@openactive/data-models": {
- "version": "2.0.174",
- "resolved": "https://registry.npmjs.org/@openactive/data-models/-/data-models-2.0.174.tgz",
- "integrity": "sha512-Qs4dDJEja8lfvE/CrECf9IroGrqbhotoqitvOUdJZlS6/AixguN23xlAZQS1R4JAiSQMtbCLAib3m5s39DqGsw=="
+ "version": "2.0.177",
+ "resolved": "https://registry.npmjs.org/@openactive/data-models/-/data-models-2.0.177.tgz",
+ "integrity": "sha512-aFqRG5e1j+A+XjRtemSYjZboEpwu5P0HT2i4/4GzuD2g1khRqMRP+k2t6Vuf4PCr9T9wKw3Y5LWEn9q287ivQg=="
},
"@types/concat-stream": {
"version": "1.6.0",
diff --git a/OpenActive.NET.Generator/package.json b/OpenActive.NET.Generator/package.json
index 11a72fa..aa0abe3 100644
--- a/OpenActive.NET.Generator/package.json
+++ b/OpenActive.NET.Generator/package.json
@@ -11,7 +11,7 @@
"author": "Nick Evans",
"license": "MIT",
"dependencies": {
- "@openactive/data-models": "^2.0.174",
+ "@openactive/data-models": "^2.0.177",
"fs-extra": "^7.0.1",
"sync-request": "^6.0.0"
}
diff --git a/OpenActive.NET.Test/OrderTest.cs b/OpenActive.NET.Test/OrderTest.cs
index faea919..378f11c 100644
--- a/OpenActive.NET.Test/OrderTest.cs
+++ b/OpenActive.NET.Test/OrderTest.cs
@@ -182,6 +182,7 @@ public void OrderQuote_EncodeDecode()
"\"@id\":\"https://example.com/events/452#/offers/878\"," +
"\"name\":\"Speedball winger position\"," +
"\"description\":\"Winger space for Speedball.\"," +
+ "\"allowCustomerCancellationFullRefund\":true," +
"\"latestCancellationBeforeStartDate\":\"P1D\"," +
"\"price\":0," +
"\"priceCurrency\":\"GBP\"," +
@@ -193,7 +194,6 @@ public void OrderQuote_EncodeDecode()
"\"text\":\"0123456789\"" +
"}" +
"]," +
- "\"allowCustomerCancellationFullRefund\":true," +
"\"orderedItem\":{" +
"\"@type\":\"ScheduledSession\"," +
"\"@id\":\"https://example.com/events/452/subEvents/132\"," +
diff --git a/OpenActive.NET/models/Offer.cs b/OpenActive.NET/models/Offer.cs
index 88fd3fa..13ec85d 100644
--- a/OpenActive.NET/models/Offer.cs
+++ b/OpenActive.NET/models/Offer.cs
@@ -149,10 +149,18 @@ public override string ToString()
public virtual QuantitativeValue AgeRestriction { get; set; }
+ ///
+ /// Whether the opportunity can be cancelled with a full refund at any time before the `startDate`, or before the `latestCancellationBeforeStartDate` if provided.
+ ///
+ [DataMember(Name = "allowCustomerCancellationFullRefund", EmitDefaultValue = false, Order = 14)]
+ [JsonConverter(typeof(ValuesConverter))]
+ public virtual bool? AllowCustomerCancellationFullRefund { get; set; }
+
+
///
/// The channels through which a booking can be made.
///
- [DataMember(Name = "availableChannel", EmitDefaultValue = false, Order = 14)]
+ [DataMember(Name = "availableChannel", EmitDefaultValue = false, Order = 15)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual List AvailableChannel { get; set; }
@@ -160,7 +168,7 @@ public override string ToString()
///
/// The duration before the startDate during which this Offer may not be cancelled, given in ISO 8601 format.
///
- [DataMember(Name = "latestCancellationBeforeStartDate", EmitDefaultValue = false, Order = 15)]
+ [DataMember(Name = "latestCancellationBeforeStartDate", EmitDefaultValue = false, Order = 16)]
[JsonConverter(typeof(OpenActiveTimeSpanToISO8601DurationValuesConverter))]
public virtual TimeSpan? LatestCancellationBeforeStartDate { get; set; }
@@ -168,7 +176,7 @@ public override string ToString()
///
/// Can include https://openactive.io/OpenBookingIntakeForm, https://openactive.io/OpenBookingAttendeeDetails, https://openactive.io/OpenBookingApproval, https://openactive.io/OpenBookingNegotiation, https://openactive.io/OpenBookingMessageExchange
///
- [DataMember(Name = "openBookingFlowRequirement", EmitDefaultValue = false, Order = 16)]
+ [DataMember(Name = "openBookingFlowRequirement", EmitDefaultValue = false, Order = 17)]
[JsonConverter(typeof(ValuesConverter))]
public virtual List OpenBookingFlowRequirement { get; set; }
@@ -181,7 +189,7 @@ public override string ToString()
/// "prepayment": "https://openactive.io/Required"
///
///
- [DataMember(Name = "prepayment", EmitDefaultValue = false, Order = 17)]
+ [DataMember(Name = "prepayment", EmitDefaultValue = false, Order = 18)]
[JsonConverter(typeof(ValuesConverter))]
public virtual RequiredStatusType? Prepayment { get; set; }
@@ -197,7 +205,7 @@ public override string ToString()
/// "price": 33
///
///
- [DataMember(Name = "price", EmitDefaultValue = false, Order = 18)]
+ [DataMember(Name = "price", EmitDefaultValue = false, Order = 19)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual decimal? Price { get; set; }
@@ -210,7 +218,7 @@ public override string ToString()
/// "priceCurrency": "GBP"
///
///
- [DataMember(Name = "priceCurrency", EmitDefaultValue = false, Order = 19)]
+ [DataMember(Name = "priceCurrency", EmitDefaultValue = false, Order = 20)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual string PriceCurrency { get; set; }
@@ -223,7 +231,7 @@ public override string ToString()
/// "url": "http://www.rphs.org.uk/"
///
///
- [DataMember(Name = "url", EmitDefaultValue = false, Order = 20)]
+ [DataMember(Name = "url", EmitDefaultValue = false, Order = 21)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual Uri Url { get; set; }
@@ -231,7 +239,7 @@ public override string ToString()
///
/// The duration before the startDate for which this Offer is valid, given in ISO 8601 format. This is a relatively-defined equivalent of schema:validFrom, to allow for Offer inheritance.
///
- [DataMember(Name = "validFromBeforeStartDate", EmitDefaultValue = false, Order = 21)]
+ [DataMember(Name = "validFromBeforeStartDate", EmitDefaultValue = false, Order = 22)]
[JsonConverter(typeof(OpenActiveTimeSpanToISO8601DurationValuesConverter))]
public virtual TimeSpan? ValidFromBeforeStartDate { get; set; }
@@ -242,7 +250,7 @@ public override string ToString()
///
/// If you are using this property, please join the discussion at proposal [#250](https://github.com/openactive/modelling-opportunity-data/issues/250).
///
- [DataMember(Name = "beta:partySize", EmitDefaultValue = false, Order = 1022)]
+ [DataMember(Name = "beta:partySize", EmitDefaultValue = false, Order = 1023)]
[JsonConverter(typeof(ValuesConverter))]
public virtual QuantitativeValue PartySize { get; set; }
diff --git a/OpenActive.NET/models/OfferOverride.cs b/OpenActive.NET/models/OfferOverride.cs
index e39115b..9a68bb9 100644
--- a/OpenActive.NET/models/OfferOverride.cs
+++ b/OpenActive.NET/models/OfferOverride.cs
@@ -59,6 +59,10 @@ public override string ToString()
public override QuantitativeValue AgeRestriction { get; set; }
+ [Obsolete("This property is disinherited in this type, and must not be used.", true)]
+ public override bool? AllowCustomerCancellationFullRefund { get; set; }
+
+
[Obsolete("This property is disinherited in this type, and must not be used.", true)]
public override List AvailableChannel { get; set; }
diff --git a/OpenActive.NET/models/OrderItem.cs b/OpenActive.NET/models/OrderItem.cs
index f35318b..f02a989 100644
--- a/OpenActive.NET/models/OrderItem.cs
+++ b/OpenActive.NET/models/OrderItem.cs
@@ -79,18 +79,10 @@ public override string ToString()
public virtual List AccessPass { get; set; }
- ///
- /// Whether the event can be cancelled.
- ///
- [DataMember(Name = "allowCustomerCancellationFullRefund", EmitDefaultValue = false, Order = 11)]
- [JsonConverter(typeof(ValuesConverter))]
- public virtual bool? AllowCustomerCancellationFullRefund { get; set; }
-
-
///
/// The person attending the Opportunity related to the OrderItem.
///
- [DataMember(Name = "attendee", EmitDefaultValue = false, Order = 12)]
+ [DataMember(Name = "attendee", EmitDefaultValue = false, Order = 11)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual Person Attendee { get; set; }
@@ -98,7 +90,7 @@ public override string ToString()
///
/// The properties of `schema:Person` that are required to describe an `attendee` for this `OrderItem`.
///
- [DataMember(Name = "attendeeDetailsRequired", EmitDefaultValue = false, Order = 13)]
+ [DataMember(Name = "attendeeDetailsRequired", EmitDefaultValue = false, Order = 12)]
[JsonConverter(typeof(ValuesConverter))]
public virtual List AttendeeDetailsRequired { get; set; }
@@ -106,7 +98,7 @@ public override string ToString()
///
/// A message set by the Seller in the event of Opportunity cancellation, only applicable for an `Order` and where the `OrderItem` has `orderItemStatus` set to `https://openactive.io/SellerCancelled`
///
- [DataMember(Name = "cancellationMessage", EmitDefaultValue = false, Order = 14)]
+ [DataMember(Name = "cancellationMessage", EmitDefaultValue = false, Order = 13)]
[JsonConverter(typeof(ValuesConverter))]
public virtual string CancellationMessage { get; set; }
@@ -114,7 +106,7 @@ public override string ToString()
///
/// A message set by the Seller to trigger a notification to the Customer, only applicable for an `Order` and where the `OrderItem` has `orderItemStatus` set to `https://openactive.io/OrderItemConfirmed` or `https://openactive.io/CustomerAttended`
///
- [DataMember(Name = "customerNotice", EmitDefaultValue = false, Order = 15)]
+ [DataMember(Name = "customerNotice", EmitDefaultValue = false, Order = 14)]
[JsonConverter(typeof(ValuesConverter))]
public virtual string CustomerNotice { get; set; }
@@ -122,7 +114,7 @@ public override string ToString()
///
/// Array of errors related to the OrderItem being included in the Order, only applicable for an OrderQuote.
///
- [DataMember(Name = "error", EmitDefaultValue = false, Order = 16)]
+ [DataMember(Name = "error", EmitDefaultValue = false, Order = 15)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual List Error { get; set; }
@@ -130,7 +122,7 @@ public override string ToString()
///
/// The specific bookable Thing that has been selected by the Customer. See the [Modelling-Opportunity-Data] for more information on these types. Note that the Broker Request and Orders feed only require id within these objects to be included; in these contexts, all other properties are ignored.
///
- [DataMember(Name = "orderedItem", EmitDefaultValue = false, Order = 17)]
+ [DataMember(Name = "orderedItem", EmitDefaultValue = false, Order = 16)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual Event OrderedItem { get; set; }
@@ -138,7 +130,7 @@ public override string ToString()
///
/// PropertyValueSpecifications that describe fields in the orderItemIntakeForm.
///
- [DataMember(Name = "orderItemIntakeForm", EmitDefaultValue = false, Order = 18)]
+ [DataMember(Name = "orderItemIntakeForm", EmitDefaultValue = false, Order = 17)]
[JsonConverter(typeof(ValuesConverter))]
public virtual List OrderItemIntakeForm { get; set; }
@@ -146,7 +138,7 @@ public override string ToString()
///
/// PropertyValues that contains a text value responses to the orderItemIntakeForm.
///
- [DataMember(Name = "orderItemIntakeFormResponse", EmitDefaultValue = false, Order = 19)]
+ [DataMember(Name = "orderItemIntakeFormResponse", EmitDefaultValue = false, Order = 18)]
[JsonConverter(typeof(ValuesConverter))]
public virtual List OrderItemIntakeFormResponse { get; set; }
@@ -154,7 +146,7 @@ public override string ToString()
///
///
///
- [DataMember(Name = "orderItemStatus", EmitDefaultValue = false, Order = 20)]
+ [DataMember(Name = "orderItemStatus", EmitDefaultValue = false, Order = 19)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual OrderItemStatus? OrderItemStatus { get; set; }
@@ -162,7 +154,7 @@ public override string ToString()
///
/// An integer representing the order of OrderItems within the array.
///
- [DataMember(Name = "position", EmitDefaultValue = false, Order = 21)]
+ [DataMember(Name = "position", EmitDefaultValue = false, Order = 20)]
[JsonConverter(typeof(ValuesConverter))]
public new virtual long? Position { get; set; }
@@ -170,7 +162,7 @@ public override string ToString()
///
/// Breakdown of tax payable for the OrderItem.
///
- [DataMember(Name = "unitTaxSpecification", EmitDefaultValue = false, Order = 22)]
+ [DataMember(Name = "unitTaxSpecification", EmitDefaultValue = false, Order = 21)]
[JsonConverter(typeof(ValuesConverter))]
public virtual List UnitTaxSpecification { get; set; }