Skip to content

feat(ai): 마케팅 블로그 초안 수정 API (PUT /ai/marketing/contents/{id})#49

Merged
bbbang105 merged 3 commits into
devfrom
session2-qa
Jun 29, 2026
Merged

feat(ai): 마케팅 블로그 초안 수정 API (PUT /ai/marketing/contents/{id})#49
bbbang105 merged 3 commits into
devfrom
session2-qa

Conversation

@bbbang105

Copy link
Copy Markdown
Member

요약

생성된 AI 블로그 초안을 사장이 손봐 저장할 수 있도록 초안 수정 엔드포인트 추가.

  • PUT /ai/marketing/contents/{id} — output(draft: 제목·단락·FAQ·해시태그)만 갱신, 입력 메타(키워드/상황/메모/사진)·생성시각·토큰은 불변
  • user_id 격리(소유 아니면 404), 소프트삭제 콘텐츠 수정 불가(404)
  • 신규 DTO MarketingContentUpdateRequest/BlogSectionInput/BlogFaqInput(@Valid 검증), MarketingService.updateContent + getContent/updateContent 공용 toDetail() 추출
  • 스키마 변경 없음(ai_marketing_content.output_json 이미 var)

리뷰 반영

  • sections@NotNull 추가 — 누락 시 @Size(min=1)이 발동하지 않아 빈 초안이 저장되던 갭 차단(+ 400 검증 테스트)
  • updateContent에서 save() 반환 엔티티로 toDetail (merge 시맨틱 안전)

검증

  • ./gradlew build test 통과 — ktlint + detekt + 전체 테스트 + JaCoCo 80% 게이트
  • MarketingServiceTest 4종 + RestDocs 문서화 + sections 누락 400 테스트
  • OpenAPI 스펙 재생성(MarketingContentUpdateRequest required: sections·title)

🤖 Generated with Claude Code

bbbang105 and others added 3 commits June 29, 2026 10:18
생성된 블로그 초안을 사장이 손봐 저장할 수 있도록 수정 엔드포인트 추가.
- output(draft: 제목·단락·FAQ·해시태그)만 갱신, 입력 메타(키워드/상황/메모/사진)·생성시각·토큰은 불변
- user_id 격리(소유 아니면 404), 소프트삭제 콘텐츠 수정 불가(404)
- 빈/공백 해시태그 정리, Bean Validation(@Valid) 입력 검증
- MarketingServiceTest 4종 + RestDocs 문서화 + OpenAPI 스펙 재생성

Co-Authored-By: Claude <noreply@anthropic.com>
리뷰 반영:
- sections nullable에 @NotNull 추가(누락 시 @SiZe(min=1) 미발동으로 빈 초안 저장되던 갭 차단) + 400 검증 테스트
- updateContent에서 save() 반환 엔티티로 toDetail (merge 시맨틱 안전)

Co-Authored-By: Claude <noreply@anthropic.com>
@bbbang105 bbbang105 added ✅ test 테스트 코드 📄 docs 문서 추가 및 수정 🚀 feat 새로운 기능 추가 / 일부 코드 추가 / 일부 코드 수정 (리팩토링과 구분) / 디자인 요소 수정 🚨 fix 버그 수정 / 에러 해결 labels Jun 29, 2026
@bbbang105 bbbang105 merged commit a49b784 into dev Jun 29, 2026
3 checks passed
@bbbang105 bbbang105 deleted the session2-qa branch June 29, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📄 docs 문서 추가 및 수정 🚀 feat 새로운 기능 추가 / 일부 코드 추가 / 일부 코드 수정 (리팩토링과 구분) / 디자인 요소 수정 🚨 fix 버그 수정 / 에러 해결 ✅ test 테스트 코드

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant