Skip to main content

Call Signature

function cover<T, R>(
   timeName,
   target,
   count,
opts?): CoverageEntry<T, R>;
Defines a staffing requirement for a semantic time period.

Type Parameters

T

T extends string

R

R extends string

Parameters

timeName

T
Name of a declared semantic time

target

Role name (string), array of role names (OR logic), or skill name R | [R, ...R[]]

count

number
Number of people needed

opts?

CoverageOptions Options: skillIds (AND filter), dayOfWeek, dates, priority

Returns

CoverageEntry<T, R>

Remarks

Entries for the same time and role stack additively. For weekday vs weekend staffing, use mutually exclusive dayOfWeek on both entries.

Example

coverage: [
  // 2 waiters during lunch
  cover("lunch", "waiter", 2),

  // 1 manager OR supervisor during dinner
  cover("dinner", ["manager", "supervisor"], 1),

  // 1 person with keyholder skill at opening
  cover("opening", "keyholder", 1),

  // 1 senior waiter (role + skill AND)
  cover("lunch", "waiter", 1, { skillIds: ["senior"] }),

  // Different counts by day (mutually exclusive dayOfWeek!)
  cover("lunch", "waiter", 2, { dayOfWeek: weekdays }),
  cover("lunch", "waiter", 3, { dayOfWeek: weekend }),
]

Call Signature

function cover<T, R>(
   timeName,
   target, ...
variants): CoverageEntry<T, R>;
Defines a staffing requirement for a semantic time period.

Type Parameters

T

T extends string

R

R extends string

Parameters

timeName

T
Name of a declared semantic time

target

Role name (string), array of role names (OR logic), or skill name R | [R, ...R[]]

variants

…[CoverageVariant, ...CoverageVariant[]]

Returns

CoverageEntry<T, R>

Remarks

Entries for the same time and role stack additively. For weekday vs weekend staffing, use mutually exclusive dayOfWeek on both entries.

Example

coverage: [
  // 2 waiters during lunch
  cover("lunch", "waiter", 2),

  // 1 manager OR supervisor during dinner
  cover("dinner", ["manager", "supervisor"], 1),

  // 1 person with keyholder skill at opening
  cover("opening", "keyholder", 1),

  // 1 senior waiter (role + skill AND)
  cover("lunch", "waiter", 1, { skillIds: ["senior"] }),

  // Different counts by day (mutually exclusive dayOfWeek!)
  cover("lunch", "waiter", 2, { dayOfWeek: weekdays }),
  cover("lunch", "waiter", 3, { dayOfWeek: weekend }),
]