<?php

namespace App\Http\Controllers;

use OpenApi\Attributes as OA;

#[OA\Info(
    version: '1.0.0',
    title: 'Boğaziçi Denizcilik API',
    description: 'Boğaziçi Denizcilik eğitim platformu backend API dokümantasyonu. Public (v1) ve Admin endpointlerini içerir.',
    contact: new OA\Contact(
        name: 'Boğaziçi Denizcilik',
        email: 'admin@bogazicidenizcilik.com.tr',
    ),
)]
#[OA\Server(
    url: L5_SWAGGER_CONST_HOST,
    description: 'API Server',
)]
#[OA\SecurityScheme(
    securityScheme: 'sanctum',
    type: 'apiKey',
    name: 'Authorization',
    in: 'header',
    description: 'Enter token in format: Bearer {token}',
)]
#[OA\Tag(name: 'Auth', description: 'Kimlik doğrulama işlemleri')]
#[OA\Tag(name: 'Upload', description: 'Dosya yükleme')]
#[OA\Tag(name: 'Categories', description: 'Kategori işlemleri')]
#[OA\Tag(name: 'Courses', description: 'Eğitim işlemleri')]
#[OA\Tag(name: 'Schedules', description: 'Eğitim takvimi')]
#[OA\Tag(name: 'Announcements', description: 'Duyuru ve haberler')]
#[OA\Tag(name: 'Hero Slides', description: 'Ana sayfa slider')]
#[OA\Tag(name: 'Leads', description: 'İletişim talepleri')]
#[OA\Tag(name: 'Menus', description: 'Menü yönetimi')]
#[OA\Tag(name: 'Comments', description: 'Yorum yönetimi')]
#[OA\Tag(name: 'FAQs', description: 'Sıkça sorulan sorular')]
#[OA\Tag(name: 'Guide Cards', description: 'Rehber kartları')]
#[OA\Tag(name: 'Settings', description: 'Site ayarları')]
#[OA\Tag(name: 'Pages', description: 'Sayfa yönetimi')]
#[OA\Tag(name: 'Admin - Categories', description: 'Admin: Kategori CRUD')]
#[OA\Tag(name: 'Admin - Courses', description: 'Admin: Eğitim CRUD')]
#[OA\Tag(name: 'Admin - Schedules', description: 'Admin: Takvim CRUD')]
#[OA\Tag(name: 'Admin - Announcements', description: 'Admin: Duyuru CRUD')]
#[OA\Tag(name: 'Admin - Hero Slides', description: 'Admin: Hero Slide CRUD')]
#[OA\Tag(name: 'Admin - Leads', description: 'Admin: Başvuru yönetimi')]
#[OA\Tag(name: 'Admin - Menus', description: 'Admin: Menü CRUD')]
#[OA\Tag(name: 'Admin - Comments', description: 'Admin: Yorum yönetimi')]
#[OA\Tag(name: 'Admin - FAQs', description: 'Admin: SSS CRUD')]
#[OA\Tag(name: 'Admin - Guide Cards', description: 'Admin: Rehber kartları CRUD')]
#[OA\Tag(name: 'Admin - Settings', description: 'Admin: Ayar yönetimi')]
#[OA\Tag(name: 'Admin - Pages', description: 'Admin: Sayfa CRUD')]
class SwaggerAnnotations {}
