{
  "openapi": "3.1.0",
  "info": {
    "title": "Zitena API",
    "version": "0.1.0"
  },
  "paths": {
    "/api/v1/me": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Anahtarı doğrula",
        "description": "Anahtarın geçerli olduğunu ve kapsamlarını döner (bağlantı testi için; kapsam gerekmez).",
        "operationId": "me_api_v1_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Me Api V1 Me Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/catalog/products": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Ürünleri toplu yaz",
        "description": "item_ref'e göre upsert. İçeriği değişmeyen ürün yeniden yazılmaz/embed edilmez.",
        "operationId": "put_products_api_v1_catalog_products_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli.",
              "default": false,
              "title": "Full"
            },
            "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductBatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/catalog/products/{item_ref}": {
      "delete": {
        "tags": [
          "Veri API"
        ],
        "summary": "Ürünü pasifle",
        "description": "Ürün silinmez, pasiflenir (asistan artık önermez; aynı item_ref tekrar gönderilirse yeniden aktifleşir).",
        "operationId": "delete_product_api_v1_catalog_products__item_ref__delete",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "item_ref",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Item Ref"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/catalog/categories": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Kategorileri toplu yaz",
        "operationId": "put_categories_api_v1_catalog_categories_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli.",
              "default": false,
              "title": "Full"
            },
            "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryBatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/kb/articles": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Bilgi içeriğini toplu yaz",
        "description": "Satırlar `api-<id>` anahtarıyla yazılır; uzun içerik (1500+ karakter) `api-id-1`, `api-id-2`… parçalarına\nbölünür. Bilgi veri seti bir bağlayıcıdan (ör. WooCommerce SSS) besleniyorsa kaynağı değişmez ve bağlayıcının tam\nsenkronu API makalelerini pasiflemez; `full=true` yalnız API'den gelen makaleleri eşitler. `ek-` ve `crawl-`\nönekli satırlar (konsoldan elle eklenen, site taraması) korunur ve API'den yazılamaz.",
        "operationId": "put_articles_api_v1_kb_articles_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli.",
              "default": false,
              "title": "Full"
            },
            "description": "true: listede olmayan kayıtlar pasiflenir ('ek-' önekli elle eklenen bilgi satırları korunur). Tam liste tek istekte (≤1000) gönderilmeli."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArticleBatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/orders": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Siparişleri toplu yaz",
        "description": "external_id'ye göre upsert; mevcut kayıttan eski `modified_at` taşıyan sürüm yazılmaz (unchanged).\nStatüler ham slug olarak saklanır; firmanın statü tanımlarında olmayanlar `unmapped_statuses`'ta döner.",
        "operationId": "put_orders_api_v1_orders_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderBatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/requests": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Talepleri listele",
        "description": "Görüşmelerde açılan talepler, `updated_at` artan sırada (artımlı çekim: `next_cursor` ile devam; boş dönerse\nson imleci saklayıp daha sonra tekrar sorun). Telefon maskelidir; firma Veri API'de kişisel veriyi açtıysa\n(`veri_api.kisisel_veri`) tam numara döner. E-posta maskesizdir.",
        "operationId": "get_requests_api_v1_requests_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "updated_at ≥ since",
              "title": "Since"
            },
            "description": "updated_at ≥ since"
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Requests Api V1 Requests Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/catalog/categories/{kategori_id}": {
      "delete": {
        "tags": [
          "Veri API"
        ],
        "summary": "Kategoriyi pasifle",
        "operationId": "delete_category_api_v1_catalog_categories__kategori_id__delete",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "kategori_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Kategori Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IngestResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/sepetler": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Sepetleri toplu yaz",
        "description": "dis_id'ye göre upsert. İçeriği değişmeyen sepet yazılmaz (terk süresi ilerlemeye devam eder);\n`kalemler: []` sepeti siler. Kalemi olan sepette müşterinin e-postası ya da telefonu zorunludur. Siparişe\ndönmüş sepetin kimliği tekrar kullanılamaz (yazılmaz, `skipped_converted`); her sepet örneği için yeni dis_id.",
        "operationId": "put_carts_api_v1_sepetler_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CartBatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CartResultOut"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      },
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Sepetleri listele",
        "description": "Son güncellemeye göre yeniden eskiye (terk edilenler için `durum=terk`). Müşteri telefonu maskelidir; firma\nVeri API'de kişisel veriyi açtıysa (`veri_api.kisisel_veri`) tam numara döner.",
        "operationId": "get_carts_api_v1_sepetler_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "durum",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Durum"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Carts Api V1 Sepetler Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/sepetler/{dis_id}": {
      "delete": {
        "tags": [
          "Veri API"
        ],
        "summary": "Sepeti sil",
        "operationId": "delete_cart_route_api_v1_sepetler__dis_id__delete",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "dis_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Dis Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete Cart Route Api V1 Sepetler  Dis Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/musteriler": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Müşterileri toplu yaz",
        "operationId": "put_customers_api_v1_musteriler_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerBatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Put Customers Api V1 Musteriler Put"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/musteriler/{dis_id}": {
      "delete": {
        "tags": [
          "Veri API"
        ],
        "summary": "Müşteriyi sil",
        "operationId": "delete_customer_route_api_v1_musteriler__dis_id__delete",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "dis_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Dis Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete Customer Route Api V1 Musteriler  Dis Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/servis-kayitlari/{kayit}/onay": {
      "post": {
        "tags": [
          "Veri API"
        ],
        "summary": "Onarım ücreti onayını kaydet",
        "description": "Müşterinin onarım ücreti kararını servis kaydına yazar (Otomatik kurallar özelliği açık firmalarda). Bekleyen\nteklif yoksa 409 `no_quote`, süresi dolduysa 410 `expired`, karar verilmişse 409 `already_decided`.",
        "operationId": "post_service_approval_api_v1_servis_kayitlari__kayit__onay_post",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "kayit",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Kayit"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceApprovalIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Post Service Approval Api V1 Servis Kayitlari  Kayit  Onay Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/servis-kayitlari/{kayit}/durum": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Servis kaydı durumunu güncelle",
        "description": "Teknik servis kaydının (görüşmede açılan 'teknik_servis' talebi) durumu. `kayit`: talep id'si (uuid) ya da\nnumarası (`TLP-000012`). Aynı durum ve tarih tekrar gönderilirse değişiklik yazılmaz (`degisti: false`).\nAsistan müşteri sorduğunda bu durumu ve tahmini tarihi söyler.",
        "operationId": "put_service_status_api_v1_servis_kayitlari__kayit__durum_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "kayit",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Kayit"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceStatusIn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Put Service Status Api V1 Servis Kayitlari  Kayit  Durum Put"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/buton-token": {
      "post": {
        "tags": [
          "Veri API"
        ],
        "summary": "Buton token'ı üret",
        "description": "Firma sunucusundan (gizli anahtarla) çağrılır. `tetikleyen` sayfayı açan kendi kullanıcınız, `hedef` aranacak\nsepet (`sepet_id`), sipariş (`siparis_no`) ya da müşteri telefonudur (`musteri_telefon`; token'a yalnız özeti\ngirer). Token en çok 15 dk geçerlidir, TEK bir arama isteği içindir ve sayfaya `data-token` olarak basılır.",
        "operationId": "button_token_api_v1_buton_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ButtonTokenIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Button Token Api V1 Buton Token Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/sohbet-token": {
      "post": {
        "tags": [
          "Veri API"
        ],
        "summary": "Web sohbet müşteri token'ı üret",
        "description": "Firma sunucusundan (gizli anahtarla) çağrılır: sitenizde GİRİŞ YAPMIŞ müşteriniz için kısa ömürlü (en çok 15 dk),\ntek kullanımlık, şifreli token. Sayfaya `data-musteri-token` olarak basılır; pencere oturumu bu token'la açarsa\nmüşterinin numarası doğrulamada güvenilir sayılır (sesteki arayan numarası gibi: kendi siparişleri için numara ya\nda ad soyadla açılır). Token'ı yalnız oturumu açık müşterinin kendi numarasıyla üretin.",
        "operationId": "customer_token_api_v1_sohbet_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerTokenIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Customer Token Api V1 Sohbet Token Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/cagrilar": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Çağrıları listele",
        "description": "Çağrılar `created_at` artan sırada (artımlı çekim: `next_cursor` ile devam; boş dönerse son imleci saklayıp\ndaha sonra tekrar sorun). Özet, çözüm ve konular etiketleme bitince dolar (`tagged_at`).",
        "operationId": "get_calls_api_v1_cagrilar_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "created_at ≥ since",
              "title": "Since"
            },
            "description": "created_at ≥ since"
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "created_at < until",
              "title": "Until"
            },
            "description": "created_at < until"
          },
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "web",
                    "phone_in",
                    "phone_out",
                    "web_sohbet",
                    "sms",
                    "eposta"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Channel"
            }
          },
          {
            "name": "topic_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Topic Id"
            }
          },
          {
            "name": "cozum",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cozum"
            }
          },
          {
            "name": "is_test",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Is Test"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Calls Api V1 Cagrilar Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/cagrilar/{call_id}": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Çağrı detayı",
        "description": "`transcript` yalnız anahtarda `calls:read:transcript` kapsamı varsa dolu; yoksa null.",
        "operationId": "get_call_api_v1_cagrilar__call_id__get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "call_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Call Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Call Api V1 Cagrilar  Call Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/konular/istatistik": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Konu istatistiği",
        "description": "Grup → konu adetleri, \"Pınar çözdü\" oranı ve aynı uzunluktaki önceki döneme göre adetler.",
        "operationId": "get_topic_stats_api_v1_konular_istatistik_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "description": "İstanbul günü, dahil",
              "title": "From"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "description": "İstanbul günü, dahil",
              "title": "To"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "channel",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "web",
                    "phone_in",
                    "phone_out",
                    "web_sohbet",
                    "sms",
                    "eposta"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Channel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Topic Stats Api V1 Konular Istatistik Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/raporlar/cagri-kayitlari": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Çağrı kayıtları (BI; takma adlı)",
        "description": "Görüşme başına bir satır (test görüşmeleri hariç), `created_at` artan sırada; istek başına en çok 31 gün.\nDoğrudan kimlik bilgisi yok (ad, e-posta, telefon, döküm); `cagri_id` ve `musteri_anahtari` takma adlı kişisel\nveridir. `maliyet_try` günün tahmini maliyetinin süreye göre payıdır; `atif_turu` görüşmeye atanan siparişlerin en\nöncelikli türüdür. Paketinizde kapalı özelliklerin alanları (konu, kalite, atıf) null döner.",
        "operationId": "call_records_api_v1_raporlar_cagri_kayitlari_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "İstanbul günü, dahil",
              "title": "From"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "İstanbul günü, dahil",
              "title": "To"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "json",
                "csv"
              ],
              "type": "string",
              "default": "json",
              "title": "Format"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/raporlar/{rapor}/gunluk": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Günlük rapor (BI)",
        "description": "Günlük toplamlar: `cagrilar` (gün × kanal), `konular` (gün × konu), `sonuclar` (gün × sonuç/çözüm/durum),\n`atif` (gün × atıf türü), `csat` (gün; anket verisi yoksa boş), `maliyet` (gün; tahmini). Varsayılan aralık son 30\ngün; en çok 366 gün (`atif`, `csat`: 92). Paketinizde kapalı özelliğin raporu 404.",
        "operationId": "daily_api_v1_raporlar__rapor__gunluk_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "rapor",
            "in": "path",
            "required": true,
            "schema": {
              "enum": [
                "cagrilar",
                "konular",
                "sonuclar",
                "atif",
                "csat",
                "maliyet"
              ],
              "type": "string",
              "title": "Rapor"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "İstanbul günü, dahil",
              "title": "From"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "İstanbul günü, dahil",
              "title": "To"
            },
            "description": "İstanbul günü, dahil"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "json",
                "csv"
              ],
              "type": "string",
              "default": "json",
              "title": "Format"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/firsatlar": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Satış fırsatlarını listele",
        "description": "Asistanın açtığı satış fırsatları (iletişim izni verilmiş müşteriler), yeniden eskiye. Telefon ve e-posta\nmaskelidir; firma Veri API'de kişisel veriyi açtıysa (`veri_api.kisisel_veri`) tam döner. Mautic/CRM aktarımı için\n`firsat.olusturuldu` webhook'u ile birlikte kullanın (integrations/n8n/lead-qualified-to-crm.json).",
        "operationId": "api_list_leads_api_v1_firsatlar_get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "durum",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "yeni",
                    "iletisimde",
                    "teklif",
                    "kazanildi",
                    "kaybedildi"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Durum"
            }
          },
          {
            "name": "sinif",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "sicak",
                    "ilik",
                    "soguk"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sinif"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Bu andan sonra güncellenenler",
              "title": "Since"
            },
            "description": "Bu andan sonra güncellenenler"
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Api List Leads Api V1 Firsatlar Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/firsatlar/{lead_id}": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Satış fırsatı",
        "operationId": "api_lead_api_v1_firsatlar__lead_id__get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "lead_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Lead Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Api Lead Api V1 Firsatlar  Lead Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/uyumluluk": {
      "put": {
        "tags": [
          "Veri API"
        ],
        "summary": "Uyumluluk satırlarını toplu yaz",
        "description": "Aksesuar ↔ cihaz uyumluluğu: `urun_ref` (aksesuarın item_ref'i) ve `uyumlu_ref` (cihazın item_ref'i) ya da\n`uyumlu_model_adi` (\"iPhone 15 Pro\"). `sonuc`: uyumlu | uyumsuz. Satırlar doğrudan etkin olur; asistanın\n`uyumluluk_sorgula` aracı bu veriyi kullanır. Hatalı satırlar `hatalar`'da (sıra numarasıyla) döner.\n\nBüyük katalogda tam senkron: her parçayı aynı `sync_id` ile gönderin, son parçada `final=true` ekleyin; önceki\nparçalar silinmez, oturumda gelmeyen API satırları yalnız son parçada (hatasızsa) silinir.",
        "operationId": "api_put_compat_api_v1_uyumluluk_put",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "full",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Tek istekte tam senkron: listede olmayan, daha önce API'den gelmiş satırlar silinir (CSV/konsol satırları korunur). En çok 1000 satır; daha büyük katalogda sync_id + final kullanın.",
              "default": false,
              "title": "Full"
            },
            "description": "Tek istekte tam senkron: listede olmayan, daha önce API'den gelmiş satırlar silinir (CSV/konsol satırları korunur). En çok 1000 satır; daha büyük katalogda sync_id + final kullanın."
          },
          {
            "name": "sync_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80,
                  "pattern": "^[A-Za-z0-9_.:-]+$",
                  "description": "Parçalı tam senkron oturumu: tüm parçalarda aynı değer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sync Id"
            }
          },
          {
            "name": "final",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Parçalı tam senkronun son parçası: bu oturumda (sync_id) gelmeyen API satırları silinir",
              "default": false,
              "title": "Final"
            },
            "description": "Parçalı tam senkronun son parçası: bu oturumda (sync_id) gelmeyen API satırları silinir"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompatBatch"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Api Put Compat Api V1 Uyumluluk Put"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/aramalar": {
      "post": {
        "tags": [
          "Veri API"
        ],
        "summary": "Giden arama iste",
        "description": "Amaç (`amac`) firmanın şablon anahtarıdır; `konu` tetikleyenin yazdığı meseledir (10–1000 karakter).\nÖn kontroller: arama yasağı, İYS sağlayıcısı (ticari), kota, açık istek, tekrar, arama saati. İYS izni\naramadan hemen önce sorulur; sonuç `arama.*` webhook olaylarıyla da bildirilir.",
        "operationId": "create_arama_api_v1_aramalar_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OutboundRequestIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AramaYaniti"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/api/v1/aramalar/{arama_id}": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Giden arama durumu ve sonucu",
        "description": "Kapsam: `calls:read` ya da `calls:write`.",
        "operationId": "get_arama_api_v1_aramalar__arama_id__get",
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "parameters": [
          {
            "name": "arama_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Arama Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Arama Api V1 Aramalar  Arama Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "api_key"
      }
    },
    "/api/v1/amaclar": {
      "get": {
        "tags": [
          "Veri API"
        ],
        "summary": "Aktif arama amaçları",
        "description": "Entegrasyonların amaç seçimi için (ör. mağaza eklentisindeki \"Asistan arasın\" kutusu). `saatler`: firmanın\narama saatleri (pazartesiden pazara, İstanbul saati; null = kapalı) — randevu seçicisini sınırlamak için.",
        "operationId": "get_amaclar_api_v1_amaclar_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Get Amaclar Api V1 Amaclar Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "FirmaApiAnahtari": []
          }
        ],
        "x-auth": "api_key"
      }
    },
    "/hooks/{org_slug}/{source}": {
      "post": {
        "tags": [
          "Gelen webhook"
        ],
        "summary": "Gelen webhook",
        "operationId": "inbound_hooks__org_slug___source__post",
        "parameters": [
          {
            "name": "org_slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Org Slug"
            }
          },
          {
            "name": "source",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Source"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Inbound Hooks  Org Slug   Source  Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-auth": "hmac_signature"
      }
    }
  },
  "components": {
    "schemas": {
      "ApiArticle": {
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Id"
          },
          "baslik": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Baslik"
          },
          "icerik": {
            "type": "string",
            "maxLength": 100000,
            "minLength": 1,
            "title": "Icerik"
          },
          "bolum": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Bolum"
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "id",
          "baslik",
          "icerik"
        ],
        "title": "ApiArticle",
        "examples": [
          {
            "baslik": "İade koşulları",
            "bolum": "Yardım",
            "icerik": "Ürünü teslim aldıktan sonra 14 gün içinde iade edebilirsiniz…",
            "id": "iade-kosullari",
            "url": "https://ornek.com/iade"
          }
        ]
      },
      "ApiCart": {
        "properties": {
          "dis_id": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Dis Id"
          },
          "musteri": {
            "$ref": "#/components/schemas/ApiCartCustomer"
          },
          "kalemler": {
            "items": {
              "$ref": "#/components/schemas/ApiCartItem"
            },
            "type": "array",
            "maxItems": 200,
            "title": "Kalemler",
            "default": []
          },
          "tutar": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tutar"
          },
          "para_birimi": {
            "type": "string",
            "maxLength": 3,
            "minLength": 3,
            "title": "Para Birimi",
            "default": "TRY"
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "son_guncelleme": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Son Guncelleme"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "dis_id",
          "musteri"
        ],
        "title": "ApiCart",
        "examples": [
          {
            "dis_id": "wc-7f3a9c",
            "kalemler": [
              {
                "ad": "iPad Air 11 inç M3 128 GB",
                "adet": 1,
                "birim_fiyat": "32999.00",
                "item_ref": "1234"
              }
            ],
            "musteri": {
              "ad": "Ayşe Yılmaz",
              "eposta": "ayse@example.com",
              "telefon": "05321234567"
            },
            "para_birimi": "TRY",
            "son_guncelleme": "2026-09-24T10:15:00+03:00",
            "tutar": "32999.00",
            "url": "https://ornek.com/sepet"
          }
        ]
      },
      "ApiCartCustomer": {
        "properties": {
          "ad": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Ad"
          },
          "eposta": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Eposta"
          },
          "telefon": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32
              },
              {
                "type": "null"
              }
            ],
            "title": "Telefon"
          },
          "dis_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Dis Id"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "ApiCartCustomer"
      },
      "ApiCartItem": {
        "properties": {
          "item_ref": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Item Ref"
          },
          "ad": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Ad"
          },
          "adet": {
            "type": "integer",
            "maximum": 999.0,
            "minimum": 1.0,
            "title": "Adet",
            "default": 1
          },
          "birim_fiyat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Birim Fiyat"
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "item_ref",
          "ad",
          "birim_fiyat"
        ],
        "title": "ApiCartItem"
      },
      "ApiCategory": {
        "properties": {
          "kategori_id": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Kategori Id"
          },
          "kategori_adi": {
            "type": "string",
            "maxLength": 300,
            "minLength": 1,
            "title": "Kategori Adi"
          },
          "ust_kategori_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Ust Kategori Id"
          },
          "yol": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Yol"
          },
          "urun_sayisi": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Urun Sayisi"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "kategori_id",
          "kategori_adi"
        ],
        "title": "ApiCategory",
        "examples": [
          {
            "kategori_adi": "iPhone",
            "kategori_id": "12",
            "urun_sayisi": 42,
            "ust_kategori_id": "3",
            "yol": "Telefon > iPhone"
          }
        ]
      },
      "ApiCustomer": {
        "properties": {
          "dis_id": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Dis Id"
          },
          "ad": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Ad"
          },
          "eposta": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Eposta"
          },
          "telefon": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32
              },
              {
                "type": "null"
              }
            ],
            "title": "Telefon"
          },
          "meta": {
            "additionalProperties": true,
            "type": "object",
            "title": "Meta",
            "default": {}
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "dis_id"
        ],
        "title": "ApiCustomer",
        "examples": [
          {
            "ad": "Ayşe Yılmaz",
            "dis_id": "87",
            "eposta": "ayse@example.com",
            "meta": {
              "segment": "kurumsal"
            },
            "telefon": "05321234567"
          }
        ]
      },
      "ApiOrder": {
        "properties": {
          "external_id": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "External Id"
          },
          "number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Number"
          },
          "code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "status": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Status"
          },
          "customer_name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Customer Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "customer_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Customer Id"
          },
          "payment_method": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Method"
          },
          "payment_method_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Method Id"
          },
          "shipping_method": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Shipping Method"
          },
          "shipping_method_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Shipping Method Id"
          },
          "shipping_city": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Shipping City"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiOrderItem"
            },
            "type": "array",
            "maxItems": 500,
            "title": "Items",
            "default": []
          },
          "total": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Total",
            "default": "0"
          },
          "currency": {
            "type": "string",
            "maxLength": 3,
            "minLength": 3,
            "title": "Currency",
            "default": "TRY"
          },
          "carrier": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Carrier"
          },
          "tracking_number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Tracking Number"
          },
          "tracking_status": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Tracking Status"
          },
          "tracking_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Tracking Url"
          },
          "shipment_code": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Shipment Code"
          },
          "channel": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "title": "Channel",
            "default": "site"
          },
          "flags": {
            "additionalProperties": true,
            "type": "object",
            "title": "Flags",
            "default": {}
          },
          "coupons": {
            "items": {
              "type": "string",
              "maxLength": 2000
            },
            "type": "array",
            "maxItems": 20,
            "title": "Coupons",
            "default": []
          },
          "sepet_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Sepet Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "modified_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Modified At"
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "external_id",
          "status",
          "created_at"
        ],
        "title": "ApiOrder",
        "description": "store_orders biçiminde sipariş. Tarihler saat dilimli ISO 8601; dilimsizse Türkiye saati kabul edilir.",
        "examples": [
          {
            "carrier": "Yurtiçi Kargo",
            "channel": "site",
            "created_at": "2026-09-24T10:15:00+03:00",
            "currency": "TRY",
            "customer_name": "Ayşe Yılmaz",
            "email": "ayse@example.com",
            "external_id": "98765",
            "flags": {
              "taksit": 3
            },
            "items": [
              {
                "name": "iPhone 15 128 GB",
                "qty": 1,
                "ref": "1234",
                "total": "52999.00"
              }
            ],
            "modified_at": "2026-09-24T12:00:00+03:00",
            "number": "PT-98765",
            "payment_method": "Kredi Kartı",
            "phone": "05321234567",
            "shipping_city": "Kadıköy",
            "shipping_method": "Kargo",
            "status": "processing",
            "total": "52999.00",
            "tracking_number": "123456789012"
          }
        ]
      },
      "ApiOrderItem": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Name"
          },
          "qty": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Qty",
            "default": 1
          },
          "total": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Total",
            "default": "0"
          },
          "ref": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ApiOrderItem"
      },
      "ApiProduct": {
        "properties": {
          "item_ref": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Item Ref"
          },
          "urun_adi": {
            "type": "string",
            "maxLength": 500,
            "minLength": 1,
            "title": "Urun Adi"
          },
          "urun_kodu": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Urun Kodu"
          },
          "model_adi": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Adi"
          },
          "marka": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Marka"
          },
          "kategori": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Kategori"
          },
          "fiyat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fiyat"
          },
          "normal_fiyat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normal Fiyat"
          },
          "indirimde": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Indirimde"
          },
          "stokta": {
            "type": "boolean",
            "title": "Stokta",
            "default": true
          },
          "stok": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Stok"
          },
          "renk": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Renk"
          },
          "depolama": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Depolama"
          },
          "bellek": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Bellek"
          },
          "islemci": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Islemci"
          },
          "ekran": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Ekran"
          },
          "uyumluluk": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Uyumluluk"
          },
          "durum": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Durum"
          },
          "kargo_suresi": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Kargo Suresi"
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "gorsel": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Gorsel"
          },
          "kisa_aciklama": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ],
            "title": "Kisa Aciklama"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "item_ref",
          "urun_adi"
        ],
        "title": "ApiProduct",
        "description": "`urun` şemasındaki bir ürün (ya da varyasyon). item_ref sitedeki kalıcı kimliktir.",
        "examples": [
          {
            "depolama": "128 GB",
            "durum": "sıfır",
            "fiyat": 52999.0,
            "item_ref": "1234",
            "kargo_suresi": "1-3 iş günü",
            "kategori": "Telefon > iPhone",
            "kisa_aciklama": "Apple garantili.",
            "marka": "Apple",
            "renk": "Siyah",
            "stok": "Stokta (son 3)",
            "stokta": true,
            "url": "https://ornek.com/urun/iphone-15",
            "urun_adi": "iPhone 15 128 GB Siyah"
          }
        ]
      },
      "AramaYaniti": {
        "properties": {
          "arama_id": {
            "type": "string",
            "format": "uuid",
            "title": "Arama Id"
          },
          "durum": {
            "type": "string",
            "title": "Durum"
          },
          "sebep": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sebep"
          },
          "planlanan_zaman": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planlanan Zaman"
          }
        },
        "type": "object",
        "required": [
          "arama_id",
          "durum"
        ],
        "title": "AramaYaniti"
      },
      "ArticleBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiArticle"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "ArticleBatch"
      },
      "ButtonTarget": {
        "properties": {
          "sepet_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Sepet Id"
          },
          "siparis_no": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Siparis No"
          },
          "musteri_telefon": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 32,
                "minLength": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Musteri Telefon"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "ButtonTarget",
        "description": "Token'ın bağlanacağı hedef: tam olarak biri."
      },
      "ButtonTokenIn": {
        "properties": {
          "tetikleyen": {
            "$ref": "#/components/schemas/TriggererIn"
          },
          "hedef": {
            "$ref": "#/components/schemas/ButtonTarget"
          },
          "gecerlilik_sn": {
            "type": "integer",
            "maximum": 900.0,
            "minimum": 60.0,
            "title": "Gecerlilik Sn",
            "default": 600
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "tetikleyen",
          "hedef"
        ],
        "title": "ButtonTokenIn"
      },
      "CartBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiCart"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "CartBatch"
      },
      "CartResultOut": {
        "properties": {
          "inserted": {
            "type": "integer",
            "title": "Inserted"
          },
          "updated": {
            "type": "integer",
            "title": "Updated"
          },
          "unchanged": {
            "type": "integer",
            "title": "Unchanged"
          },
          "deleted": {
            "type": "integer",
            "title": "Deleted"
          },
          "skipped_converted": {
            "type": "integer",
            "title": "Skipped Converted"
          }
        },
        "type": "object",
        "required": [
          "inserted",
          "updated",
          "unchanged",
          "deleted",
          "skipped_converted"
        ],
        "title": "CartResultOut"
      },
      "CategoryBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiCategory"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "CategoryBatch"
      },
      "CompatBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CompatIn"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "CompatBatch"
      },
      "CompatIn": {
        "properties": {
          "urun_ref": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Urun Ref"
          },
          "uyumlu_ref": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Uyumlu Ref"
          },
          "uyumlu_model_adi": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Uyumlu Model Adi"
          },
          "sonuc": {
            "type": "string",
            "enum": [
              "uyumlu",
              "uyumsuz"
            ],
            "title": "Sonuc",
            "default": "uyumlu"
          },
          "not": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Not"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "urun_ref"
        ],
        "title": "CompatIn"
      },
      "CustomerBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiCustomer"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "CustomerBatch"
      },
      "CustomerTokenIn": {
        "properties": {
          "musteri": {
            "$ref": "#/components/schemas/zitena_api__routes_sohbet__CustomerIn"
          },
          "gecerlilik_sn": {
            "type": "integer",
            "maximum": 900.0,
            "minimum": 60.0,
            "title": "Gecerlilik Sn",
            "default": 600
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "musteri"
        ],
        "title": "CustomerTokenIn"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "IngestResult": {
        "properties": {
          "dataset": {
            "type": "string",
            "title": "Dataset"
          },
          "inserted": {
            "type": "integer",
            "title": "Inserted"
          },
          "updated": {
            "type": "integer",
            "title": "Updated"
          },
          "unchanged": {
            "type": "integer",
            "title": "Unchanged"
          },
          "deactivated": {
            "type": "integer",
            "title": "Deactivated"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped"
          }
        },
        "type": "object",
        "required": [
          "dataset",
          "inserted",
          "updated",
          "unchanged",
          "deactivated",
          "skipped"
        ],
        "title": "IngestResult"
      },
      "OrderBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiOrder"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "OrderBatch"
      },
      "OrderResult": {
        "properties": {
          "inserted": {
            "type": "integer",
            "title": "Inserted"
          },
          "updated": {
            "type": "integer",
            "title": "Updated"
          },
          "unchanged": {
            "type": "integer",
            "title": "Unchanged"
          },
          "unmapped_statuses": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Unmapped Statuses"
          }
        },
        "type": "object",
        "required": [
          "inserted",
          "updated",
          "unchanged",
          "unmapped_statuses"
        ],
        "title": "OrderResult"
      },
      "OutboundRequestIn": {
        "properties": {
          "amac": {
            "type": "string",
            "maxLength": 40,
            "minLength": 2,
            "title": "Amac"
          },
          "konu": {
            "type": "string",
            "maxLength": 1000,
            "minLength": 10,
            "title": "Konu"
          },
          "musteri": {
            "$ref": "#/components/schemas/zitena_core__outbound__requests__CustomerIn"
          },
          "siparis_no": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Siparis No"
          },
          "sepet_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Sepet Id"
          },
          "tetikleyen": {
            "$ref": "#/components/schemas/TriggererIn"
          },
          "en_erken": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "En Erken"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "amac",
          "konu",
          "musteri",
          "tetikleyen"
        ],
        "title": "OutboundRequestIn",
        "examples": [
          {
            "amac": "sikayet",
            "konu": "Kargo hasarlı teslim edildi; müşteri iade mi değişim mi istediğini söyleyecek.",
            "musteri": {
              "ad": "Ayşe Yılmaz",
              "eposta": "ayse@example.com",
              "telefon": "05321234567"
            },
            "siparis_no": "560991",
            "tetikleyen": {
              "ad": "Can Demir",
              "eposta": "can@ornek.com"
            }
          }
        ]
      },
      "ProductBatch": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiProduct"
            },
            "type": "array",
            "maxItems": 1000,
            "minItems": 1,
            "title": "Items"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "items"
        ],
        "title": "ProductBatch"
      },
      "ServiceApprovalIn": {
        "properties": {
          "karar": {
            "type": "string",
            "title": "Karar",
            "description": "onaylandi | reddedildi (müşterinin telefonda ya da serviste verdiği karar)"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "karar"
        ],
        "title": "ServiceApprovalIn"
      },
      "ServiceStatusIn": {
        "properties": {
          "durum": {
            "type": "string",
            "title": "Durum",
            "description": "alindi | inceleniyor | onay_bekliyor | parca_bekleniyor | hazir | teslim_edildi"
          },
          "tahmini_tarih": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tahmini Tarih",
            "description": "Tahmini tamamlanma/teslim tarihi (YYYY-AA-GG); verilmezse mevcut tarih korunur"
          },
          "tarihi_kaldir": {
            "type": "boolean",
            "title": "Tarihi Kaldir",
            "default": false
          },
          "teklif_tutari": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,13}0*$)\\d{0,10}\\.\\d{0,2}0*$)"
              },
              {
                "type": "null"
              }
            ],
            "title": "Teklif Tutari",
            "description": "Onarım ücreti (TL). Verilirse müşteriden onay istenir (Otomatik kurallar özelliği açıksa; ödeme alınmaz). Karar `onay` alanında ve servis.onay webhook'unda döner."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "durum"
        ],
        "title": "ServiceStatusIn"
      },
      "TriggererIn": {
        "properties": {
          "ad": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Ad"
          },
          "eposta": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Eposta"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "ad"
        ],
        "title": "TriggererIn"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "zitena_api__routes_sohbet__CustomerIn": {
        "properties": {
          "telefon": {
            "type": "string",
            "maxLength": 32,
            "minLength": 10,
            "title": "Telefon"
          },
          "ad": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 80
              },
              {
                "type": "null"
              }
            ],
            "title": "Ad"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "telefon"
        ],
        "title": "CustomerIn"
      },
      "zitena_core__outbound__requests__CustomerIn": {
        "properties": {
          "ad": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1,
            "title": "Ad"
          },
          "telefon": {
            "type": "string",
            "maxLength": 32,
            "minLength": 10,
            "title": "Telefon"
          },
          "eposta": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Eposta"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "ad",
          "telefon"
        ],
        "title": "CustomerIn"
      }
    },
    "securitySchemes": {
      "FirmaApiAnahtari": {
        "type": "http",
        "description": "Firma API anahtarı: `Authorization: Bearer rz_live_…`",
        "scheme": "bearer"
      }
    }
  }
}
