Skip to content

Release: v1.0.0-beta.4 (#327)#330

Merged
IISweetHeartII merged 2 commits intomainfrom
dev
Mar 10, 2026
Merged

Release: v1.0.0-beta.4 (#327)#330
IISweetHeartII merged 2 commits intomainfrom
dev

Conversation

@IISweetHeartII
Copy link
Contributor

Summary

Admin, Event, Ticket 모듈의 미사용 테이블/컬럼/enum을 정리한 리팩터링을 prod에 배포합니다.

Changes

  • event_feedback_submission 테이블 및 관련 코드 전체 삭제
  • event: description, max_participation, goal_config 컬럼 삭제
  • event_participation: progress, is_completed, completed_at, last_progressed_at, granted_by, grant_reason 컬럼 삭제
  • EventRewardStatus: UNDER_REVIEW, REJECTED enum 값 제거
  • 진행형 이벤트 기능 제거 (progressCard, trackInsightChallengeProgress)
  • 마이그레이션 멱등성 보장 수정

Type of Change

  • Refactoring (기능 변경 없이 코드 개선)

Target Environment

  • Prod (main)

Related Issues

Testing

  • Dev 환경 빌드/린트 통과
  • Dev DB 마이그레이션 적용 및 검증 완료
  • Prod DB 마이그레이션 적용 완료 (코드 배포 대기)

Checklist

  • 코드 컨벤션을 준수했습니다
  • Git 컨벤션을 준수했습니다
  • 로컬에서 빌드가 성공합니다
  • 로컬에서 린트가 통과합니다

Screenshots (Optional)

N/A

Additional Notes

  • DB 마이그레이션은 Dev/Prod 모두 이미 적용된 상태입니다
  • 긴급 배포 필요: 삭제된 컬럼을 참조하는 옛 코드가 아직 배포 중이라 admin 페이지에서 500 에러 발생 중

@IISweetHeartII IISweetHeartII changed the title Release: Admin/Event/Ticket 미사용 컬럼·테이블 정리 (#327) Release: v1.0.0-beta.4 (#327) Mar 10, 2026
@IISweetHeartII IISweetHeartII merged commit f20adfa into main Mar 10, 2026
4 of 6 checks passed
@gemini-code-assist
Copy link

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!

이 Pull Request는 Admin, Event, Ticket 모듈에서 더 이상 사용되지 않는 테이블, 컬럼, enum 값들을 정리하는 대규모 리팩토링을 포함합니다. 이는 시스템의 불필요한 복잡성을 줄이고 데이터 모델을 간소화하여 코드 유지보수성을 향상시키는 것을 목표로 합니다. 특히, event_feedback_submission 관련 기능과 진행형 이벤트 추적 로직이 제거되었으며, 이로 인해 발생했던 관리자 페이지의 500 에러를 해결하기 위한 긴급 배포가 필요합니다.

Highlights

  • 미사용 테이블 및 코드 제거: event_feedback_submission 테이블과 관련된 모든 코드(서비스, 리포지토리, 엔티티, DTO, 모듈)가 시스템에서 완전히 제거되었습니다.
  • 이벤트 관련 컬럼 정리: event 테이블에서 description, max_participation, goal_config 컬럼이, event_participation 테이블에서 progress, is_completed, completed_at, last_progressed_at, granted_by, grant_reason 컬럼이 제거되었습니다.
  • EventRewardStatus Enum 간소화: EventRewardStatus enum에서 더 이상 사용되지 않는 UNDER_REVIEWREJECTED 값이 제거되었습니다.
  • 진행형 이벤트 기능 제거: 진행형 이벤트 기능(progressCard UI 및 trackInsightChallengeProgress 로직)이 제거되어 관련 DTO, 파사드, 서비스 및 컨트롤러 코드가 정리되었습니다.
  • 데이터베이스 마이그레이션 스크립트 추가: 위 변경사항들을 데이터베이스에 적용하기 위한 멱등성(idempotent)을 보장하는 SQL 마이그레이션 스크립트가 추가되었습니다.

🧠 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.

Changelog
  • admin-client/assets/components/Modal.js
    • externalSubmissionId 상태 변수와 관련 UI 요소가 제거되었습니다.
  • src/modules/admin/admin.module.ts
    • EventFeedbackSubmission 관련 TypeOrm 모듈 임포트 및 서비스/리포지토리 프로바이더가 제거되었습니다.
  • src/modules/admin/application/dtos/admin-event-reward.dto.ts
    • AdminGrantRewardReqDTOGrantRewardByUserIdParams에서 externalSubmissionId 필드가 제거되었습니다.
  • src/modules/admin/application/facades/admin-event-reward.facade.ts
    • EventFeedbackSubmissionService 의존성이 제거되었고, externalSubmissionId를 사용하는 로직 및 EventFeedbackSubmission 엔티티 생성 로직이 삭제되었습니다.
  • src/modules/admin/application/services/event-feedback-submission.service.ts
    • 파일이 삭제되었습니다.
  • src/modules/admin/domain/entities/event-feedback-submission.entity.ts
    • 파일이 삭제되었습니다.
  • src/modules/admin/domain/enums/event-feedback-review-status.enum.ts
    • 파일이 삭제되었습니다.
  • src/modules/admin/domain/enums/event-feedback-source.enum.ts
    • 파일이 삭제되었습니다.
  • src/modules/admin/infrastructure/event-feedback-submission.repository.ts
    • 파일이 삭제되었습니다.
  • src/modules/event/application/dtos/event.dto.ts
    • EventProgressCardResDTO 클래스가 제거되었습니다.
  • src/modules/event/application/facades/event-reward-lifecycle.facade.ts
    • trackInsightChallengeProgress 메서드와 isSameSeoulDate 유틸리티 임포트가 제거되었으며, 보상 수령 시 isCompleted 검증 로직이 삭제되었습니다.
  • src/modules/event/application/facades/event-reward.facade.ts
    • getProgressCardtrackInsightChallengeProgress 메서드가 제거되었습니다.
  • src/modules/event/application/services/event-participation.service.ts
    • createParticipation 메서드에서 progress, isCompleted, lastProgressedAt 필드의 초기화 로직이 제거되었습니다.
  • src/modules/event/application/services/event-reward-read.service.ts
    • EventProgressCardResDTO 임포트 및 getProgressCard 메서드가 제거되었습니다.
  • src/modules/event/domain/entities/event-participation.entity.ts
    • progress, isCompleted, completedAt, lastProgressedAt, grantedBy, grant_reason 컬럼 정의가 제거되었습니다.
  • src/modules/event/domain/entities/event.entity.ts
    • GoalConfig 인터페이스, EventUiConfigprogressCard 속성, 그리고 description, maxParticipation, goalConfig 컬럼 정의가 제거되었습니다.
  • src/modules/event/domain/enums/event-reward-status.enum.ts
    • UNDER_REVIEWREJECTED enum 값이 제거되었습니다.
  • src/modules/event/presentation/event.controller.ts
    • EventProgressCardResDTO 임포트 및 getProgressCard 엔드포인트가 제거되었습니다.
  • src/modules/insight/application/facades/insight.facade.ts
    • EventRewardLifecycleFacade 의존성이 제거되었고, trackInsightChallengeProgress 호출 로직이 삭제되었습니다.
  • src/modules/insight/insight.module.ts
    • EventModule 임포트가 제거되었습니다.
  • supabase/migrations/20260311000000_cleanup_unused_columns_and_tables.sql
    • event_feedback_submission 테이블 및 관련 enum 타입 삭제, eventevent_participation 테이블의 불필요한 컬럼 삭제, event_participation_reward_status_enum에서 사용되지 않는 값 제거를 위한 멱등성 SQL 스크립트가 추가되었습니다.
Activity
  • 개발 환경에서 빌드 및 린트 검사를 통과했습니다.
  • 개발 데이터베이스에 마이그레이션이 적용되었고 검증이 완료되었습니다.
  • 프로덕션 데이터베이스에 마이그레이션이 이미 적용되었으며, 코드 배포를 대기 중입니다.
  • 삭제된 컬럼을 참조하는 이전 코드로 인해 관리자 페이지에서 500 에러가 발생하고 있어 긴급 배포가 필요합니다.
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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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

@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

This pull request performs a significant cleanup by entirely removing the EventFeedbackSubmission feature, including its database tables, associated services, DTOs, and admin UI components. It also eliminates the "Insight Log Challenge" progress tracking functionality, along with related DTOs and logic, and removes several unused columns from the event and event_participation tables, simplifying the EventRewardStatus enum. A review comment suggests further architectural simplification by removing the InsightFacade, which, due to these changes, now acts as a mere proxy for InsightService instead of coordinating multiple services.

Comment on lines 6 to 12
export class InsightFacade {
constructor(
private readonly insightService: InsightService,
private readonly eventRewardLifecycleFacade: EventRewardLifecycleFacade
) {}
constructor(private readonly insightService: InsightService) {}

@Transactional()
async createInsight(userId: number, body: CreateInsightLogReqDTO): Promise<InsightLogResDTO> {
const insight = await this.insightService.createInsight(userId, body);
await this.eventRewardLifecycleFacade.trackInsightChallengeProgress(userId);
return insight;
return this.insightService.createInsight(userId, body);
}
}

Choose a reason for hiding this comment

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

medium

이 리팩토링으로 인해 InsightFacadeInsightServicecreateInsight 메소드를 단순히 호출하는 프록시(proxy) 역할만 하게 되었습니다. 이제 여러 서비스를 조율하는 역할이 없으므로, 이 퍼사드(facade)를 제거하고 컨트롤러가 InsightService를 직접 주입받아 사용하도록 구조를 단순화하는 것을 고려해볼 수 있습니다. 이는 불필요한 레이어를 줄여 코드의 복잡성을 낮추고 아키텍처를 더 명확하게 만듭니다.

References
  1. 퍼사드(Facade)는 여러 도메인/서비스 간의 상호작용을 조율하는 역할을 담당합니다. 이 리팩토링 이후 InsightFacade는 단일 InsightService만 호출하므로, 퍼사드 패턴의 본래 목적을 상실했습니다. 아키텍처의 명확성을 위해 불필요한 퍼사드를 제거하고 컨트롤러가 서비스를 직접 호출하는 것이 좋습니다. (관련 규칙: 아키텍처 규칙 리뷰 항목 87, 90-101) (link)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant