Interface: AddRateTierInput
Defined in: server/pricing/pricing-matrix-service.ts:69
Properties
defaultPrice?
optional defaultPrice?:
| {
amountCents: number;
per?: "day" | "hour" | "night" | null;
unit: "flat" | "unit" | "year" | "month" | "day" | "hour" | "night" | "person";
}
| null;Defined in: server/pricing/pricing-matrix-service.ts:93
Optional default price for this tier (PLA-141) — the price for a line naming this tier that matches no schedule column, so an effective price in its own right (surfaced as the matrix grid's leading "All open hours" column; pricing evaluation reading it is a follow-up).
It is not applied to any cell by this call, because a brand-new tier has no
cells yet; it seeds the cells of schedule columns added LATER. The caller
seeds the columns that already exist itself via setCellPrice, which is what
PriceTierDialog's create flow already hands back.
Union Members
Type Literal
{
amountCents: number;
per?: "day" | "hour" | "night" | null;
unit: "flat" | "unit" | "year" | "month" | "day" | "hour" | "night" | "person";
}amountCents
amountCents: number;per?
optional per?: "day" | "hour" | "night" | null;The default's optional SECOND axis, making this "$10 per attendee PER
HOUR". Persisted as default_per since the PLA-286 review — before that
the tier modal collected it with nowhere to put it, and both places a
default is SPENT (applyRateTierDefaults' fallback price and
seedCellsFromTierDefaults' new-column cells) silently dropped it and
undercharged.
unit
unit: "flat" | "unit" | "year" | "month" | "day" | "hour" | "night" | "person" = PricingUnit;null
description?
optional description?: string | null;Defined in: server/pricing/pricing-matrix-service.ts:72
name
name: string;Defined in: server/pricing/pricing-matrix-service.ts:71
organizationId
organizationId: string;Defined in: server/pricing/pricing-matrix-service.ts:70
requirementConditionIds?
optional requirementConditionIds?: string[];Defined in: server/pricing/pricing-matrix-service.ts:74
Condition ids validating eligibility for this (already-selected) tier.
scopes?
optional scopes?: {
scope_type: string;
scope_value: string[];
}[];Defined in: server/pricing/pricing-matrix-service.ts:81
Caller-supplied scoping to apply to every cell rule under this tier
(e.g. a module scope). Must NOT include a rate_tier_id entry —
addRateTier injects exactly one, using the newly-generated tier's
own id, and rejects the call if the caller tries to supply one.
scope_type
scope_type: string;scope_value
scope_value: string[];