# VTAC Middleware — API dla dystrybutorów

Bazowy URL: `https://<twoja-domena>`

## Autoryzacja

Każde zapytanie wymaga nagłówka z Twoim kluczem API:

```
Authorization: Bearer dist_xxxx.yyyy
```

Klucz otrzymujesz od operatora. Pokazywany jest tylko raz. W razie utraty — poproś o rotację.

Kody odpowiedzi:

| Kod | Znaczenie |
|-----|-----------|
| 200 | OK |
| 400 | Błędne zapytanie (np. batch > 100 SKU) |
| 401 | Brak lub nieprawidłowy klucz |
| 403 | Klucz wyłączony (dostęp odcięty) |
| 404 | Nie znaleziono (produkt) |
| 429 | Przekroczony limit zapytań |

---

## Stany magazynowe

### Pojedyncze SKU
```
GET /api/v1/stock/{sku}
```
```json
{
  "sku": "24426",
  "known": true,
  "in_stock": true,
  "stock_status": "in_stock",
  "as_of": "2026-05-28T08:30:00+02:00",
  "stale": false
}
```
`known: false` — SKU nieznane w indeksie stanów.

### Wiele SKU (max 100)
```
POST /api/v1/stock/batch
Content-Type: application/json

{ "skus": ["24426", "11525"] }
```
```json
{ "items": [ { "sku": "24426", "known": true, "in_stock": true } ] }
```

### Meta
```
GET /api/v1/stock/meta
```
Informacja o ostatniej synchronizacji i fladze `stale`.

---

## Katalog produktów

### Lista (paginacja + filtry)
```
GET /api/v1/products?page=1&limit=50&category=Oświetlenie&search=panel
```
```json
{ "items": [ { "sku": "101", "name": "...", "ean": "..." } ], "page": 1, "limit": 50, "total": 1234 }
```
Parametry: `page` (od 1), `limit` (1–100), `category`, `search` (po nazwie / SKU / EAN).

### Szczegóły produktu + zdjęcia
```
GET /api/v1/products/{sku}
```
```json
{ "sku": "101", "name": "...", "ean": "...", "images": [ { "url": "https://...", "sort_order": 0 } ] }
```

---

## Przykłady (curl)

```bash
curl -H "Authorization: Bearer dist_xxxx.yyyy" \
  https://<twoja-domena>/api/v1/stock/24426

curl -X POST -H "Authorization: Bearer dist_xxxx.yyyy" \
  -H "Content-Type: application/json" \
  -d '{"skus":["24426","11525"]}' \
  https://<twoja-domena>/api/v1/stock/batch
```
