fix : 테넌트별 옵션설정 작업

- Tenant Fields
- Tenant Option Groups
- Tenant Option Values
- Tenant Profiles
This commit is contained in:
2025-08-18 19:03:46 +09:00
parent 97a581f3ae
commit aa190bf48d
16 changed files with 1793 additions and 0 deletions

View File

@@ -17,6 +17,10 @@
use App\Http\Controllers\Api\V1\RolePermissionController;
use App\Http\Controllers\Api\V1\UserRoleController;
use App\Http\Controllers\Api\V1\DepartmentController;
use App\Http\Controllers\Api\V1\TenantFieldSettingController;
use App\Http\Controllers\Api\V1\TenantOptionGroupController;
use App\Http\Controllers\Api\V1\TenantOptionValueController;
use App\Http\Controllers\Api\V1\TenantUserProfileController;
// error test
Route::get('/test-error', function () {
@@ -175,5 +179,38 @@
Route::delete('/{id}/permissions/{permission}', [DepartmentController::class, 'revokePermission'])->name('departments.permissions.revoke'); // 권한 제거(해당 메뉴 범위까지)
});
// 테넌트 필드 설정
Route::prefix('fields')->group(function () {
Route::get ('', [TenantFieldSettingController::class, 'index']); // 목록(효과값)
Route::put ('/bulk', [TenantFieldSettingController::class, 'bulkUpsert']); // 대량 저장
Route::patch ('/{key}', [TenantFieldSettingController::class, 'updateOne']); // 단건 수정
});
// 옵션 그룹/값
Route::prefix('opt-groups')->group(function () {
Route::get ('', [TenantOptionGroupController::class, 'index']);
Route::post ('', [TenantOptionGroupController::class, 'store']);
Route::get ('/{id}', [TenantOptionGroupController::class, 'show']);
Route::patch ('/{id}', [TenantOptionGroupController::class, 'update']);
Route::delete('/{id}', [TenantOptionGroupController::class, 'destroy']);
Route::get ('/{gid}/values', [TenantOptionValueController::class, 'index']);
Route::post ('/{gid}/values', [TenantOptionValueController::class, 'store']);
Route::get ('/{gid}/values/{id}', [TenantOptionValueController::class, 'show']);
Route::patch ('/{gid}/values/{id}', [TenantOptionValueController::class, 'update']);
Route::delete ('/{gid}/values/{id}', [TenantOptionValueController::class, 'destroy']);
Route::patch ('/{gid}/values/reorder', [TenantOptionValueController::class, 'reorder']); // [{id,sort_order}]
});
// 회원 프로필(테넌트 기준)
Route::prefix('profiles')->group(function () {
Route::get ('', [TenantUserProfileController::class, 'index']); // 목록
Route::get ('/{userId}', [TenantUserProfileController::class, 'show']); // 단건
Route::patch ('/{userId}', [TenantUserProfileController::class, 'update']); // 수정(관리자)
Route::get ('/me', [TenantUserProfileController::class, 'me']); // 내 프로필
Route::patch ('/me', [TenantUserProfileController::class, 'updateMe']); // 내 정보 수정
});
});
});