<?php

namespace App\Swagger\v1;

/**
 * @OA\Info(
 *      version="1.0.0",
 *      title="SAM API Documentation",
 *      description="===============================<br><strong>[공통 에러 응답 포맷]</strong><br>400: 필수 파라미터 누락<br>401: 인증 실패<br>403: 권한 없음<br>404: 존재하지 않는 URI 또는 데이터<br>405: 허용되지 않는 메서드<br>500: 서버 에러<br><br><strong>모든 에러 응답 예시:</strong><br>{<br>&nbsp;&nbsp;&quot;success&quot;: false,<br>&nbsp;&nbsp;&quot;message&quot;: &quot;에러 메시지&quot;,<br>&nbsp;&nbsp;&quot;data&quot;: null<br>}<br>===============================",
 *
 *      @OA\Contact(
 *          email="shine1324@gmail.com"
 *      )
 * )
 *
 * @OA\Server(
 *      url=L5_SWAGGER_CONST_HOST,
 *      description=L5_SWAGGER_CONST_NAME
 * )
 *
 * @OA\SecurityScheme(
 *      securityScheme="ApiKeyAuth",
 *      type="apiKey",
 *      in="header",
 *      name="X-API-KEY"
 * )
 * @OA\SecurityScheme(
 *      securityScheme="BearerAuth",
 *      type="http",
 *      scheme="bearer",
 *      bearerFormat="JWT"
 * )
 *
 * @OA\Tag(
 *     name="Auth",
 *     description="로그인/로그아웃 및 인증 관련 API
 *
 * **인증 흐름 (Authentication Flow)**
 * 1. 모든 API 요청은 반드시 X-API-KEY 헤더가 필요합니다 (API Key 인증)
 * 2. 사용자 인증이 필요한 API는 추가로 Bearer 토큰이 필요합니다 (JWT 인증)
 *
 * **API Key 사용 예시:**
 * ```
 * X-API-KEY: your-api-key-here
 * ```
 *
 * **Bearer Token 사용 예시:**
 * ```
 * Authorization: Bearer 1|abc123xyz456
 * ```
 *
 * **IP 기반 접근:**
 * - API Key가 없는 경우, IP 주소로 접근 제어가 가능합니다
 * - 단, 운영 환경에서는 반드시 API Key 사용을 권장합니다"
 * )
 * @OA\Tag(
 *     name="API Key 인증",
 *     description="API Key 유효성 검사"
 * )
 * @OA\Tag(
 *     name="User",
 *     description="사용자 자기 계정 관련 API"
 * )
 * @OA\Tag(
 *     name="Member",
 *     description="회원 관리 API"
 * )
 * @OA\Tag(
 *     name="Admin-Users",
 *     description="관리자 사용자 관리 API"
 * )
 * @OA\Tag(
 *     name="Product",
 *     description="제품 관련 API"
 * )
 */
class SAMInfo {}
