fix: [문서스냅샷] UpsertRequest rendered_html 검증 추가 및 upsert() 전달 누락 수정

- UpsertRequest에 rendered_html nullable string 검증 추가
- DocumentService upsert()에서 create/update 시 rendered_html 전달

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 20:34:52 +09:00
parent 293330c418
commit 5ebf940873
2 changed files with 15 additions and 4 deletions

View File

@@ -30,6 +30,9 @@ public function rules(): array
'data.*.field_key' => 'required_with:data|string|max:100', 'data.*.field_key' => 'required_with:data|string|max:100',
'data.*.field_value' => 'nullable|string', 'data.*.field_value' => 'nullable|string',
// HTML 스냅샷
'rendered_html' => 'nullable|string',
// 첨부파일 // 첨부파일
'attachments' => 'nullable|array', 'attachments' => 'nullable|array',
'attachments.*.file_id' => 'required_with:attachments|integer|exists:files,id', 'attachments.*.file_id' => 'required_with:attachments|integer|exists:files,id',

View File

@@ -857,24 +857,32 @@ public function upsert(array $data): Document
if ($existingDocument) { if ($existingDocument) {
// UPDATE: 기존 update 로직 재사용 // UPDATE: 기존 update 로직 재사용
return $this->update($existingDocument->id, [ $updatePayload = [
'title' => $data['title'] ?? $existingDocument->title, 'title' => $data['title'] ?? $existingDocument->title,
'linkable_type' => 'item', 'linkable_type' => 'item',
'linkable_id' => $itemId, 'linkable_id' => $itemId,
'data' => $data['data'] ?? [], 'data' => $data['data'] ?? [],
'attachments' => $data['attachments'] ?? [], 'attachments' => $data['attachments'] ?? [],
]); ];
if (isset($data['rendered_html'])) {
$updatePayload['rendered_html'] = $data['rendered_html'];
}
return $this->update($existingDocument->id, $updatePayload);
} }
// CREATE: 기존 create 로직 재사용 // CREATE: 기존 create 로직 재사용
return $this->create([ $createPayload = [
'template_id' => $templateId, 'template_id' => $templateId,
'title' => $data['title'] ?? '', 'title' => $data['title'] ?? '',
'linkable_type' => 'item', 'linkable_type' => 'item',
'linkable_id' => $itemId, 'linkable_id' => $itemId,
'data' => $data['data'] ?? [], 'data' => $data['data'] ?? [],
'attachments' => $data['attachments'] ?? [], 'attachments' => $data['attachments'] ?? [],
]); ];
if (isset($data['rendered_html'])) {
$createPayload['rendered_html'] = $data['rendered_html'];
}
return $this->create($createPayload);
}); });
} }