feat: [mng] develop 일괄 반영

- fire-shutter 가이드레일/셔터박스/3D 렌더링
- sales 가격시뮬레이터/프로모션 할인
- bim 뷰어/생성기, pmis 작업일보/출면일보
- demo-tenant 체험 관리
- 전표/급여/전자서명 버그 수정
This commit is contained in:
김보곤
2026-03-16 15:07:47 +09:00
parent c1241082b3
commit c8d994a225
52 changed files with 6946 additions and 87831 deletions

View File

@@ -48,7 +48,7 @@ public function index(int $tenantId, Request $request): View
public function store(Request $request): JsonResponse
{
$request->validate([
'tenant_id' => 'required|integer|exists:tenants,id',
'tenant_id' => 'required|integer|exists:codebridge.tenants,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'content' => 'required|string|max:5000',
@@ -98,7 +98,7 @@ public function destroy(int $consultationId, Request $request): JsonResponse
public function uploadAudio(Request $request, GoogleCloudStorageService $gcs): JsonResponse
{
$request->validate([
'tenant_id' => 'required|integer|exists:tenants,id',
'tenant_id' => 'required|integer|exists:codebridge.tenants,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'audio' => 'required|file|mimes:webm,mp3,wav,ogg|max:51200', // 50MB
@@ -165,7 +165,7 @@ public function uploadAudio(Request $request, GoogleCloudStorageService $gcs): J
public function uploadFile(Request $request): JsonResponse
{
$request->validate([
'tenant_id' => 'required|integer|exists:tenants,id',
'tenant_id' => 'required|integer|exists:codebridge.tenants,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'file' => 'required|file|max:20480', // 20MB
@@ -311,7 +311,7 @@ public function prospectIndex(int $prospectId, Request $request): View
public function prospectStore(Request $request): JsonResponse
{
$request->validate([
'prospect_id' => 'required|integer|exists:tenant_prospects,id',
'prospect_id' => 'required|integer|exists:codebridge.tenant_prospects,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'content' => 'required|string|max:5000',
@@ -344,7 +344,7 @@ public function prospectStore(Request $request): JsonResponse
public function prospectUploadAudio(Request $request, GoogleCloudStorageService $gcs): JsonResponse
{
$request->validate([
'prospect_id' => 'required|integer|exists:tenant_prospects,id',
'prospect_id' => 'required|integer|exists:codebridge.tenant_prospects,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'audio' => 'required|file|mimes:webm,mp3,wav,ogg|max:51200',
@@ -408,7 +408,7 @@ public function prospectUploadAudio(Request $request, GoogleCloudStorageService
public function prospectUploadFile(Request $request): JsonResponse
{
$request->validate([
'prospect_id' => 'required|integer|exists:tenant_prospects,id',
'prospect_id' => 'required|integer|exists:codebridge.tenant_prospects,id',
'scenario_type' => 'required|in:sales,manager',
'step_id' => 'nullable|integer',
'file' => 'required|file|max:20480',