Skip to content

BookingDate

property type description derived from evaluated when
pk String Partition key "bookingDate::\" Constructing the primary key for this BookingDate based on its associated Booking
sk String Sort key "\" Constructing the sort key for this BookingDate based on its date
gsi1pk String Global secondary index partition key Reserved Reserved
gsi1sk String Global secondary index sort key Reserved Reserved
schema String Data type/Schema "bookingDate" Identifying that this item is a "bookingDate"
globalId String Globally unique UUID Automatically generating on BookingDate creation Ensuring that each BookingDate has a unique identifier
bookingId String The ID of the Booking this BookingDate is associated with Derived from the parent Booking's ID Linking this BookingDate to its parent Booking
user String The user sub of the customer who made the Booking Derived from the parent Booking's customer information Associating this BookingDate with the user who made the booking for access control and querying purposes
date Date The specific date this BookingDate represents Derived from the reservation details of the Booking Identifying which date this BookingDate corresponds to within the Booking's itinerary
inventory [PrimaryKey] The specific inventory items that are reserved for this date Derived from the reservation details of the Booking Specifying which inventory items are allocated for this BookingDate based on the reservations made in the Booking
reservationSnapshot BookingDateReservationSnapshot The snapshot of the reservation details for this date at the time of booking Derived from the reservations made in the Booking for this date Capturing the specific reservation details for this date based on the Booking's reservations at the moment it was created
reservationValues BookingDateReservationValues The snapshot of the reservation values for this date at the time of booking Derived from the reservations made in the Booking for this date Capturing the specific reservation values for this date based on the Booking's reservations at the moment it was created
partyValues BookingDatePartyValues The snapshot of the party composition values for this date at the time of booking Derived from the reservations made in the Booking for this date Capturing the specific party composition values for this date based on the Booking's reservations at the moment it was created
feePolicySnapshot BookingDateFeePolicySnapshot The snapshot of the fee policy details for this date at the time of booking Derived from the parent Product's referenced Fee Policy at the time of booking Capturing the specific fee policy details for this date based on the Product's Fee Policy at the moment it was created
feeValues BookingDateFeeValues The snapshot of the fee values for this date at the time of booking Derived from the fee policy details and reservation details for this date Capturing the specific fee values for this date based on the fee policy and reservation details at the moment it was created

BookingDateReservationSnapshot

property type description derived from evaluated when
isDiscoverable Boolean Was the reservation for this date discoverable? Derived from the ProductDate's isDiscoverable value Determining if the reservation for this date was discoverable at the time of booking
isReservable Boolean Was the reservation for this date reservable? Derived from the ProductDate's isReservable value Determining if the reservation for this date was reservable at the time of booking
minDailyInventory Number What was the minimum daily inventory allowed for this date? Derived from the ProductDate's minDailyInventory value Capturing the minimum daily inventory for this date at the time of booking
maxDailyInventory Number What was the maximum daily inventory allowed for this date? Derived from the ProductDate's maxDailyInventory value Capturing the maximum daily inventory for this date at the time of booking
temporalAnchors BookingDateResolvedTemporalAnchors What were the temporal anchors for this date? Derived from the ProductDate's temporalWindows values Capturing the temporal anchors for this date at the time of booking
temporalWindows BookingDateResolvedTemporalWindows What were the temporal windows for this date? Derived from the ProductDate's temporalWindows values Capturing the temporal windows for this date at the time of booking

BookingDateResolvedTemporalAnchors

property type description derived from evaluated when
checkInAnchor Timestamp What was the check-in temporal anchor for this date? Derived from the ProductDate's temporalWindows values Capturing the check-in temporal anchor for this date at the time of booking
checkOutAnchor Timestamp What was the check-out temporal anchor for this date? Derived from the ProductDate's temporalWindows values Capturing the check-out temporal anchor for this date at the time of booking
noShowAnchor Timestamp What was the no-show temporal anchor for this date? Derived from the ProductDate's temporalWindows values Capturing the no-show temporal anchor for this date at the time of booking

BookingDateResolvedTemporalWindows

property type description derived from evaluated when
discoveryWindow TemporalWindow What was the discovery temporal window for this date? Derived from the ProductDate's temporalWindows.discoveryWindow value Capturing the discovery temporal window for this date at the time of booking
reservationWindow TemporalWindow What was the reservation temporal window for this date? Derived from the ProductDate's temporalWindows.reservationWindow value
restrictedBookingWindow TemporalWindow What was the restricted booking temporal window for this date? Derived from the ProductDate's temporalWindows.restrictedBookingWindow value Capturing the restricted booking temporal window for this date at the time of booking

BookingDateReservationValues

property type description derived from evaluated when
totalInventory Number The inventory count on this date The quantity of inventory items reserved for this date

PartyValues

Note that the party policy and all party composition rules are defined at the Product/Booking level and do not vary day to day, so the BookingDate does not need to capture a party policy snapshot. However, the actual party composition values can vary day to day based on the reservations made in the Booking, so those values are captured here.

property type description derived from evaluated when
isValid Boolean Is the party composition for this date valid based on the Product's party composition rules? Derived from evaluating the party composition for this date against the Product's party composition rules Determining if the party composition for this date is valid at the time of booking
partyComposition BookingDatePartyComposition The specific party composition for this date Derived from the reservations made in the Booking for this date Capturing the specific party composition for this date based on the reservations made in the Booking at the moment it was created

BookingDatePartyComposition

property type description derived from evaluated when
id String The identifier for this type of party member or equipment Derived from the Product's party composition rules Identifying the type of party member or equipment based on the Product's party composition rules
label String The label for this type of party member or equipment Derived from the Product's party composition rules Providing a human-readable label for this type of party member or equipment based on the Product's party composition rules
quantity Number The count of this type of party member or equipment for this date Derived from the reservations made in the Booking for this date Capturing the count of this type of party member or equipment for this date based on the reservations made in the Booking at the moment it was created

BookingDateFeePolicySnapshot

property type description derived from evaluated when
feeSchedule FeeSchedule The fee schedule that applies to this date Derived from the parent Product's referenced Fee Policy at the time of booking Capturing the fee schedule for this date based on the Product's Fee Policy at the moment it was created
lineItems LineItem The fee policy line items that apply to this date Derived from the parent Product's referenced Fee Policy at the time of booking Capturing the fee policy line items for this date based on the Product's Fee Policy at the moment it was created

BookingDateFeeValues

property type description derived from evaluated when
resolvedLineItems ResolvedLineItem The resolved fee line items for this Booking Derived from BookingFeePolicySnapshot and client input on Booking POST Capturing the specific fee line items for this Booking based on the fee policy snapshot and customer input
totalDiscounts [ResolvedLineItemDiscount] The total amount of discounts applied to this BookingDate Derived from the resolved line items for this BookingDate Calculating the total discounts for this BookingDate based on the resolved fee line items
totalTaxes [ResolvedLineItemTax] The total amount of taxes applied to this BookingDate Derived from the resolved line items for this BookingDate Calculating the total taxes for this BookingDate based on the resolved fee line items
subTotal Number The subtotal amount for this BookingDate before taxes Derived from the resolved line items for this BookingDate Calculating the subtotal for this BookingDate based on the resolved fee line items
total Number The total amount for this BookingDate after applying taxes and discounts Derived from the resolved line items for this BookingDate Calculating the total for this BookingDate based on the resolved fee line items, including taxes and discounts

Example BookingDate

Immediately after Booking Creation (initialization)

{
  "pk": "bookingDate::550e8400-e29b-41d4-a716-446655440000",
  "sk": "2026-02-09",
  "gsi1pk": "user::b7e6c2f2-3a1d-4e8a-9e0d-8c2a1b7e6c2f",
  "gsi1sk": "2026-02-09::bookingDate",
  "schema": "bookingDate",
  "globalId": "c3f1a8e2-7b4d-4c9a-9f2a-8e7b1c3f1a8",
  "bookingId": "550e8400-e29b-41d4-a716-446655440000",
  "userSub": "b7e6c2f2-3a1d-4e8a-9e0d-8c2a1b7e6c2f",
  "date": "2026-02-09",
  "inventory": {
    "quantity": 1,
    "items": [
      {
        "pk": "inventory::mockPark1::backcountryCamp::1::1::2026-02-09",
        "sk": "asset::mockPark1::campground::1::tentPad::6::1"
      }
    ]
  },
  "temporalContext": {
    "discoveryWindow": {
      "open": "2026-01-01T07:00:00-08:00",
      "close": "2026-12-31T23:59:59-08:00"
    },
    "reservationWindow": {
      "open": "2026-01-26T07:00:00-08:00",
      "close": "2026-02-08T23:59:59-08:00"
    },
    "restrictedBookingWindow": {
      "open": "2026-01-26T07:00:00-08:00",
      "close": "2026-01-27T07:00:00-08:00"
    },
    "productDate": "2026-02-09",
    "checkInAnchor": "2026-02-09T14:00:00-08:00",
    "checkOutAnchor": "2026-02-10T11:00:00-08:00",
    "noShowAnchor": "2026-02-09T23:59:59-08:00"
  },
  "reservationPolicySnapshot": {
    "isDiscoverable": true,
    "isReservable": true,
    "minDailyInventory": 1,
    "maxDailyInventory": 1,
    "temporalAnchors": {
      "checkInAnchor": "2026-02-09T14:00:00-08:00",
      "checkOutAnchor": "2026-02-10T11:00:00-08:00",
      "noShowAnchor": "2026-02-09T23:59:59-08:00"
    },
    "temporalWindows": {
      "discoveryWindow": {
        "open": "2026-01-01T07:00:00-08:00",
        "close": "2026-12-31T23:59:59-08:00"
      },
      "reservationWindow": {
        "open": "2026-01-26T07:00:00-08:00",
        "close": "2026-02-08T23:59:59-08:00"
      },
      "restrictedBookingWindow": {
        "open": "2026-01-26T07:00:00-08:00",
        "close": "2026-01-27T07:00:00-08:00"
      }
    }
  },
  "partyContext": {
    "isValid": false,
    "partyComposition": [
      {
        "id": "adults",
        "label": "Adults (18+)",
        "quantity": 0
      },
      {
        "id": "children",
        "label": "Children <18",
        "quantity": 0
      },
      {
        "id": "tents",
        "label": "Tents",
        "quantity": 0
      }
    ]
  },
  "feePolicySnapshot": {
    "feeSchedule": [
      {
        "id": "costPerAdult",
        "label": "Adult Nightly Fee",
        "type": "unit",
        "amount": 10
      },
      {
        "id": "costPerChild",
        "label": "Child Nightly Fee",
        "type": "unit",
        "amount": 5
      },
      {
        "id": "costPerTent",
        "label": "Tent Nightly Fee",
        "type": "unit",
        "amount": 15
      },
      {
        "id": "tax",
        "label": "Tax",
        "type": "percentage",
        "amount": 0.05
      }
    ],
    "lineItems": [
      {
        "id": "adultLineItem",
        "label": "Adult Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "partyContext.adults"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerAdult"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      },
      {
        "id": "childLineItem",
        "label": "Child Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "partyContext.children"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerChild"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      },
      {
        "id": "tentLineItem",
        "label": "Tent Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "inventory.quantity"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerTent"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      }
    ]
  },
  "feeValues": {
    "resolvedLineItems": [
      {
        "id": "adultFeeLine",
        "label": "Adult Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 0
          }
        ],
        "lineSubTotal": 0,
        "lineTotal": 0
      },
      {
        "id": "childFeeLine",
        "label": "Child Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 0
          }
        ],
        "lineSubTotal": 0,
        "lineTotal": 0
      },
      {
        "id": "tentFeeLine",
        "label": "Tent Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 0
          }
        ],
        "lineSubTotal": 0,
        "lineTotal": 0
      }
    ],
    "totalDiscounts": [],
    "totalTaxes": [
      {
        "id": "tax",
        "rate": 0.05,
        "amount": 0
      }
    ],
    "subTotal": 0,
    "total": 0
  }
}

After Booking Finalization

{
  "pk": "bookingDate::550e8400-e29b-41d4-a716-446655440000",
  "sk": "2026-02-09",
  "gsi1pk": "",
  "gsi1sk": "",
  "schema": "bookingDate",
  "globalId": "c3f1a8e2-7b4d-4c9a-9f2a-8e7b1c3f1a8",
  "bookingId": "550e8400-e29b-41d4-a716-446655440000",
  "user": "b7e6c2f2-3a1d-4e8a-9e0d-8c2a1b7e6c2f",
  "date": "2026-02-09",
  "inventory": {
    "quantity": 1,
    "items": [
      {
        "pk": "inventory::mockPark1::backcountryCamp::1::1::2026-02-09",
        "sk": "asset::mockPark1::campground::1::tentPad::6::1"
      }
    ]
  },
  "reservationPolicySnapshot": {
    "isDiscoverable": true,
    "isReservable": true,
    "minDailyInventory": 1,
    "maxDailyInventory": 1,
    "temporalAnchors": {
      "checkInAnchor": "2026-02-09T14:00:00-08:00",
      "checkOutAnchor": "2026-02-10T11:00:00-08:00",
      "noShowAnchor": "2026-02-09T23:59:59-08:00"
    },
    "temporalWindows": {
      "discoveryWindow": {
        "open": "2026-01-01T07:00:00-08:00",
        "close": "2026-12-31T23:59:59-08:00"
      },
      "reservationWindow": {
        "open": "2026-01-26T07:00:00-08:00",
        "close": "2026-02-08T23:59:59-08:00"
      },
      "restrictedBookingWindow": {
        "open": "2026-01-26T07:00:00-08:00",
        "close": "2026-01-27T07:00:00-08:00"
      }
    }
  },
  "partyContext": {
    "isValid": true,
    "partyComposition": [
      {
        "id": "adults",
        "label": "Adults (18+)",
        "quantity": 2
      },
      {
        "id": "children",
        "label": "Children <18",
        "quantity": 1
      },
      {
        "id": "tents",
        "label": "Tents",
        "quantity": 1
      }
    ]
  },
  "feePolicySnapshot": {
    "feeSchedule": [
      {
        "id": "costPerAdult",
        "label": "Adult Nightly Fee",
        "type": "unit",
        "amount": 10
      },
      {
        "id": "costPerChild",
        "label": "Child Nightly Fee",
        "type": "unit",
        "amount": 5
      },
      {
        "id": "costPerTent",
        "label": "Tent Nightly Fee",
        "type": "unit",
        "amount": 15
      },
      {
        "id": "tax",
        "label": "Tax",
        "type": "percentage",
        "amount": 0.05
      }
    ],
    "lineItems": [
      {
        "id": "adultLineItem",
        "label": "Adult Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "partyContext.adults"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerAdult"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      },
      {
        "id": "childLineItem",
        "label": "Child Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "partyContext.children"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerChild"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      },
      {
        "id": "tentLineItem",
        "label": "Tent Fee",
        "type": "unit",
        "if": [],
        "quantity": {
          "type": "ref",
          "value": "partyContext.tents"
        },
        "rate": {
          "type": "ref",
          "value": "feeSchedule.costPerTent"
        },
        "taxApplied": [
          {
            "type": "ref",
            "value": "feeSchedule.tax"
          }
        ],
        "discountsApplied": [],
        "isReturnable": true
      }
    ]
  },
  "feeValues": {
    "resolvedLineItems": [
      {
        "id": "adultFeeLine",
        "label": "Adult Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [
          {
            "rate": 10,
            "discountsApplied": [],
            "taxApplied": [
              {
                "id": "tax",
                "rate": 0.05,
                "amount": 0.50
              }
            ],
            "unitSubTotal": 10,
            "unitTotal": 10.50
          },
          {
            "rate": 10,
            "discountsApplied": [],
            "taxApplied": [
              {
                "id": "tax",
                "rate": 0.05,
                "amount": 0.50
              }
            ],
            "unitSubTotal": 10,
            "unitTotal": 10.50
          }
        ],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 1.00
          }
        ],
        "lineSubTotal": 20,
        "lineTotal": 21
      },
      {
        "id": "childFeeLine",
        "label": "Child Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [
          {
            "rate": 5,
            "discountsApplied": [],
            "taxApplied": [
              {
                "id": "tax",
                "rate": 0.05,
                "amount": 0.25
              }
            ],
            "unitSubTotal": 5,
            "unitTotal": 5.25
          }
        ],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 0.25
          }
        ],
        "lineSubTotal": 5,
        "lineTotal": 5.25
      },
      {
        "id": "tentFeeLine",
        "label": "Tent Fee",
        "type": "unit",
        "isReturnable": true,
        "units": [
          {
            "rate": 15,
            "discountsApplied": [],
            "taxApplied": [
              {
                "id": "tax",
                "rate": 0.05,
                "amount": 0.75
              }
            ],
            "unitSubTotal": 15,
            "unitTotal": 15.75
          }
        ],
        "lineDiscounts": [],
        "lineTaxes": [
          {
            "id": "tax",
            "rate": 0.05,
            "amount": 0.75
          }
        ],
        "lineSubTotal": 15,
        "lineTotal": 15.75
      }
    ],
    "totalDiscounts": [],
    "totalTaxes": [
      {
        "id": "tax",
        "rate": 0.05,
        "amount": 2.00
      }
    ],
    "subTotal": 40,
    "total": 42
  }
}