Přeskočit obsah

Lokace — Locations

Správa hierarchické struktury lokací (budovy, patra, místnosti, sklady…).

Base path: /api/locations


Endpointy

POST /api/locations — Vytvoření lokace

POST /api/locations
Content-Type: application/json
{
  "name": "Kancelář 201",
  "code": "K201",
  "parentLocationId": 3
}
Pole Typ Popis
name string Název lokace
code string? Kód / zkratka
parentLocationId long? Nadřazená lokace (null = kořen)

Response 201 Created — vytvořená lokace.


GET /api/locations — Seznam všech lokací

GET /api/locations

Vrátí plochý seznam všech lokací (bez hierarchického uspořádání).


GET /api/locations/{id} — Detail lokace

GET /api/locations/5?includeChilds=true
Parametr Výchozí Popis
includeChilds false Zahrnout podlokace

Response 200 OK:

{
  "oid": 5,
  "name": "2. patro",
  "code": "2NP",
  "parentLocationId": 1,
  "parentLocation": { "oid": 1, "name": "Budova A" },
  "childLocations": [
    { "oid": 6, "name": "Kancelář 201", "code": "K201" },
    { "oid": 7, "name": "Kancelář 202", "code": "K202" }
  ]
}

GET /api/locations/findByName

GET /api/locations/findByName?name=kancelář&filterOp=Contains

PUT /api/locations/{id} — Aktualizace lokace

PUT /api/locations/5
Content-Type: application/json

{
  "oid": 5,
  "name": "2. patro — přejmenováno",
  "code": "2NP",
  "parentLocationId": 1
}

GET /api/locations/{id}/articles — Majetek na lokaci

GET /api/locations/5/articles

Vrátí seznam majetku (Article) evidovaného na dané lokaci přes ArticleLocation.


Datový model Location

Pole Typ Popis
OID long Primární klíč
Name string Název lokace
Code string? Kód / zkratka
ParentLocationId long? FK → Location (self-reference, null = kořenová lokace)
ParentLocation Location? Navigační vlastnost na nadřazenou lokaci
ChildLocations List\<Location> Navigační vlastnost na podlokace

Příklad hierarchie

Budova A (OID: 1, ParentLocationId: null)
├─ Přízemí (OID: 2, ParentLocationId: 1)
│  ├─ Recepce (OID: 3, ParentLocationId: 2)
│  └─ Zasedací místnost (OID: 4, ParentLocationId: 2)
└─ 2. patro (OID: 5, ParentLocationId: 1)
   ├─ Kancelář 201 (OID: 6, ParentLocationId: 5)
   └─ Kancelář 202 (OID: 7, ParentLocationId: 5)