Type Alias: PriceTierDefaultPrice
type PriceTierDefaultPrice = z.infer<typeof PriceTierDefaultPrice>;Defined in: shared/pricing/types/tier-form.ts:43
A tier's default price. Collected in BOTH the Add and Edit flows.
This was create-only in PLA-139, on the reasoning that a PricingRateTiers row
owned no price at all — prices lived only on per-schedule cells, so an
established tier had nothing to edit here. PLA-141 changed that: the tier now
persists a default (default_amount_cents / default_unit) whose job is to
seed the cells of schedule columns added LATER, so it outlives creation and is
editable.
It IS an effective price: a line naming this tier that matches no schedule
column is charged the default. That's why the matrix grid surfaces it as the
leading "All open hours" column, editable in place, and why evaluatePricing
charges it (see applyRateTierDefaults). A line that fails the tier's
requirement conditions is NOT charged it — an ineligible customer must not fall
back to the eligible price.
What editing it does NOT do is rewrite existing cells. Per-cell rows remain the source of truth for what a tier x SCHEDULE costs — those hold deliberate per-cell prices — so repricing one is still the matrix table's job.
amountCents is null when isFree (a free tier has no amount); it is also
allowed to be null when NOT free, meaning "no default price — seed nothing,
set cell prices later."