CpsatRuleRegistry, CpsatRuleConfigByName,
and CpsatRuleConfigEntryFor.
Properties
assignment-priority
assignment-priority: { preference: "prefer" | "avoid"; priority?: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY" | undefined; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
day-cost-multiplier
day-cost-multiplier: { factor: number; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
day-cost-surcharge
day-cost-surcharge: { amountPerHour: number; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
location-preference
location-preference: object & EntityScopeType<"members" | "roles" | "skills">
required
max-concurrent-assignments
max-concurrent-assignments: { assignments: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; startTime?: { hours: number; minutes: number; } | undefined; endTime?: { hours: number; minutes: number; } | undefined; } & EntityScopeType<...> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
max-consecutive-days
max-consecutive-days: object & EntityScopeType<"members" | "roles" | "skills">
required
max-days-of-week-per-period
max-days-of-week-per-period: object & EntityScopeType<"members" | "roles" | "skills">
required
max-days-week
max-days-week: { days: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType<...> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
max-hours-day
max-hours-day: { hours: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
max-hours-week
max-hours-week: { hours: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType<...> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
max-shifts-day
max-shifts-day: { shifts: number; priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
min-consecutive-days
min-consecutive-days: object & EntityScopeType<"members" | "roles" | "skills">
required
min-days-of-week-per-period
min-days-of-week-per-period: object & EntityScopeType<"members" | "roles" | "skills">
required
min-rest-between-shifts
min-rest-between-shifts: object & EntityScopeType<"members" | "roles" | "skills">
required
minimize-cost
minimize-cost: EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
overtime-daily-multiplier
overtime-daily-multiplier: { after: number; factor: number; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
overtime-daily-surcharge
overtime-daily-surcharge: { after: number; amount: number; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
overtime-tiered-multiplier
overtime-tiered-multiplier: { tiers: { after: number; factor: number; }[]; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
overtime-weekly-multiplier
overtime-weekly-multiplier: { after: number; factor: number; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
overtime-weekly-surcharge
overtime-weekly-surcharge: { after: number; amount: number; weekStartsOn?: "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" | undefined; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
target-peak-concurrent-assignments
target-peak-concurrent-assignments: { assignments: number; priority: "LOW" | "MEDIUM" | "HIGH"; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
time-cost-surcharge
time-cost-surcharge: { amountPerHour: number; window: { from: { hours: number; minutes: number; }; until: { hours: number; minutes: number; }; }; } & EntityScopeType<"members" | "roles" | "skills"> & OptionalTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required
time-off
time-off: { priority: "LOW" | "MEDIUM" | "HIGH" | "MANDATORY"; startTime?: { hours: number; minutes: number; } | undefined; endTime?: { hours: number; minutes: number; } | undefined; } & EntityScopeType<"members" | "roles" | "skills"> & RequiredTimeScopeType<"dateRange" | "dayOfWeek" | "specificDates" | "recurring">
required