<?php

/**
 * 인증 관련 API 라우트 (v1)
 *
 * - 로그인/로그아웃
 * - 회원가입
 * - 토큰 관리
 * - 내부 서버간 통신
 */

use App\Http\Controllers\Api\V1\ApiController;
use App\Http\Controllers\Api\V1\InternalController;
use App\Http\Controllers\Api\V1\RefreshController;
use App\Http\Controllers\Api\V1\RegisterController;
use Illuminate\Support\Facades\Route;

// 내부 서버간 통신 (API Key, Bearer 인증 제외 - HMAC 인증 사용)
Route::prefix('internal')->group(function () {
    Route::post('/exchange-token', [InternalController::class, 'exchangeToken'])->name('v1.internal.exchange-token');
});

// API KEY 인증 (글로벌 미들웨어로 이미 적용됨)
Route::get('/debug-apikey', [ApiController::class, 'debugApikey']);

// Auth API
Route::post('login', [ApiController::class, 'login'])->name('v1.users.login');
Route::middleware('auth:sanctum')->post('logout', [ApiController::class, 'logout'])->name('v1.users.logout');
Route::post('signup', [ApiController::class, 'signup'])->name('v1.users.signup');
Route::post('token-login', [ApiController::class, 'tokenLogin'])->name('v1.auth.token-login');  // MNG → DEV 자동 로그인
Route::post('refresh', [RefreshController::class, 'refresh'])->name('v1.token.refresh');
Route::post('register', [RegisterController::class, 'register'])->name('v1.register');
