<?php

namespace App\Swagger\v1;

/**
 * 전역 재사용 컴포넌트 정의만 모아둔 파일입니다.
 *
 * @OA\Parameter(
 *     parameter="Page",
 *     name="page",
 *     in="query",
 *     required=false,
 *     description="페이지 번호(1부터)",
 *
 *     @OA\Schema(type="integer", minimum=1, example=1)
 * )
 *
 * @OA\Parameter(
 *     parameter="Size",
 *     name="size",
 *     in="query",
 *     required=false,
 *     description="페이지 당 개수(기본 20)",
 *
 *     @OA\Schema(type="integer", minimum=1, maximum=200, example=20)
 * )
 * @OA\Schema(
 *     schema="ApiResponse",
 *     type="object",
 *
 *     @OA\Property(property="success", type="boolean", example=true),
 *     @OA\Property(property="message", type="string", example="요청 성공"),
 *     @OA\Property(property="data", nullable=true)
 * )
 *
 * @OA\Schema(
 *     schema="PaginationMeta",
 *     type="object",
 *
 *     @OA\Property(property="page", type="integer", example=1),
 *     @OA\Property(property="size", type="integer", example=20),
 *     @OA\Property(property="total", type="integer", example=126),
 *     @OA\Property(property="last_page", type="integer", example=7)
 * )
 *
 * @OA\Schema(
 *     schema="User",
 *     type="object",
 *     required={"id","name","email"},
 *
 *     @OA\Property(property="id", type="integer", example=101),
 *     @OA\Property(property="tenant_id", type="integer", example=1),
 *     @OA\Property(property="name", type="string", example="홍길동"),
 *     @OA\Property(property="email", type="string", example="hong@kdcorp.co.kr"),
 *     @OA\Property(property="phone", type="string", nullable=true, example="010-1234-5678"),
 *     @OA\Property(property="is_active", type="boolean", example=true),
 *     @OA\Property(property="roles", type="array", @OA\Items(type="string"), example={"admin","manager"}),
 *     @OA\Property(property="created_at", type="string", example="2025-07-20 10:22:33"),
 *     @OA\Property(property="updated_at", type="string", example="2025-08-01 15:00:10")
 * )
 *
 * @OA\Schema(
 *     schema="LoginRequest",
 *     type="object",
 *     required={"email","password"},
 *
 *     @OA\Property(property="email", type="string", example="hong@kdcorp.co.kr"),
 *     @OA\Property(property="password", type="string", example="secret1234!")
 * )
 *
 * @OA\Schema(
 *     schema="TokenResponse",
 *     type="object",
 *
 *     @OA\Property(property="access_token", type="string", example="eyJhbGciOi..."),
 *     @OA\Property(property="token_type", type="string", example="Bearer"),
 *     @OA\Property(property="expires_in", type="integer", example=3600)
 * )
 *
 * @OA\Schema(
 *      schema="ErrorResponse",
 *      type="object",
 *      description="공통 에러 응답 포맷",
 *
 *      @OA\Property(property="success", type="boolean", example=false),
 *      @OA\Property(property="message", type="string", example="요청 실패"),
 *      @OA\Property(
 *          property="error",
 *          type="object",
 *          @OA\Property(property="code", type="integer", example=400),
 *          @OA\Property(property="details", nullable=true, example=null)
 *      )
 *  )
 */
class CommonComponents {}
