{
  "openapi": "3.0.3",
  "info": {
    "title": "MOSS Dashboard API",
    "version": "1.0.0",
    "description": "## MOSS Dashboard Dış Sistem API\n\nBu API; web siteleri, mobil uygulamalar ve üçüncü taraf entegrasyonların MOSS Dashboard verilerine güvenli biçimde erişmesini sağlar.\n\n### Kimlik Doğrulama Akışı\n\n1. Yönetim panelinden bir API istemcisi oluşturun.\n2. `POST /api/v1/auth/token` ile access token alın.\n3. Korumalı isteklerde `Authorization: Bearer {access_token}` kullanın.\n4. Access token süresi dolduğunda refresh token ile yeni token çifti alın.\n\n### Rate Limiting\n\nVarsayılan limitler istemci başına dakikada 60, saatte 1.000 ve günde 10.000 istektir. Güncel limitler response header'larında döner.",
    "contact": {
      "name": "MOSS Teknik Destek",
      "email": "destek@mossturkiye.com"
    }
  },
  "servers": [
    {
      "url": "http://localhost:5001",
      "description": "Gelistirme (Local)"
    },
    {
      "url": "https://api2.mossturkiye.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "Auth",
      "description": "Token alma, yenileme ve iptal islemleri",
      "x-position": 1
    },
    {
      "name": "Members",
      "description": "Uye yonetimi (listeleme, detay, olusturma, guncelleme)",
      "x-position": 2
    },
    {
      "name": "Branches",
      "description": "Sube bilgileri ve istatistikleri",
      "x-position": 3
    },
    {
      "name": "Packages",
      "description": "Paket listesi ve detaylari",
      "x-position": 4
    },
    {
      "name": "Financial",
      "description": "Finansal islemler, ozet ve taksit planlari",
      "x-position": 5
    },
    {
      "name": "Dashboard",
      "description": "Genel ve gunluk istatistikler",
      "x-position": 6
    },
    {
      "name": "Market",
      "description": "Market urunleri ve kategorileri",
      "x-position": 7
    },
    {
      "name": "Staff",
      "description": "Personel listesi ve detaylari",
      "x-position": 8
    },
    {
      "name": "Notifications",
      "description": "Bildirim listesi",
      "x-position": 9
    },
    {
      "name": "Private Lessons",
      "description": "Ozel ders bilgileri",
      "x-position": 10
    },
    {
      "name": "Presence",
      "description": "Turnike / Giris-cikis kayitlari",
      "x-position": 11
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "API access token. POST /api/v1/auth/token ile alinir."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "success",
          "error",
          "message"
        ],
        "additionalProperties": true,
        "properties": {
          "success": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "string",
            "example": "INVALID_TOKEN"
          },
          "message": {
            "type": "string",
            "example": "Token geçersiz veya süresi dolmuş."
          },
          "retryAfter": {
            "type": "integer",
            "nullable": true,
            "example": 15
          }
        }
      },
      "Pagination": {
        "type": "object",
        "required": [
          "page",
          "limit",
          "total",
          "total_pages"
        ],
        "additionalProperties": false,
        "properties": {
          "page": {
            "type": "integer",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "example": 50
          },
          "total": {
            "type": "integer",
            "example": 150
          },
          "total_pages": {
            "type": "integer",
            "example": 3
          }
        }
      },
      "TokenResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "additionalProperties": false,
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "data": {
            "$ref": "#/components/schemas/TokenData"
          }
        }
      },
      "Member": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "full_name": {
            "type": "string",
            "example": "Ahmet Yılmaz"
          },
          "surname": {
            "type": "string",
            "example": "Yılmaz"
          },
          "phone": {
            "type": "string",
            "example": "05551234567"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "ahmet@example.com"
          },
          "tc_no": {
            "type": "string",
            "example": "12345678901"
          },
          "member_no": {
            "type": "string",
            "example": "123456"
          },
          "gender": {
            "type": "string",
            "example": "Erkek"
          },
          "birth_date": {
            "type": "string",
            "format": "date"
          },
          "branch_id": {
            "type": "integer",
            "example": 1
          },
          "branch_name": {
            "type": "string",
            "example": "Ankara Şubesi"
          },
          "entry_status": {
            "type": "boolean",
            "example": true
          },
          "balance": {
            "type": "number",
            "format": "double",
            "example": 150
          },
          "freeze_status": {
            "type": "boolean",
            "example": false
          },
          "registered_at": {
            "type": "string",
            "format": "date-time"
          },
          "address": {
            "type": "string",
            "example": "Çankaya, Ankara"
          },
          "qr_code": {
            "type": "string",
            "example": "QR_USER_1"
          },
          "referral_code": {
            "type": "string",
            "example": "MOSS-ABC123"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": true
      },
      "Branch": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Ankara Şubesi"
          },
          "address": {
            "type": "string",
            "example": "Çankaya, Ankara"
          },
          "status": {
            "type": "string",
            "example": "Aktif"
          },
          "manager_name": {
            "type": "string",
            "example": "Mehmet Demir"
          },
          "phone": {
            "type": "string",
            "example": "03121234567"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "ankara@mossturkiye.com"
          },
          "founded_at": {
            "type": "string",
            "format": "date"
          }
        },
        "additionalProperties": true
      },
      "Package": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "1 Aylık Paket"
          },
          "price": {
            "type": "number",
            "format": "double",
            "example": 500
          },
          "duration_days": {
            "type": "integer",
            "example": 30
          },
          "duration_months": {
            "type": "integer",
            "example": 1
          },
          "is_active": {
            "type": "boolean",
            "example": true
          },
          "sort_order": {
            "type": "integer",
            "example": 1
          }
        },
        "additionalProperties": true
      },
      "PartialPagination": {
        "type": "object",
        "required": [
          "page",
          "limit"
        ],
        "additionalProperties": false,
        "properties": {
          "page": {
            "type": "integer",
            "example": 1
          },
          "limit": {
            "type": "integer",
            "example": 50
          }
        }
      },
      "TokenData": {
        "type": "object",
        "required": [
          "access_token",
          "refresh_token",
          "token_type",
          "expires_in",
          "refresh_expires_in",
          "scopes",
          "branch_id"
        ],
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": "string",
            "example": "moss_access_token_here"
          },
          "refresh_token": {
            "type": "string",
            "example": "moss_refresh_token_here"
          },
          "token_type": {
            "type": "string",
            "enum": [
              "Bearer"
            ],
            "example": "Bearer"
          },
          "expires_in": {
            "type": "integer",
            "description": "Saniye cinsinden access token ömrü.",
            "example": 7200
          },
          "refresh_expires_in": {
            "type": "integer",
            "description": "Saniye cinsinden refresh token ömrü.",
            "example": 2592000
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "members:list",
              "members:read"
            ]
          },
          "branch_id": {
            "type": "integer",
            "nullable": true,
            "example": 1
          }
        }
      },
      "MemberPackage": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 12
          },
          "member_id": {
            "type": "integer",
            "example": 1
          },
          "package_id": {
            "type": "integer",
            "example": 3
          },
          "branch_id": {
            "type": "integer",
            "example": 1
          },
          "package_type_name": {
            "type": "string",
            "example": "1 Aylık Paket"
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "format": "date"
          },
          "status": {
            "type": "string",
            "example": "Aktif"
          }
        }
      },
      "FinancialTransaction": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 101
          },
          "member_id": {
            "type": "integer",
            "nullable": true,
            "example": 1
          },
          "transaction_type": {
            "type": "string",
            "example": "Paket Satışı"
          },
          "transaction_code": {
            "type": "string",
            "example": "PKT-SATIS"
          },
          "reference_id": {
            "type": "integer",
            "nullable": true
          },
          "reference_table": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "example": 500
          },
          "balance_before": {
            "type": "number",
            "format": "double",
            "example": 0
          },
          "balance_after": {
            "type": "number",
            "format": "double",
            "example": 500
          },
          "payment_method": {
            "type": "string",
            "example": "Kredi Kartı"
          },
          "description": {
            "type": "string",
            "example": "Paket satışı"
          },
          "staff_name": {
            "type": "string",
            "nullable": true,
            "example": "Ayşe Kaya"
          },
          "staff_id": {
            "type": "integer",
            "nullable": true
          },
          "branch_id": {
            "type": "integer",
            "example": 1
          },
          "transaction_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_active": {
            "type": "boolean",
            "example": true
          },
          "is_cancelled": {
            "type": "boolean",
            "example": false
          },
          "cancelled_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancel_reason": {
            "type": "string",
            "nullable": true
          },
          "cancelled_by": {
            "type": "integer",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "InstallmentPlan": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 7
          },
          "member_id": {
            "type": "integer",
            "example": 1
          },
          "member_name": {
            "type": "string",
            "example": "Ahmet Yılmaz"
          },
          "branch_id": {
            "type": "integer",
            "example": 1
          },
          "status": {
            "type": "string",
            "example": "Aktif"
          },
          "total_amount": {
            "type": "number",
            "example": 1200
          },
          "collected_amount": {
            "type": "number",
            "example": 400
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MarketProduct": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Protein Bar"
          },
          "category_id": {
            "type": "integer",
            "example": 2
          },
          "category_name": {
            "type": "string",
            "example": "Atıştırmalık"
          },
          "price": {
            "type": "number",
            "example": 75
          },
          "stock": {
            "type": "integer",
            "example": 20
          },
          "is_active": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "MarketCategory": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 2
          },
          "name": {
            "type": "string",
            "example": "Atıştırmalık"
          },
          "is_active": {
            "type": "boolean",
            "example": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Staff": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 4
          },
          "full_name": {
            "type": "string",
            "example": "Ayşe Kaya"
          },
          "username": {
            "type": "string",
            "example": "ayse.kaya"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          },
          "branch_id": {
            "type": "integer"
          },
          "branch_name": {
            "type": "string"
          },
          "role_name": {
            "type": "string",
            "example": "Danışman"
          },
          "is_active": {
            "type": "boolean",
            "example": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_login": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "Notification": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 21
          },
          "branch_id": {
            "type": "integer",
            "nullable": true
          },
          "title": {
            "type": "string",
            "example": "Paket Hatırlatması"
          },
          "message": {
            "type": "string",
            "example": "Paket bitiş tarihiniz yaklaşıyor."
          },
          "type": {
            "type": "string",
            "example": "info"
          },
          "is_read": {
            "type": "boolean",
            "example": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PrivateLesson": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 8
          },
          "member_id": {
            "type": "integer",
            "example": 1
          },
          "member_name": {
            "type": "string",
            "example": "Ahmet Yılmaz"
          },
          "package_id": {
            "type": "integer",
            "example": 5
          },
          "package_name": {
            "type": "string",
            "example": "10 Ders"
          },
          "total_lessons": {
            "type": "integer",
            "example": 10
          },
          "remaining_lessons": {
            "type": "integer",
            "example": 7
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PresenceRecord": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "integer",
            "example": 81
          },
          "member_id": {
            "type": "integer",
            "example": 1
          },
          "member_name": {
            "type": "string",
            "example": "Ahmet Yılmaz"
          },
          "branch_id": {
            "type": "integer",
            "example": 1
          },
          "entry_time": {
            "type": "string",
            "format": "date-time"
          },
          "exit_time": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "example": "entry"
          },
          "access_method": {
            "type": "string",
            "example": "QR"
          }
        }
      },
      "BranchStats": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "total_members": {
            "type": "integer",
            "example": 520
          },
          "active_members": {
            "type": "integer",
            "example": 410
          },
          "active_packages": {
            "type": "integer",
            "example": 380
          },
          "monthly_revenue": {
            "type": "number",
            "example": 245000
          }
        }
      },
      "FinancialSummary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "total_transactions": {
            "type": "integer",
            "example": 350
          },
          "total_income": {
            "type": "number",
            "example": 280000
          },
          "total_expense": {
            "type": "number",
            "example": 35000
          },
          "net_amount": {
            "type": "number",
            "example": 245000
          }
        }
      },
      "DashboardStats": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "total_members": {
            "type": "integer",
            "example": 1250
          },
          "active_members": {
            "type": "integer",
            "example": 980
          },
          "monthly_revenue": {
            "type": "number",
            "example": 630000
          },
          "active_branches": {
            "type": "integer",
            "example": 4
          }
        }
      },
      "DashboardDaily": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "new_members_today": {
            "type": "integer",
            "example": 8
          },
          "today_revenue": {
            "type": "number",
            "example": 18500
          },
          "today_transactions": {
            "type": "integer",
            "example": 42
          }
        }
      },
      "ApiInfo": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "name": {
            "type": "string",
            "example": "MOSS Dashboard API"
          },
          "version": {
            "type": "string",
            "example": "v1"
          },
          "documentation": {
            "type": "string",
            "example": "/api-docs"
          },
          "branch_policy": {
            "type": "string"
          },
          "endpoints": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    },
    "headers": {
      "RateLimitMinute": {
        "description": "Dakikalık istek limiti.",
        "schema": {
          "type": "integer",
          "example": 60
        }
      },
      "RateLimitRemainingMinute": {
        "description": "Bu dakika içinde kalan istek sayısı.",
        "schema": {
          "type": "integer",
          "example": 55
        }
      },
      "RateLimitHour": {
        "description": "Saatlik istek limiti.",
        "schema": {
          "type": "integer",
          "example": 1000
        }
      },
      "RateLimitRemainingHour": {
        "description": "Bu saat içinde kalan istek sayısı.",
        "schema": {
          "type": "integer",
          "example": 990
        }
      }
    }
  },
  "paths": {
    "/api/v1/auth/token": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Token Al",
        "description": "client_key ve client_secret ile access_token ve refresh_token alın.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "client_key",
                  "client_secret"
                ],
                "properties": {
                  "client_key": {
                    "type": "string",
                    "example": "moss_abc123def456..."
                  },
                  "client_secret": {
                    "type": "string",
                    "example": "your-secret-here"
                  }
                }
              },
              "example": {
                "client_key": "moss_abc123def456...",
                "client_secret": "your-secret-here"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "access_token": "moss_access_token_here",
                    "refresh_token": "moss_refresh_token_here",
                    "token_type": "Bearer",
                    "expires_in": 7200,
                    "refresh_expires_in": 2592000,
                    "scopes": [
                      "members:list",
                      "members:read"
                    ],
                    "branch_id": 1
                  }
                }
              }
            }
          },
          "400": {
            "description": "Geçersiz istek",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "VALIDATION_ERROR",
                  "message": "İstek parametreleri geçersiz."
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "createToken",
        "x-position": 1,
        "security": [],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://api2.mossturkiye.com/api/v1/auth/token' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"client_key\":\"moss_abc123def456...\",\"client_secret\":\"your-secret-here\"}'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/auth/token\", {\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": {\n    \"client_key\": \"moss_abc123def456...\",\n    \"client_secret\": \"your-secret-here\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.post('https://api2.mossturkiye.com/api/v1/auth/token', headers={\"Accept\":\"application/json\",\"Content-Type\":\"application/json\"}, json={\"client_key\":\"moss_abc123def456...\",\"client_secret\":\"your-secret-here\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Token Yenile",
        "description": "Refresh token ile yeni bir access/refresh token çifti alın. Eski token otomatik olarak iptal edilir.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refresh_token"
                ],
                "properties": {
                  "refresh_token": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "refresh_token": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                },
                "example": {
                  "success": true,
                  "data": {
                    "access_token": "moss_new_access_token",
                    "refresh_token": "moss_new_refresh_token",
                    "token_type": "Bearer",
                    "expires_in": 7200,
                    "refresh_expires_in": 2592000,
                    "scopes": [
                      "members:list"
                    ],
                    "branch_id": 1
                  }
                }
              }
            }
          },
          "400": {
            "description": "Geçersiz istek",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "VALIDATION_ERROR",
                  "message": "İstek parametreleri geçersiz."
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "refreshToken",
        "x-position": 2,
        "security": [],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://api2.mossturkiye.com/api/v1/auth/refresh' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"refresh_token\":\"string\"}'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/auth/refresh\", {\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": {\n    \"refresh_token\": \"string\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.post('https://api2.mossturkiye.com/api/v1/auth/refresh', headers={\"Accept\":\"application/json\",\"Content-Type\":\"application/json\"}, json={\"refresh_token\":\"string\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/auth/revoke": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Token Iptal",
        "description": "Mevcut tokenı veya API istemcisine ait tüm tokenları iptal edin.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token_type": {
                    "type": "string",
                    "enum": [
                      "current",
                      "all"
                    ],
                    "description": "\"all\" ile tum tokenlar iptal edilir"
                  }
                }
              },
              "example": {
                "token_type": "current"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "message"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "message": "Token iptal edildi."
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "revokeToken",
        "x-position": 3,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://api2.mossturkiye.com/api/v1/auth/revoke' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"token_type\":\"current\"}'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/auth/revoke\", {\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": {\n    \"token_type\": \"current\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.post('https://api2.mossturkiye.com/api/v1/auth/revoke', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\",\"Content-Type\":\"application/json\"}, json={\"token_type\":\"current\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/members": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Uye Listesi",
        "description": "Sayfalanmış, aranabilir ve filtrelenebilir üye listesi.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50,
              "maximum": 200
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Ad, telefon veya email ile arama"
          },
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "description": "Sube filtresi"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "active",
                "passive"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Member"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "full_name": "Ahmet Yılmaz",
                      "phone": "05551234567",
                      "branch_id": 1,
                      "branch_name": "Ankara Şubesi",
                      "entry_status": true
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 50,
                    "total": 1,
                    "total_pages": 1
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listMembers",
        "x-position": 4,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/members?page=1&limit=50&search=string&branch_id=1&status=active' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members?page=1&limit=50&search=string&branch_id=1&status=active\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/members?page=1&limit=50&search=string&branch_id=1&status=active', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      },
      "post": {
        "tags": [
          "Members"
        ],
        "summary": "Yeni Uye Olustur",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "full_name",
                  "phone",
                  "branch_id"
                ],
                "properties": {
                  "full_name": {
                    "type": "string",
                    "example": "Ahmet Yilmaz"
                  },
                  "surname": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string",
                    "example": "05551234567"
                  },
                  "email": {
                    "type": "string"
                  },
                  "tc_no": {
                    "type": "string"
                  },
                  "gender": {
                    "type": "string"
                  },
                  "birth_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "branch_id": {
                    "type": "integer"
                  },
                  "address": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "full_name": "Ahmet Yilmaz",
                "surname": "string",
                "phone": "05551234567",
                "email": "string",
                "tc_no": "string",
                "gender": "string",
                "birth_date": "2026-08-29",
                "branch_id": 1,
                "address": "string"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Kaynak oluşturuldu.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Member"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "full_name": "Ahmet Yılmaz",
                    "phone": "05551234567",
                    "branch_id": 1,
                    "member_no": "123456",
                    "qr_code": "QR_USER_1"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "409": {
            "description": "Kayıt çakışması",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "DUPLICATE",
                  "message": "Aynı bilgilerle mevcut bir kayıt bulunuyor."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "createMember",
        "description": "Belirtilen şubede yeni bir üye oluşturur.",
        "x-position": 5,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url 'https://api2.mossturkiye.com/api/v1/members' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"full_name\":\"Ahmet Yilmaz\",\"surname\":\"string\",\"phone\":\"05551234567\",\"email\":\"string\",\"tc_no\":\"string\",\"gender\":\"string\",\"birth_date\":\"2026-08-29\",\"branch_id\":1,\"address\":\"string\"}'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members\", {\n  \"method\": \"POST\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": {\n    \"full_name\": \"Ahmet Yilmaz\",\n    \"surname\": \"string\",\n    \"phone\": \"05551234567\",\n    \"email\": \"string\",\n    \"tc_no\": \"string\",\n    \"gender\": \"string\",\n    \"birth_date\": \"2026-08-29\",\n    \"branch_id\": 1,\n    \"address\": \"string\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.post('https://api2.mossturkiye.com/api/v1/members', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\",\"Content-Type\":\"application/json\"}, json={\"full_name\":\"Ahmet Yilmaz\",\"surname\":\"string\",\"phone\":\"05551234567\",\"email\":\"string\",\"tc_no\":\"string\",\"gender\":\"string\",\"birth_date\":\"2026-08-29\",\"branch_id\":1,\"address\":\"string\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/members/{id}": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Uye Detay",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Member"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "full_name": "Ahmet Yılmaz",
                    "phone": "05551234567",
                    "branch_id": 1,
                    "branch_name": "Ankara Şubesi"
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "404": {
            "description": "Kaynak bulunamadı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "NOT_FOUND",
                  "message": "İstenen kaynak bulunamadı."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getMember",
        "description": "Tek bir üyenin ayrıntılarını döner.",
        "x-position": 6,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/members/1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members/1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/members/1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      },
      "put": {
        "tags": [
          "Members"
        ],
        "summary": "Uye Guncelle",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "full_name": {
                    "type": "string"
                  },
                  "surname": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "branch_id": {
                    "type": "integer"
                  }
                }
              },
              "example": {
                "full_name": "string",
                "surname": "string",
                "phone": "string",
                "email": "string",
                "address": "string",
                "branch_id": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Member"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "full_name": "Ahmet Yılmaz",
                    "email": "ahmet@example.com",
                    "branch_id": 1
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "404": {
            "description": "Kaynak bulunamadı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "NOT_FOUND",
                  "message": "İstenen kaynak bulunamadı."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "updateMember",
        "description": "Mevcut bir üyenin izin verilen alanlarını günceller.",
        "x-position": 7,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request PUT \\\n  --url 'https://api2.mossturkiye.com/api/v1/members/1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"full_name\":\"string\",\"surname\":\"string\",\"phone\":\"string\",\"email\":\"string\",\"address\":\"string\",\"branch_id\":1}'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members/1\", {\n  \"method\": \"PUT\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\",\n    \"Content-Type\": \"application/json\"\n  },\n  \"body\": {\n    \"full_name\": \"string\",\n    \"surname\": \"string\",\n    \"phone\": \"string\",\n    \"email\": \"string\",\n    \"address\": \"string\",\n    \"branch_id\": 1\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.put('https://api2.mossturkiye.com/api/v1/members/1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\",\"Content-Type\":\"application/json\"}, json={\"full_name\":\"string\",\"surname\":\"string\",\"phone\":\"string\",\"email\":\"string\",\"address\":\"string\",\"branch_id\":1})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/members/{id}/packages": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Uye Paketleri",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MemberPackage"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 12,
                      "member_id": 1,
                      "package_id": 3,
                      "package_type_name": "1 Aylık Paket",
                      "status": "Aktif"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listMemberPackages",
        "description": "Üyeye atanmış paketleri döner.",
        "x-position": 8,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/members/1/packages' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members/1/packages\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/members/1/packages', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/members/{id}/financial": {
      "get": {
        "tags": [
          "Members"
        ],
        "summary": "Uye Finansal Islemleri",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FinancialTransaction"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PartialPagination"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 101,
                      "member_id": 1,
                      "transaction_type": "Paket Satışı",
                      "amount": 500,
                      "branch_id": 1
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 50
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listMemberFinancialTransactions",
        "description": "Üyenin finansal hareketlerini sayfalanmış olarak döner.",
        "x-position": 9,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/members/1/financial?page=1&limit=50' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/members/1/financial?page=1&limit=50\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/members/1/financial?page=1&limit=50', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/branches": {
      "get": {
        "tags": [
          "Branches"
        ],
        "summary": "Sube Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Branch"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "name": "Ankara Şubesi",
                      "status": "Aktif"
                    }
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listBranches",
        "description": "API istemcisinin erişebildiği şubeleri döner.",
        "x-position": 10,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/branches' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/branches\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/branches', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/branches/{id}": {
      "get": {
        "tags": [
          "Branches"
        ],
        "summary": "Sube Detay",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Branch"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "Ankara Şubesi",
                    "status": "Aktif"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "404": {
            "description": "Kaynak bulunamadı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "NOT_FOUND",
                  "message": "İstenen kaynak bulunamadı."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getBranch",
        "description": "Tek bir şubenin ayrıntılarını döner.",
        "x-position": 11,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/branches/1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/branches/1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/branches/1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/branches/{id}/stats": {
      "get": {
        "tags": [
          "Branches"
        ],
        "summary": "Sube Istatistikleri",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/BranchStats"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "total_members": 520,
                    "active_members": 410,
                    "active_packages": 380,
                    "monthly_revenue": 245000
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getBranchStats",
        "description": "Şubenin üye, paket ve gelir istatistiklerini döner.",
        "x-position": 12,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/branches/1/stats' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/branches/1/stats\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/branches/1/stats', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/packages": {
      "get": {
        "tags": [
          "Packages"
        ],
        "summary": "Paket Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Package"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "name": "1 Aylık Paket",
                      "price": 500,
                      "duration_days": 30,
                      "is_active": true
                    }
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listPackages",
        "description": "Aktif paketleri döner.",
        "x-position": 13,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/packages' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/packages\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/packages', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/packages/{id}": {
      "get": {
        "tags": [
          "Packages"
        ],
        "summary": "Paket Detay",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Package"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 1,
                    "name": "1 Aylık Paket",
                    "price": 500,
                    "duration_days": 30,
                    "is_active": true
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "404": {
            "description": "Kaynak bulunamadı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "NOT_FOUND",
                  "message": "İstenen kaynak bulunamadı."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getPackage",
        "description": "Tek bir paketin ayrıntılarını döner.",
        "x-position": 14,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/packages/1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/packages/1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/packages/1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/financial/transactions": {
      "get": {
        "tags": [
          "Financial"
        ],
        "summary": "Finansal Islem Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "transaction_type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FinancialTransaction"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 101,
                      "transaction_type": "Paket Satışı",
                      "amount": 500,
                      "branch_id": 1
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 50,
                    "total": 1,
                    "total_pages": 1
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listFinancialTransactions",
        "description": "Filtrelenebilir ve sayfalanmış finansal hareket listesini döner.",
        "x-position": 15,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/financial/transactions?page=1&limit=50&branch_id=1&start_date=2026-08-29&end_date=2026-08-29&transaction_type=string' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/financial/transactions?page=1&limit=50&branch_id=1&start_date=2026-08-29&end_date=2026-08-29&transaction_type=string\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/financial/transactions?page=1&limit=50&branch_id=1&start_date=2026-08-29&end_date=2026-08-29&transaction_type=string', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/financial/summary": {
      "get": {
        "tags": [
          "Financial"
        ],
        "summary": "Finansal Ozet",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "period",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "day",
                "week",
                "month",
                "year"
              ],
              "default": "month"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/FinancialSummary"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "total_transactions": 350,
                    "total_income": 280000,
                    "total_expense": 35000,
                    "net_amount": 245000
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getFinancialSummary",
        "description": "Seçilen dönem için gelir, gider ve net toplamları döner.",
        "x-position": 16,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/financial/summary?branch_id=1&period=month' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/financial/summary?branch_id=1&period=month\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/financial/summary?branch_id=1&period=month', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/financial/installments": {
      "get": {
        "tags": [
          "Financial"
        ],
        "summary": "Taksit Planlari",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InstallmentPlan"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PartialPagination"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 7,
                      "member_id": 1,
                      "member_name": "Ahmet Yılmaz",
                      "status": "Aktif",
                      "total_amount": 1200
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 50
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listInstallmentPlans",
        "description": "Taksit planlarını sayfalanmış olarak döner.",
        "x-position": 17,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/financial/installments?page=1&limit=50&status=string' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/financial/installments?page=1&limit=50&status=string\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/financial/installments?page=1&limit=50&status=string', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/dashboard/stats": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Genel Istatistikler",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "description": "Belirli sube icin filtre"
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/DashboardStats"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "total_members": 1250,
                    "active_members": 980,
                    "monthly_revenue": 630000,
                    "active_branches": 4
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getDashboardStats",
        "description": "Genel dashboard metriklerini döner.",
        "x-position": 18,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/dashboard/stats?branch_id=1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/dashboard/stats?branch_id=1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/dashboard/stats?branch_id=1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/dashboard/daily": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Gunluk Ozet",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/DashboardDaily"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "new_members_today": 8,
                    "today_revenue": 18500,
                    "today_transactions": 42
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getDashboardDailySummary",
        "description": "Bugünün üye ve işlem toplamlarını döner.",
        "x-position": 19,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/dashboard/daily?branch_id=1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/dashboard/daily?branch_id=1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/dashboard/daily?branch_id=1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/market/products": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "Urun Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MarketProduct"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "name": "Protein Bar",
                      "category_name": "Atıştırmalık",
                      "price": 75,
                      "stock": 20
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listMarketProducts",
        "description": "Aktif market ürünlerini döner.",
        "x-position": 20,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/market/products' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/market/products\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/market/products', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/market/categories": {
      "get": {
        "tags": [
          "Market"
        ],
        "summary": "Kategori Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MarketCategory"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 2,
                      "name": "Atıştırmalık",
                      "is_active": true
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listMarketCategories",
        "description": "Market kategorilerini döner.",
        "x-position": 21,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/market/categories' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/market/categories\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/market/categories', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/staff": {
      "get": {
        "tags": [
          "Staff"
        ],
        "summary": "Personel Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Staff"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 4,
                      "full_name": "Ayşe Kaya",
                      "role_name": "Danışman",
                      "branch_id": 1,
                      "is_active": true
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listStaff",
        "description": "API istemcisinin erişebildiği personeli döner.",
        "x-position": 22,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/staff' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/staff\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/staff', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/staff/{id}": {
      "get": {
        "tags": [
          "Staff"
        ],
        "summary": "Personel Detay",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Staff"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 4,
                    "full_name": "Ayşe Kaya",
                    "role_name": "Danışman",
                    "branch_id": 1,
                    "is_active": true
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "404": {
            "description": "Kaynak bulunamadı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "NOT_FOUND",
                  "message": "İstenen kaynak bulunamadı."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "getStaffMember",
        "description": "Tek bir personelin ayrıntılarını döner.",
        "x-position": 23,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/staff/1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/staff/1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/staff/1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "Bildirim Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Notification"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PartialPagination"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 21,
                      "title": "Paket Hatırlatması",
                      "type": "info",
                      "is_read": false
                    }
                  ],
                  "pagination": {
                    "page": 1,
                    "limit": 50
                  }
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listNotifications",
        "description": "Bildirimleri sayfalanmış olarak döner.",
        "x-position": 24,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/notifications?page=1&limit=50&branch_id=1' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/notifications?page=1&limit=50&branch_id=1\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/notifications?page=1&limit=50&branch_id=1', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/private-lessons": {
      "get": {
        "tags": [
          "Private Lessons"
        ],
        "summary": "Ozel Ders Listesi",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PrivateLesson"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 8,
                      "member_id": 1,
                      "member_name": "Ahmet Yılmaz",
                      "package_name": "10 Ders",
                      "remaining_lessons": 7
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listPrivateLessons",
        "description": "En güncel özel ders satışlarını döner.",
        "x-position": 25,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/private-lessons' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/private-lessons\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/private-lessons', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/presence": {
      "get": {
        "tags": [
          "Presence"
        ],
        "summary": "Giris-Cikis Kayitlari",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "branch_id",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Belirtilmezse bugun"
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PresenceRecord"
                      }
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 81,
                      "member_id": 1,
                      "member_name": "Ahmet Yılmaz",
                      "branch_id": 1,
                      "entry_time": "2026-08-29T08:30:00Z",
                      "direction": "entry"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Kimlik doğrulama hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INVALID_TOKEN",
                  "message": "Token geçersiz veya süresi dolmuş."
                }
              }
            }
          },
          "403": {
            "description": "Erişim reddedildi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "INSUFFICIENT_SCOPE",
                  "message": "Bu işlem için gerekli yetkiye sahip değilsiniz."
                }
              }
            }
          },
          "429": {
            "description": "İstek limiti aşıldı",
            "headers": {
              "X-RateLimit-Limit-Minute": {
                "$ref": "#/components/headers/RateLimitMinute"
              },
              "X-RateLimit-Remaining-Minute": {
                "$ref": "#/components/headers/RateLimitRemainingMinute"
              },
              "X-RateLimit-Limit-Hour": {
                "$ref": "#/components/headers/RateLimitHour"
              },
              "X-RateLimit-Remaining-Hour": {
                "$ref": "#/components/headers/RateLimitRemainingHour"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "RATE_LIMIT_EXCEEDED",
                  "message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin.",
                  "retryAfter": 15
                }
              }
            }
          },
          "500": {
            "description": "Sunucu hatası",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "example": {
                  "success": false,
                  "error": "SERVER_ERROR",
                  "message": "İşlem sırasında beklenmeyen bir hata oluştu."
                }
              }
            }
          }
        },
        "operationId": "listPresenceRecords",
        "description": "Belirtilen tarihin turnike giriş-çıkış kayıtlarını döner.",
        "x-position": 26,
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/presence?branch_id=1&date=2026-08-29' \\\n  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/presence?branch_id=1&date=2026-08-29\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/presence?branch_id=1&date=2026-08-29', headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_ACCESS_TOKEN\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    },
    "/api/v1/info": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "API Bilgisi",
        "description": "Kimlik doğrulaması gerektirmeden API sürümü, şube politikası ve endpoint indeksini döner.",
        "responses": {
          "200": {
            "description": "Başarılı yanıt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "data"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/ApiInfo"
                    }
                  }
                },
                "example": {
                  "success": true,
                  "data": {
                    "name": "MOSS Dashboard API",
                    "version": "v1",
                    "documentation": "/api-docs",
                    "branch_policy": "Branch-scoped clients can only access their assigned branch.",
                    "endpoints": {
                      "auth": {
                        "token": "POST /api/v1/auth/token"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "getApiInfo",
        "x-position": 27,
        "security": [],
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "cURL",
            "source": "curl --request GET \\\n  --url 'https://api2.mossturkiye.com/api/v1/info'"
          },
          {
            "lang": "JavaScript",
            "label": "JavaScript",
            "source": "import axios from 'axios';\n\nconst response = await axios(\"https://api2.mossturkiye.com/api/v1/info\", {\n  \"method\": \"GET\",\n  \"headers\": {\n    \"Accept\": \"application/json\"\n  }\n});\nconsole.log(response.data);"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import requests\n\nresponse = requests.get('https://api2.mossturkiye.com/api/v1/info', headers={\"Accept\":\"application/json\"})\nresponse.raise_for_status()\nprint(response.json())"
          }
        ]
      }
    }
  }
}
