Files
sam-api/routes/api/v1/documents.php

35 lines
1.7 KiB
PHP
Raw Normal View History

<?php
/**
* 문서 관리 API 라우트 (v1)
*
* - 문서 양식(템플릿) 조회
* - 문서 CRUD
* - 결재 워크플로우
*/
use App\Http\Controllers\Api\V1\Documents\DocumentController;
use App\Http\Controllers\Api\V1\Documents\DocumentTemplateController;
use Illuminate\Support\Facades\Route;
// 문서 양식(템플릿) - 읽기 전용
Route::prefix('document-templates')->group(function () {
Route::get('/', [DocumentTemplateController::class, 'index'])->name('v1.document-templates.index');
Route::get('/{id}', [DocumentTemplateController::class, 'show'])->whereNumber('id')->name('v1.document-templates.show');
});
// 문서 CRUD + 결재
Route::prefix('documents')->group(function () {
// 문서 CRUD
Route::get('/', [DocumentController::class, 'index'])->name('v1.documents.index');
Route::get('/{id}', [DocumentController::class, 'show'])->whereNumber('id')->name('v1.documents.show');
Route::post('/', [DocumentController::class, 'store'])->name('v1.documents.store');
Route::patch('/{id}', [DocumentController::class, 'update'])->whereNumber('id')->name('v1.documents.update');
Route::delete('/{id}', [DocumentController::class, 'destroy'])->whereNumber('id')->name('v1.documents.destroy');
// 결재 워크플로우
Route::post('/{id}/submit', [DocumentController::class, 'submit'])->whereNumber('id')->name('v1.documents.submit');
Route::post('/{id}/approve', [DocumentController::class, 'approve'])->whereNumber('id')->name('v1.documents.approve');
Route::post('/{id}/reject', [DocumentController::class, 'reject'])->whereNumber('id')->name('v1.documents.reject');
Route::post('/{id}/cancel', [DocumentController::class, 'cancel'])->whereNumber('id')->name('v1.documents.cancel');
});