Přeskočit na hlavní obsah

Items and Assets API

API reference pro endpointy správy items (typových karet) a assets (konkrétních kusů).

Přehled

Items API poskytuje endpointy pro správu typových karet vybavení a konkrétních fyzických kusů (assets).

Oprávnění: Většina endpointů vyžaduje autentizaci. CRUD operace jsou dostupné pouze Adminům.

Endpointy

GET /items

Seznam všech items s paginací.

Oprávnění: Bearer token (vyžaduje autentizaci)

Query parametry:

  • page (volitelné): Číslo stránky (výchozí: 1)
  • pageSize (volitelné): Počet položek na stránku (výchozí: 50)

Response:

{
"success": true,
"data": {
"items": [
{
"id": 1,
"name": "Microphone Shure SM58",
"category_id": 5,
"is_serialized": 1,
"notes": "Wireless microphone",
"created_at": 1704067200
}
],
"pagination": {
"total": 100,
"page": 1,
"pageSize": 50,
"totalPages": 2
}
}
}

GET /items/:id

Získání detailu itemu.

Oprávnění: Bearer token (vyžaduje autentizaci)

Response:

{
"success": true,
"data": {
"id": 1,
"name": "Microphone Shure SM58",
"category_id": 5,
"is_serialized": 1,
"notes": "Wireless microphone",
"created_at": 1704067200
}
}

POST /items

Vytvoření nového itemu.

Oprávnění: Admin

Request:

{
"name": "Microphone Shure SM58",
"category_id": 5,
"is_serialized": true,
"notes": "Wireless microphone"
}

Response:

{
"success": true,
"data": {
"id": 1,
"name": "Microphone Shure SM58",
"category_id": 5,
"is_serialized": 1,
"notes": "Wireless microphone",
"created_at": 1704067200
}
}

PUT /items/:id

Aktualizace itemu.

Oprávnění: Admin

Request:

{
"name": "Microphone Shure SM58 Updated",
"category_id": 5,
"is_serialized": true,
"notes": "Updated notes"
}

DELETE /items/:id

Smazání itemu.

Oprávnění: Admin

Response:

{
"success": true,
"data": {
"message": "Item deleted"
}
}

GET /categories

Seznam všech kategorií.

Oprávnění: Bearer token (vyžaduje autentizaci)

Response:

{
"success": true,
"data": {
"categories": [
{
"id": 1,
"name": "Mikrofony",
"created_at": 1704067200,
"updated_at": 1704067200
},
{
"id": 2,
"name": "Kabely",
"created_at": 1704067200,
"updated_at": 1704067200
}
]
}
}

GET /assets

Seznam všech assets s paginací.

Oprávnění: Bearer token (vyžaduje autentizaci)

Query parametry:

  • page (volitelné): Číslo stránky (výchozí: 1)
  • pageSize (volitelné): Počet položek na stránku (výchozí: 50)

Response:

{
"success": true,
"data": {
"assets": [
{
"id": 1,
"item_id": 1,
"item_name": "Microphone Shure SM58",
"scan_id": 12345,
"functional_status": "OK_100",
"availability_status": "AVAILABLE",
"owner_id": null,
"weight_kg": 2,
"defects": null,
"location": "Warehouse A",
"created_at": 1704067200
}
],
"pagination": {
"total": 50,
"page": 1,
"pageSize": 50,
"totalPages": 1
}
}
}

Poznámka: Response obsahuje také item_name (z JOIN s items tabulkou), owner_id, weight_kg, a defects (z notes pole).

GET /assets/scan/:scan_id

Vyhledání assetu podle scan_id (QR kódu).

Oprávnění: Bearer token (vyžaduje autentizaci)

Response:

{
"success": true,
"data": {
"id": 1,
"item_id": 1,
"item_name": "Microphone Shure SM58",
"scan_id": 12345,
"functional_status": "OK_100",
"availability_status": "AVAILABLE",
"owner_id": null,
"weight_kg": 2,
"defects": null,
"location": "Warehouse A",
"created_at": 1704067200
}
}

POST /assets

Vytvoření nového assetu.

Oprávnění: Admin

Request:

{
"item_id": 1,
"scan_id": 12345,
"functional_status": "OK_100",
"availability_status": "AVAILABLE",
"owner_id": null,
"weight_kg": 2,
"notes": "Optional notes or defects",
"location": "Warehouse A"
}

PUT /assets/:id

Aktualizace assetu.

Oprávnění: Admin

Request:

{
"functional_status": "OK_50",
"availability_status": "IN_USE",
"owner_id": 5,
"weight_kg": 2,
"notes": "Updated notes",
"location": "Event Site"
}

DELETE /assets/:id

Smazání assetu.

Oprávnění: Admin

Status typy

Functional Status

  • OK_100 - Plně funkční
  • OK_50 - Částečně funkční
  • NOT_OK - Nefunkční

Availability Status

  • AVAILABLE - Dostupné
  • IN_USE - V použití
  • MAINTENANCE - V údržbě
  • RESERVED - Rezervováno pro projekt

Kategorie

Kategorie slouží k organizaci items do logických skupin. Každý item může mít přiřazenou kategorii pomocí category_id.

Použití kategorií:

  • Organizace items v UI
  • Filtrování při plánování gearu
  • Seskupování podobných typů vybavení

Kódy chyb

  • VALIDATION_ERROR - Neplatný vstup
  • NOT_FOUND - Item nebo asset nenalezen
  • INVALID_ID - Neplatné ID
  • FORBIDDEN - Nedostatečná oprávnění (pouze Admin může vytvářet/editovat/mazat)
  • INTERNAL_ERROR - Chyba serveru

Související témata