타임캡슐 도메인 엔티티 및 리포지토리 구성#11
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the core domain entities, repositories, and database migration scripts for the time capsule service, including Member, TimeCapsule, Friend, Media, Notification, Report, and Block. The reviewer provided valuable feedback on improving the JPA entity design and database indexing. Key recommendations include: changing immutable properties (val) to mutable (var) where state updates are required for JPA dirty checking; explicitly setting the SRID to 4326 in GeometryFactory to prevent PostGIS insertion errors; utilizing the kotlin-jpa compiler plugin to eliminate boilerplate protected constructors and dummy companion objects; adopting Spring Data JPA Auditing to handle audit timestamps; and removing redundant database indexes that are already covered by composite unique constraints.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
✨ 작업 내용
Member,TimeCapsule,Media,CapsuleRecipient,CapsuleOpen,CapsuleHistory,Guestbook,Friend,Notification,Report,Block엔티티를 추가했습니다.
Repository를 추가했습니다.ManyToOne(fetch = FetchType.LAZY)단방향 연관관계를 매핑했습니다.Point타입으로 매핑했습니다.V2__create_time_capsule_domain_tables.sql마이그레이션을 추가했습니다.🔍 리뷰 시 참고사항
public_status,friend_request_type,media_target_type컬럼은 생성하지 않았습니다.password,answer컬럼은 생성하지 않고password_hash,answer_hash만 반영했습니다.latitude,longitude로 임의 대체하지 않고 PostGISGEOMETRY(Point, 4326)기준으로 구성했습니다.✅ 체크리스트
.env.example등) 변경이 필요한 경우 작성 또는 수정했나요?검증:
git diff --check./gradlew test./gradlew build📎 관련 이슈(선택)