품목기준 필드 관리 기능 구현
- ItemField 모델 및 SystemFieldDefinitions 상수 클래스 추가 - ItemFieldSeedingService: 시스템 필드 시딩/초기화/커스텀 필드 CRUD - ItemFieldController (API): HTMX 기반 시딩 상태, 커스텀 필드 관리 - 커스텀 필드 수정 기능 (시스템 필드는 source_table/field_key 수정 불가) - 레거시 데이터 표시 개선: 소스 테이블 비어있으면 '미지정' 배지 - 필드 키 정책 변경: 숫자로 시작 허용 (영문/숫자/밑줄) - AI 문의하기: 시딩 오류 보고서 생성 기능 - 사이드바에 품목기준 필드 관리 메뉴 추가
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
use App\Http\Controllers\Api\Admin\RoleController;
|
||||
use App\Http\Controllers\Api\Admin\RolePermissionController;
|
||||
use App\Http\Controllers\Api\Admin\TenantController;
|
||||
use App\Http\Controllers\Api\Admin\ItemFieldController;
|
||||
use App\Http\Controllers\Api\Admin\UserController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
@@ -393,6 +394,55 @@
|
||||
Route::delete('/{entryId}', [DailyLogController::class, 'deleteEntry'])->name('delete');
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 품목기준 필드 관리 API
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('item-fields')->name('item-fields.')->group(function () {
|
||||
// 시딩 상태 (HTMX partial)
|
||||
Route::get('/seeding-status', [ItemFieldController::class, 'seedingStatus'])->name('seedingStatus');
|
||||
|
||||
// 소스 테이블 목록
|
||||
Route::get('/source-tables', [ItemFieldController::class, 'sourceTables'])->name('sourceTables');
|
||||
|
||||
// 단일 테이블 시딩
|
||||
Route::post('/seed', [ItemFieldController::class, 'seed'])->name('seed');
|
||||
|
||||
// 전체 테이블 시딩
|
||||
Route::post('/seed-all', [ItemFieldController::class, 'seedAll'])->name('seedAll');
|
||||
|
||||
// 단일 테이블 초기화
|
||||
Route::post('/reset', [ItemFieldController::class, 'reset'])->name('reset');
|
||||
|
||||
// 전체 테이블 초기화
|
||||
Route::post('/reset-all', [ItemFieldController::class, 'resetAll'])->name('resetAll');
|
||||
|
||||
// 커스텀 필드 목록 (HTMX partial)
|
||||
Route::get('/custom-fields', [ItemFieldController::class, 'customFields'])->name('customFields');
|
||||
|
||||
// 커스텀 필드 추가
|
||||
Route::post('/custom-fields', [ItemFieldController::class, 'storeCustomField'])->name('storeCustomField');
|
||||
|
||||
// 커스텀 필드 수정
|
||||
Route::put('/custom-fields/{id}', [ItemFieldController::class, 'updateCustomField'])->name('updateCustomField');
|
||||
|
||||
// 커스텀 필드 삭제
|
||||
Route::delete('/custom-fields/{id}', [ItemFieldController::class, 'destroyCustomField'])->name('destroyCustomField');
|
||||
|
||||
// 커스텀 필드 일괄 삭제
|
||||
Route::delete('/custom-fields', [ItemFieldController::class, 'destroyCustomFields'])->name('destroyCustomFields');
|
||||
|
||||
// 오류 로그 조회 (HTMX partial)
|
||||
Route::get('/error-logs', [ItemFieldController::class, 'errorLogs'])->name('errorLogs');
|
||||
|
||||
// 오류 로그 초기화
|
||||
Route::delete('/error-logs', [ItemFieldController::class, 'clearErrorLogs'])->name('clearErrorLogs');
|
||||
|
||||
// AI 문의용 오류 보고서 생성
|
||||
Route::get('/error-report', [ItemFieldController::class, 'generateErrorReport'])->name('errorReport');
|
||||
});
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 견적수식 관리 API
|
||||
|
||||
Reference in New Issue
Block a user