Coverage Demand Schema
Felder
Coverage Demand Schema
A continuous staffing requirement for a coverage unit (e.g. a vehicle "RTW-1", a workstation, a process). Defines which roles must be covered over which time window with which minimum headcount, and which shift-blocks the planner is allowed to compose the coverage from. Replaces the former `coverageGroup` flag and `positionSlots[]` array on shift-template — Bedarf and Schicht-Baustein are now orthogonal.
name
Coverage unit name (e.g. "RTW-1", "KTW Köln-Süd", "Helpdesk Tier 1")
shortName
Short display label (e.g. "RTW-1")
description
color
Optional UI hint color (used by planner grid and assignment cells)
isActive
Whether this demand is currently being planned
assetId
Optional reference to a physical asset (vehicle, workstation, etc.)
orgUnitId
Optional reference to the org unit responsible for this demand
crewTemplateId
Crew template the roles[] were derived from (purely informational — once roles are set, the demand owns them and the crew template can change without affecting this demand).
coverageWindow
When this demand must be covered.
mode
"ALWAYS" = continuous 24/7 coverage. "WEEKLY" = covered during the specified weekly slots only (e.g. KTW Mo–Fr 06:00–14:00).
ALWAYSWEEKLYweeklySlots
Required only when mode = WEEKLY. Each slot defines a contiguous window.
daysOfWeek
Weekdays the slot applies to. 0 = Sunday … 6 = Saturday.
startTime
endTime
If endTime <= startTime, the slot wraps to the next day.
excludedDates
Specific dates with no coverage demand (holidays, planned downtime).
allowedBlockIds
IDs of shift-blocks the planner may use to staff this demand. RTW-1 might list [24h, 12h-Tag, 12h-Nacht]; RTW-3 only [24h]; KTW only [8h-Früh].
roles
Roles that must be covered continuously inside coverageWindow.
slotId
Stable identifier of this role within the demand (used by assignments).
name
minHeadcount
maxHeadcount
isMandatory
If true, demand is infeasible without this role filled.
requiredSkills
allowedBlockIdsOverride
Optional per-role override of allowedBlockIds (e.g. "Fahrer immer 24h, NotSan frei mischbar"). When null, the demand-level allowedBlockIds apply.
note
validFrom
First date this demand is active (inclusive). Null = no lower bound.
validTo
Last date this demand is active (inclusive). Null = open-ended.
notes
Keine Felder passen zum Filter.
Standard-Endpoints
Diese Resource folgt dem generischen CRUD-Vertrag der Plattform. Lesen Sie die Konventionen für Pagination, Idempotenz, Optimistic Locking und Audit. Die wichtigsten Endpoints:
GET /api/v1/coverage_demands— Liste, paginiert + filterbarGET /api/v1/coverage_demands/<id>— Einzelne EntityPOST /api/v1/coverage_demands— AnlegenPATCH /api/v1/coverage_demands/<id>— Teil-UpdateDELETE /api/v1/coverage_demands/<id>— Soft-DeleteGET /api/v1/coverage_demands/<id>/timeline— Audit + Aktivitäten