Feature/#47 대회 팀 상세보기 템플릿 기능 개발#77
Open
Conversation
… Feature/#47_대회-팀-상세보기-템플릿-기능-개발 # Conflicts: # src/main/java/com/opus/opus/docs/asciidoc/contest.adoc # src/main/java/com/opus/opus/docs/asciidoc/opus.adoc # src/main/java/com/opus/opus/docs/asciidoc/team.adoc # src/main/java/com/opus/opus/modules/contest/api/ContestCategoryController.java # src/main/java/com/opus/opus/modules/contest/api/ContestController.java # src/main/java/com/opus/opus/modules/contest/application/ContestCommandService.java # src/main/java/com/opus/opus/modules/contest/application/ContestQueryService.java # src/main/java/com/opus/opus/modules/contest/application/convenience/ContestConvenience.java # src/main/java/com/opus/opus/modules/contest/exception/ContestExceptionType.java # src/main/java/com/opus/opus/modules/team/api/TeamController.java # src/main/java/com/opus/opus/modules/team/application/TeamCommandService.java # src/main/java/com/opus/opus/modules/team/application/TeamQueryService.java # src/main/java/com/opus/opus/modules/team/domain/dao/TeamCommentRepository.java # src/test/java/com/opus/opus/contest/ContestFixture.java # src/test/java/com/opus/opus/contest/application/ContestCommandServiceTest.java # src/test/java/com/opus/opus/restdocs/RestDocsTest.java # src/test/java/com/opus/opus/restdocs/docs/ContestApiDocsTest.java # src/test/java/com/opus/opus/restdocs/docs/TeamApiDocsTest.java # src/test/java/com/opus/opus/team/FileFixture.java # src/test/java/com/opus/opus/team/TeamFixture.java # src/test/java/com/opus/opus/team/application/TeamCommandServiceTest.java # src/test/java/com/opus/opus/team/application/TeamQueryServiceTest.java
sjmoon00
requested changes
Feb 25, 2026
src/main/java/com/opus/opus/modules/contest/application/ContestQueryService.java
Outdated
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/application/ContestCommandService.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
This PR implements contest team template functionality that allows administrators to configure which fields are required when teams register for contests. The template is automatically created when a contest is created, with default values based on the contest category name ("창의융합", "캡스톤", or other). Templates can be queried by anyone and updated by administrators.
Changes:
- Added
ContestTemplatedomain entity with soft delete support and template field configuration - Implemented template creation logic triggered during contest creation with category-based defaults
- Added GET and PUT endpoints for template retrieval and admin-only updates with comprehensive test coverage
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| schema.sql | Added contest_template table with unique constraint on contest_id and boolean fields for required status |
| ContestTemplate.java | New entity with OneToOne relationship to Contest and 12 boolean fields for template configuration |
| ContestTemplateRepository.java | Repository with findByContestId method for template lookup |
| ContestTemplateRequest.java | Request DTO with NotNull validation for all 12 template fields |
| ContestTemplateResponse.java | Response DTO with static factory method from entity |
| ContestTemplateConvenience.java | Convenience service for template validation and retrieval |
| ContestTemplateException.java | Exception class for template-related errors |
| ContestTemplateExceptionType.java | Exception type enum with NOT_FOUND_TEMPLATE error |
| ContestCommandService.java | Added template creation and update methods with category-based default logic |
| ContestQueryService.java | Added template retrieval method (contains critical bugs) |
| ContestController.java | Added GET /template and PUT /template endpoints with appropriate authorization |
| ContestTemplateFixture.java | Test fixture for creating test templates with all fields set to true |
| ContestCommandServiceTest.java | Tests for template creation with different categories and update scenarios |
| ContestQueryServiceTest.java | Tests for template retrieval and error cases |
| ContestApiDocsTest.java | REST Docs tests for template endpoints with success and failure cases |
| contest.adoc | Documentation for template management endpoints |
| TeamQueryService.java | Code formatting improvements (method relocation) |
| Member.java | Removed unused LAZY import |
| TeamApiDocsTest.java | Code formatting improvements (line wrapping) |
| ContestConvenience.java | Import ordering improvements |
Comments suppressed due to low confidence (1)
src/main/java/com/opus/opus/modules/contest/application/ContestQueryService.java:48
- The
ContestQueryServiceis missing thecontestTemplateConveniencefield dependency injection. This field needs to be added to use the template convenience methods. Addprivate final ContestTemplateConvenience contestTemplateConvenience;to the service class dependencies.
private final ContestCategoryConvenience contestCategoryConvenience;
private final ContestConvenience contestConvenience;
private final ContestSortConvenience contestSortConvenience;
private final FileConvenience fileConvenience;
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/test/java/com/opus/opus/restdocs/docs/ContestApiDocsTest.java
Outdated
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/application/ContestQueryService.java
Outdated
Show resolved
Hide resolved
src/test/java/com/opus/opus/contest/application/ContestCommandServiceTest.java
Outdated
Show resolved
Hide resolved
src/test/java/com/opus/opus/contest/application/ContestQueryServiceTest.java
Outdated
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/exception/ContestTemplateExceptionType.java
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/application/ContestCommandService.java
Outdated
Show resolved
Hide resolved
src/test/java/com/opus/opus/restdocs/docs/ContestApiDocsTest.java
Outdated
Show resolved
Hide resolved
… Feature/#47_대회-팀-상세보기-템플릿-기능-개발 # Conflicts: # src/main/java/com/opus/opus/modules/contest/api/ContestController.java # src/main/java/com/opus/opus/modules/contest/application/ContestQueryService.java # src/main/java/com/opus/opus/modules/team/application/TeamQueryService.java # src/test/java/com/opus/opus/contest/application/ContestQueryServiceTest.java # src/test/java/com/opus/opus/restdocs/docs/ContestApiDocsTest.java
…tCommandService.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…PNUops/opus-backend into Feature/#47_대회-팀-상세보기-템플릿-기능-개발
pykido
requested changes
Feb 26, 2026
src/main/java/com/opus/opus/modules/contest/application/ContestCommandService.java
Outdated
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/domain/ContestTemplate.java
Outdated
Show resolved
Hide resolved
src/main/java/com/opus/opus/modules/contest/application/ContestCommandService.java
Outdated
Show resolved
Hide resolved
…tCommandService.java Co-authored-by: �김태윤 <77539625+pykido@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔥 연관된 이슈
close: #47
📜 작업 내용
true: 해당 항목은 필수 입력false: 해당 함목은 선택 입력falsefalsetruetruefalsetruefalse(모두 선택 입력)💬 리뷰 요구사항
✨ 기타