Zum Inhalt
HALOWERK

Propwerk

occupancy optimize

Sorts groups by size, then assigns each to the available room that has all required features and minimizes unused capacity, hourly cost and room identifier in that order. This fast heuristic is not guaranteed globally optimal and does not handle time overlap, accessibility beyond supplied features, movement, privacy or building-code constraints.

POST https://prop.halowerk.com/v1/occupancy-optimize

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
roomsarrayJa
groupsarrayJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "required": [
    "rooms",
    "groups"
  ],
  "additionalProperties": false,
  "properties": {
    "rooms": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10000,
      "items": {
        "type": "object",
        "required": [
          "room_id",
          "capacity",
          "hourly_cost",
          "features"
        ],
        "additionalProperties": false,
        "properties": {
          "room_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "capacity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000
          },
          "hourly_cost": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000
          },
          "features": {
            "type": "array",
            "maxItems": 1000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        }
      }
    },
    "groups": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10000,
      "items": {
        "type": "object",
        "required": [
          "group_id",
          "people",
          "required_features"
        ],
        "additionalProperties": false,
        "properties": {
          "group_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "people": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000
          },
          "required_features": {
            "type": "array",
            "maxItems": 1000,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        }
      }
    }
  }
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "rooms": [
    {
      "room_id": "r-101",
      "capacity": 8,
      "hourly_cost": 40,
      "features": [
        "screen"
      ]
    },
    {
      "room_id": "r-202",
      "capacity": 14,
      "hourly_cost": 65,
      "features": [
        "screen",
        "video"
      ]
    },
    {
      "room_id": "r-303",
      "capacity": 20,
      "hourly_cost": 72,
      "features": [
        "screen",
        "video",
        "accessible"
      ]
    }
  ],
  "groups": [
    {
      "group_id": "design",
      "people": 12,
      "required_features": [
        "video"
      ]
    },
    {
      "group_id": "review",
      "people": 7,
      "required_features": [
        "screen"
      ]
    }
  ]
}

Ergebnis & Dokumentation

Veröffentlichtes Ergebnisschema anzeigen
{
  "$ref": "https://prop.halowerk.com/v1/occupancy-optimize/schema#/outputSchema"
}

Veröffentlichtes Ergebnisbeispiel öffnen

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →