21 uç · /api/shop/v1/ai
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 21 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
onaylanamayacak bir şeyi onay kuyruğunda göstermek kullanıcıyı yanıltır.
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}proposal_id⚠ Sıra önemli. Önce uygulayıp sonra damgalasaydık, çift tıklama fiyatı İKİ KEZ değiştirirdi. Kilit `decided_at is null` koşullu tek UPDATE'tir; ikinci onay o koşulu bulamaz.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals/<proposal_id>/approve" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}proposal_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals/<proposal_id>/reject" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/threads" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}thread_idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/threads/<thread_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}cümledir ve uygulanacak yükle aynı yerden türer.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/propose" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Yetki kapısı çağıranın kendi izniyle: asistan bir yetki yükseltme yolu değildir.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/run" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Ayrı bir uç olmasının nedeni: panel önce "şunu yapacağım" diyebilsin. Kullanıcının göremediği bir eylem, onaylayamadığı eylemdir.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/suggest" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Guard reddi: Disabled(tier)→403 ai_disabled; Blocked(kota)→403 quota_exceeded. Allow/Warn → 200.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idEkleme ÖNCESİ tema-içeriği theme_versions'a snapshot'lanır (is_published=false) → geri-al = mevcut `restore` ucu (versiyon/undo). Yeni layout section_schema'ya karşı doğrulanır (uymazsa rollback — güvenli-şablon dışına çıkılamaz). Job done/theme_gen değil → 409.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>/insert-section" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idçıktı (`result_ref`) ürün-medya galerisine bağlanır (storage-key = stub-ref; canlı obje-storage TF21 aynı sözleşme); discard → çıktı yayınlanmadan kapanır. Geri-al: bağlanan medya mevcut media-delete ucuyla kaldırılır (media_id yanıtta). done-olmayan job → 409.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>/review" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Kota İLK girişte reddedilirse HİÇ iş açılmaz (403); ortada biterse o-ana-kadar açılanlar döner (`blocked` sayısıyla — sessiz-kırpma yok). Önizleme = done-job output'u; onay/red review ucundan (insan-onayı olmadan hiçbir çıktı üründe yayınlanmaz).
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/batch" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/process" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/model-pool" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}varyantlar; her renk için AA-uyumlu metin-rengi + kontrast-oranı raporlanır.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/theme/palette" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}