From 57cf3acb492204170b602dd05de80278284ac262 Mon Sep 17 00:00:00 2001 From: Rinat Date: Fri, 17 Jul 2026 22:10:36 +0300 Subject: [PATCH] =?UTF-8?q?add=20AGENTS.md=20=E2=80=94=20shared=20context?= =?UTF-8?q?=20for=20AI=20coding=20agents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..f70e003 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,84 @@ +# AGENTS.md — Ozon Mock Server — Project Context + +> **Read this first.** Append what you did at the end under **Session Log**. + +## 1. What this is + +Mock server emulating Ozon Seller API for integration testing. Returns hardcoded fixture data. + +| Layer | Tech | +|-------|------| +| Language | Go 1.25, `net/http` stdlib | +| Deployment | Docker + systemd on ioffe | +| Auth | Optional Client-Id / Api-Key validation | +| Config | Env vars: `PORT`, `OZON_CLIENT_ID`, `OZON_API_KEY` | + +## 2. Endpoints (20 total) + +| Method | Path | Description | +|--------|------|-------------| +| GET | `/health` | Health check | +| POST | `/v1/product/import/prices` | Import prices | +| GET | `/v1/product/list` | List products | +| POST | `/v3/product/info/list` | Product info (filter by offer_id / product_id) | +| POST | `/v3/product/info/stocks` | Stock levels | +| POST | `/v4/product/info/prices` | Price info | +| **POST** | **`/v3/product/import`** | **Create/update product cards** | +| **POST** | **`/v1/product/info/description`** | **Product description/status** | +| **POST** | **`/v1/product/info/attributes`** | **Product attributes** | +| POST | `/v2/posting/fbs/list` | FBS postings (since, status, analytics) | +| POST | `/v2/posting/fbs/get` | Single posting | +| POST | `/v1/posting/fbs/cancel` | Cancel posting | +| POST | `/v1/finance/transaction/list` | Transactions | +| POST | `/v1/finance/payout/list` | Payouts | +| POST | `/v1/returns/list` | Returns | +| POST | `/v1/analytics/data` | Analytics | +| POST | `/v1/analytics/turnover/stocks` | Turnover | +| **POST** | **`/v2/category/tree`** | **Category tree (3 root, 7 total)** | +| **POST** | **`/v3/category/attribute`** | **Category attributes** | +| **POST** | **`/v3/category/attribute/values`** | **Attribute values** | + +## 3. Test Data + +| Entity | Count | +|--------|-------| +| Products | 104 | +| Stocks | 104 | +| Prices | 104 | +| Postings | 41 | +| Returns | 20 | +| Payouts | 20 | +| Transactions | 25 | +| Companies | 3 (TechGiant TG-*, FashionLine FL-*, HomeStyle HS-*) | + +## 4. Deploy + +```bash +cd /Users/rinat/projects/ozon-mock +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ozon-mock ./cmd/server +scp ozon-mock ioffe:/opt/ozon-mock/ozon-mock +ssh ioffe "sudo systemctl restart ozon-mock" +curl https://ozon-mock.px.kinrin.ru/health # expect {"status":"ok"} +``` + +## 5. Key Commands + +```bash +make build # binary +make test # go test -race ./... (31 tests) +make docker # Docker build +go run ./cmd/server # local on :8080 +``` + +## 6. Session Log + +> Append your summary below. Latest first. + +### 2026-07-17 — v2.0 massive test data + product card endpoints + +- Generated 104 products/stocks/prices across 3 companies +- 41 postings, 20 returns, 20 payouts, 25 transactions +- Added Phase 2 endpoints: v3/product/import, v1/product/info/description, v1/product/info/attributes, v2/category/tree, v3/category/attribute, v3/category/attribute/values +- Sanitary fixes: removed gin dependency, credential logging, dead code, incomplete filters +- 31 tests (all PASS with race detector) +- Deployed to production