Skip to content

Feat: 피드백 폼 내재화#386

Merged
hyoinkang merged 5 commits intodevfrom
feat/feedback-form-#384
Apr 27, 2026
Merged

Feat: 피드백 폼 내재화#386
hyoinkang merged 5 commits intodevfrom
feat/feedback-form-#384

Conversation

@hyoinkang
Copy link
Copy Markdown
Contributor

@hyoinkang hyoinkang commented Apr 27, 2026

Summary

피드백 폼 내재화를 위한 관련 엔티티, API를 개발합니다.

Changes

  • 피드백 폼/응답 테이블 및 엔티티 생성
  • 피드백 폼 조회 용 public API 개발
  • 피드백 응답 제출 및 티켓 지급 API 개발

Type of Change

해당하는 항목에 체크해주세요:

  • Bug fix (기존 기능을 수정하는 변경)
  • New feature (새로운 기능 추가)
  • Breaking change (기존 기능에 영향을 주는 변경)
  • Refactoring (기능 변경 없이 코드 개선)
  • Documentation (문서 변경)
  • Chore (빌드, 설정 등)

Target Environment

배포 대상 브랜치를 선택해주세요:

  • Dev (dev)
  • Prod (main)

Related Issues

관련 이슈를 연결해주세요:

Testing

테스트 방법을 작성해주세요:

  • Postman/Swagger로 API 호출 확인
  • 단위 테스트 통과
  • E2E 테스트 통과

Checklist

PR 생성 전 확인사항:

  • 코드 컨벤션을 준수했습니다 (docs/development/CODE_STYLE.md)
  • Git 컨벤션을 준수했습니다 (docs/development/GIT_CONVENTIONS.md)
  • 네이밍 컨벤션을 준수했습니다 (docs/development/NAMING_CONVENTIONS.md)
  • 로컬에서 빌드가 성공합니다 (pnpm run build)
  • 로컬에서 린트가 통과합니다 (pnpm run lint)
  • (API 변경 시) Swagger 문서가 업데이트되었습니다
  • (필요 시) 테스트 코드를 작성했습니다

Screenshots (Optional)

UI 변경이 있다면 스크린샷을 첨부해주세요.

Additional Notes

리뷰어에게 전달할 추가 정보가 있다면 작성해주세요.

- 존재하는 피드백폼이 없는 경우, 200 빈 배열로 처리
- 가장 최근 update된 피드백을 조회함
- 피드백 질문지 조회는 Public API로 설정함
- 일주일 간격으로 피드백 제출 및 보상 수령 가능
- 현재 따로 피드백 응답에 대한 검증은 수행하고 있지 않기 때문에 프론트 측에서의 검증이 필요
@hyoinkang hyoinkang self-assigned this Apr 27, 2026
Copilot AI review requested due to automatic review settings April 27, 2026 18:48
@hyoinkang hyoinkang added the ✨ feature New feature or request label Apr 27, 2026
@hyoinkang hyoinkang linked an issue Apr 27, 2026 that may be closed by this pull request
17 tasks
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

본 PR은 서비스 내 피드백 수집 기능을 내재화하기 위한 인프라와 API를 구축합니다. 사용자로부터 피드백을 수집하고, 이에 대한 보상을 체계적으로 지급할 수 있도록 데이터 모델링과 비즈니스 로직을 구현하여 사용자 경험 개선과 서비스 품질 향상을 도모합니다.

Highlights

  • 피드백 시스템 구축: 피드백 폼과 응답을 관리하기 위한 새로운 엔티티(FeedbackForm, FeedbackResponse)와 데이터베이스 테이블을 생성했습니다.
  • API 개발: 피드백 폼을 조회하는 public API와 피드백 응답을 제출하고 보상을 지급하는 API를 구현했습니다.
  • 보상 로직 및 쿨다운: 피드백 제출 시 보상 지급 로직을 추가했으며, 중복 보상 방지를 위한 7일 쿨다운 정책을 적용했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 PR은 이벤트 피드백 제출 및 보상 시스템을 위한 FeedbackModule을 추가합니다. 리뷰에서는 중복 보상 허용 여부(allowMultipleRewards) 검증 누락, 피드백 폼 조회 시 활성 이벤트 필터링 필요성, 그리고 Facade 계층의 비즈니스 로직을 Service로 이동하라는 아키텍처 준수 사항이 지적되었습니다.

Comment thread src/modules/feedback/application/facades/submit-feedback.facade.ts
Comment thread src/modules/feedback/application/facades/submit-feedback.facade.ts Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements in-app feedback forms/responses for events by introducing new persistence tables, a Feedback module with public form retrieval and authenticated response submission, and reward issuance tied to feedback submission.

Changes:

  • Add feedback_form / feedback_response tables and a seed migration for the default FEEDBACK event form schema.
  • Introduce FeedbackModule (controllers, services, repositories, facade) to fetch the latest form and submit responses with optional ticket rewards + cooldown logic.
  • Extend event validation and error handling with a new “active today” EventService method and new feedback-related error codes.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
supabase/migrations/20260424120000_create_feedback_form_and_response.sql Creates feedback form/response tables and indexes.
supabase/migrations/20260427120000_seed_default_feedback_form_for_feedback_event.sql Seeds a default JSON schema for the FEEDBACK event form.
src/modules/feedback/presentation/feedback-response.controller.ts Adds feedback response submission endpoint and Swagger docs.
src/modules/feedback/presentation/feedback-form.controller.ts Adds public endpoint to fetch the latest feedback form schema.
src/modules/feedback/infrastructure/repositories/feedback-response.repository.ts Persists responses and queries latest submission time for cooldown checks.
src/modules/feedback/infrastructure/repositories/feedback-form.repository.ts Queries latest feedback form by updated time.
src/modules/feedback/feedback.module.ts Wires up feedback controllers/providers and imports Event/Ticket modules.
src/modules/feedback/domain/entities/feedback-response.entity.ts Adds FeedbackResponse entity (answers + submittedAt) and cooldown constant.
src/modules/feedback/domain/entities/feedback-form.entity.ts Adds FeedbackForm entity (eventId + schema).
src/modules/feedback/application/services/feedback-form.service.ts Maps latest form entity into response DTO (empty response when none exists).
src/modules/feedback/application/facades/submit-feedback.facade.ts Orchestrates submission, cooldown enforcement, and ticket issuance.
src/modules/feedback/application/dtos/submit-feedback-response.req.dto.ts Defines request DTO for submission (formId/eventId/answers).
src/modules/feedback/application/dtos/event-feedback-form.res.dto.ts Defines response DTO for feedback form schema retrieval.
src/modules/event/application/services/event.service.ts Adds findByIdAndAssertActiveForTodayOrThrow for active-event validation by ID.
src/common/exceptions/error-code.ts Adds ErrorMap entries for new feedback error codes.
src/common/exceptions/error-code.enum.ts Adds new feedback error codes.
src/app.module.ts Registers FeedbackModule in the application module imports.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/modules/feedback/presentation/feedback-response.controller.ts
Comment thread src/modules/feedback/application/facades/submit-feedback.facade.ts
Comment thread src/modules/feedback/presentation/feedback-form.controller.ts
@hyoinkang hyoinkang merged commit 5f9bbf7 into dev Apr 27, 2026
2 checks passed
@hyoinkang hyoinkang deleted the feat/feedback-form-#384 branch April 27, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feature New feature or request 효인

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 피드백 폼 내재화 기능 구현

2 participants