Interface: PricingMatrixRateTier
Defined in: shared/pricing/types/matrix.ts:34
One row of the matrix: a PricingRateTiers row plus its current
requirement condition ids and its cells, keyed by scheduleConditionId.
cells is sparse — a schedule with no price set for this tier is simply
absent from the record, not present with a null/zero amount.
Properties
cells
cells: Record<string, PricingMatrixCell>;Defined in: shared/pricing/types/matrix.ts:39
defaultAmountCents
defaultAmountCents: number | null;Defined in: shared/pricing/types/matrix.ts:59
The tier's default price (PLA-141) — the price charged to a line naming this
tier that matches NO schedule column. That makes it an effective price, in
both halves: evaluatePricing charges it (see applyRateTierDefaults), and
the matrix grid renders it as its own leading "All open hours" column. It is
also the value seeded into a schedule column's cells when that column is
added. cells remains the source of truth for a tier x SCHEDULE, and
changing this default never rewrites existing cells.
A line that fails the tier's requirementConditionIds is NOT charged the
default — an ineligible customer must not fall back to the eligible price.
Null when the tier has no default, in which case adding a column leaves its
cell for this tier unpriced. defaultAmountCents: 0 with a unit set is a
real default meaning "free" — the same priced-at-zero convention as
PricingMatrixCell.isFree.
Both fields move together: either both are null or both are set.
defaultPer
defaultPer: "day" | "hour" | "night" | null;Defined in: shared/pricing/types/matrix.ts:72
The default's optional SECOND axis — "$10 per attendee per hour".
Independently nullable, so it does NOT move with the pair above: a default always has an amount and a unit, and may or may not have a duration.
Surfaced here so the tier modal can round-trip what the operator chose. Before this existed the Duration select had nowhere to read from, so reopening a two-axis tier showed it empty — the selection looked discarded even when the cells were priced correctly.
defaultUnit
defaultUnit:
| "flat"
| "unit"
| "year"
| "month"
| "day"
| "hour"
| "night"
| "person"
| null;Defined in: shared/pricing/types/matrix.ts:60
description
description: string | null;Defined in: shared/pricing/types/matrix.ts:37
name
name: string;Defined in: shared/pricing/types/matrix.ts:36
rateTierId
rateTierId: string;Defined in: shared/pricing/types/matrix.ts:35
requirementConditionIds
requirementConditionIds: string[];Defined in: shared/pricing/types/matrix.ts:38