{
  "openapi": "3.0.3",
  "info": {
    "title": "Dijimind Student API",
    "description": "Dijimind Eğitim ve Analiz Platformu Öğrenci Mobil ve Yapay Zeka Entegrasyon API'si",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://dev.dijimind.com/api",
      "description": "Geliştirme Sunucusu"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/login": {
      "post": {
        "summary": "Öğrenci Girişi",
        "description": "E-posta veya telefon numarası ve şifre ile giriş yaparak JWT yetkilendirme token'ı alır.",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["email", "password"],
                "properties": {
                  "email": { "type": "string", "example": "ogrenci@dijimind.com" },
                  "password": { "type": "string", "example": "123456" }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Başarılı giriş ve token yanıtı" }
        }
      }
    },
    "/me": {
      "get": {
        "summary": "Öğrenci Profil Detayları",
        "description": "Oturum açan öğrencinin profil, okul, sınıf ve temsilci bilgilerini getirir.",
        "responses": {
          "200": { "description": "Profil bilgileri" }
        }
      }
    },
    "/dashboard/stats": {
      "get": {
        "summary": "Öğrenci Gösterge Paneli İstatistikleri",
        "description": "Çözülen toplam soru, tamamlanan ödevler, ortalama netler ve genel durum özetini sunar.",
        "responses": {
          "200": { "description": "Özet istatistikler" }
        }
      }
    },
    "/v1/student/dijiayna/profile": {
      "get": {
        "summary": "Dijimind Ayna Yapay Zeka Profili",
        "description": "Öğrencinin yapay zeka destekli ders bazlı öğrenme ve yetkinlik profilini döner.",
        "responses": {
          "200": { "description": "DijiAyna analiz verileri" }
        }
      }
    },
    "/v1/student/exam-results": {
      "get": {
        "summary": "Sınav Sonuçları Listesi",
        "description": "Katılınan tüm deneme sınavlarının net, puan ve sıralama sonuçlarını listeler.",
        "responses": {
          "200": { "description": "Sınav sonuçları" }
        }
      }
    },
    "/v1/student/exam-results/{id}/report": {
      "get": {
        "summary": "Sınav Karnesi ve Analiz Raporu",
        "description": "Belirli bir sınavın detaylı karnesini, konu ve ders bazlı doğru/yanlış dağılımını getirir.",
        "parameters": [
          { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }
        ],
        "responses": {
          "200": { "description": "Detaylı sınav karnesi" }
        }
      }
    },
    "/v1/student/analytics/subject-mastery": {
      "get": {
        "summary": "Ders Bazlı Ustalık Analizi",
        "description": "Öğrencinin her ders ve müfredat konusu için hakimiyet ve kazanım yüzdelerini hesaplar.",
        "responses": {
          "200": { "description": "Konu hakimiyet yüzdeleri" }
        }
      }
    },
    "/v1/student/analytics/net-trends": {
      "get": {
        "summary": "Net Değişim Trendleri",
        "description": "Zamana bağlı TYT/AYT/LGS net değişim grafiği verilerini getirir.",
        "responses": {
          "200": { "description": "Net trend istatistikleri" }
        }
      }
    },
    "/v1/student/analytics/topic-development": {
      "get": {
        "summary": "Konu Gelişim ve Eksik Analizi",
        "description": "Öğrencinin en çok zorlandığı ve tekrar etmesi gereken konuları belirler.",
        "responses": {
          "200": { "description": "Eksik konular listesi" }
        }
      }
    },
    "/v1/student/ktt/subjects": {
      "get": {
        "summary": "KTT Oluşturulabilir Ders ve Konu Listesi",
        "description": "Konu Tarama Testi (KTT) için seçilebilir ders ve alt konuları listeler.",
        "responses": {
          "200": { "description": "Müfredat konu listesi" }
        }
      }
    },
    "/v1/student/ktt/create": {
      "post": {
        "summary": "Özel KTT Testi Oluştur",
        "description": "Seçilen ders ve konulardan yapay zeka / dinamik KTT testi üretir.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ders": { "type": "string", "example": "Matematik" },
                  "konular": { "type": "array", "items": { "type": "string" } },
                  "soru_sayisi": { "type": "integer", "example": 10 }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Oluşturulan KTT test detayı ve soruları" }
        }
      }
    },
    "/v1/student/ktt/finish": {
      "post": {
        "summary": "KTT Test Sonucunu Kaydet",
        "description": "Çözülen KTT testinin doğru, yanlış ve boş sayılarını kaydeder.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ktt_id": { "type": "integer" },
                  "dogru": { "type": "integer" },
                  "yanlis": { "type": "integer" },
                  "bos": { "type": "integer" }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "KTT kaydı tamamlandı" }
        }
      }
    },
    "/v1/student/manual-results/calculate": {
      "post": {
        "summary": "Manuel TYT Net ve Puan Hesaplama",
        "description": "Girilmiş olan doğru-yanlış sayıları ile ham net ve tahmini sınav puanı hesaplar.",
        "responses": {
          "200": { "description": "Hesaplanan net ve puanlar" }
        }
      }
    },
    "/v1/student/manual-results/create": {
      "post": {
        "summary": "Harici Deneme Sınavı Kaydet",
        "description": "Kurum dışında çözülen deneme sınavı sonuçlarını öğrencinin geçmişine işler.",
        "responses": {
          "200": { "description": "Manuel sonuç kaydedildi" }
        }
      }
    },
    "/v1/student/tasks": {
      "get": {
        "summary": "Ödev ve Görev Listesi",
        "description": "Öğrenciye tanımlanmış tüm ödevleri ve kişisel görevleri listeler.",
        "responses": {
          "200": { "description": "Görev listesi" }
        }
      },
      "post": {
        "summary": "Yeni Görev Ekle",
        "description": "Öğrencinin yapılacaklar listesine yeni ödev/çalışma hedefi ekler.",
        "responses": {
          "200": { "description": "Görev eklendi" }
        }
      }
    },
    "/v1/student/tasks/{id}/status": {
      "patch": {
        "summary": "Görev Durumunu Güncelle",
        "description": "Görev tamamlama durumunu (1/0) günceller.",
        "parameters": [
          { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }
        ],
        "responses": {
          "200": { "description": "Görev güncellendi" }
        }
      }
    },
    "/v1/student/calendar/events": {
      "get": {
        "summary": "Takvim ve Ajanda Etkinlikleri",
        "responses": {
          "200": { "description": "Ajanda kayıtları" }
        }
      },
      "post": {
        "summary": "Yeni Takvim Etkinliği Ekle",
        "responses": {
          "200": { "description": "Etkinlik oluşturuldu" }
        }
      }
    },
    "/v1/student/books": {
      "get": {
        "summary": "Kaynak Kitaplar Listesi",
        "description": "Tanımlı kaynak kitapları ve ünite tamamlama ilerlemelerini getirir.",
        "responses": {
          "200": { "description": "Kaynak kitap listesi" }
        }
      },
      "post": {
        "summary": "Yeni Kaynak Kitap Ekle",
        "description": "Barkod veya ID ile öğrenci kütüphanesine yeni kaynak ekler ve ünite görevlerini tanımlar.",
        "responses": {
          "200": { "description": "Kitap eklendi ve üniteler oluşturuldu" }
        }
      }
    },
    "/v1/student/books/{id}/progress": {
      "patch": {
        "summary": "Kitap Ünite İlerleme / D-Y-B Kaydı",
        "description": "Kaynak kitaptaki bir ünitenin doğru/yanlış/boş verilerini ve tamamlandı işaretini kaydeder.",
        "parameters": [
          { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }
        ],
        "responses": {
          "200": { "description": "Ünite ilerlemesi güncellendi" }
        }
      }
    },
    "/student/question-tracking": {
      "post": {
        "summary": "Günlük Soru Çözme Takibi",
        "description": "Öğrencinin ders bazında günlük çözdüğü soru, doğru, yanlış ve süre verilerini kaydeder.",
        "responses": {
          "200": { "description": "Soru takibi kaydedildi" }
        }
      }
    },
    "/student/question-tracking/report": {
      "get": {
        "summary": "Soru Çözme Takip Raporu",
        "description": "Tarih bazlı günlük/haftalık soru çözme sayıları ve başarı yüzdelerini raporlar.",
        "responses": {
          "200": { "description": "Soru takip raporu" }
        }
      }
    },
    "/v1/student/curriculum": {
      "get": {
        "summary": "Müfredat Ders ve Konu Ağacı",
        "responses": {
          "200": { "description": "Müfredat yapısı" }
        }
      }
    },
    "/v1/student/helpdesk": {
      "get": {
        "summary": "Yardım Masası ve Rehberlik İçerikleri",
        "responses": {
          "200": { "description": "Rehberlik ve yardım dokümanları" }
        }
      }
    }
  }
}
