- DocumentTemplate 모델 6개 생성 (Template, ApprovalLine, BasicField, Section, SectionItem, Column)
- DocumentTemplateService (list/show) + DocumentTemplateController (index/show)
- GET /v1/document-templates, GET /v1/document-templates/{id} 라우트
- DocumentTemplateApi.php Swagger (7개 스키마, 2개 엔드포인트)
- Document 결재 워크플로우 4개 엔드포인트 활성화 (submit/approve/reject/cancel)
- ApproveRequest, RejectRequest FormRequest 생성
- DocumentApi.php Swagger에 결재 엔드포인트 4개 추가
- Document.template() 참조 경로 수정 (DocumentTemplate → Documents 네임스페이스)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
35 lines
1.7 KiB
PHP
35 lines
1.7 KiB
PHP
<?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');
|
|
}); |