Conversation
|
Warning Rate limit exceeded@vivivim has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 10 minutes and 38 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (3)
WalkthroughREST 기반 Branch 생성 엔드포인트와 관련 DTO/응답 및 BranchEvent가 제거되고, Kafka 이벤트 소비자와 페이로드 DTO(BranchPayload, DistancePayload), DistanceService가 추가되었으며 엔티티(Branch, AWDistance, Part)와 리포지토리·서비스·이벤트 매핑이 확장·조정되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant Kafka as Kafka
participant Consumer as BranchEventConsumer
participant Mapper as EventPayloadMapper
participant OM as ObjectMapper
participant BranchSvc as BranchService
participant DistSvc as DistanceService
participant DB as Database
Kafka->>Consumer: 메시지 전달 (branch-events / branch-distance-events)
Consumer->>OM: JSON 파싱
OM->>Mapper: eventType -> payload 클래스 조회
Mapper-->>OM: payload 클래스 반환
OM->>Consumer: Event<Payload> 역직렬화
alt eventType == "BranchCreated"
Consumer->>BranchSvc: createBranch(BranchPayload)
BranchSvc->>DB: Branch 저장
DB-->>BranchSvc: 저장 완료
else eventType == "DistanceCalculated"
Consumer->>DistSvc: createDistance(DistancePayload)
DistSvc->>DB: existsByAgencyIdAndWarehouseId 체크
alt exists == true
DistSvc-->>Consumer: 예외(중복)
else
DistSvc->>DB: AWDistance 저장
DB-->>DistSvc: 저장 완료
end
end
Consumer->>Consumer: 처리 결과 로깅
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (1 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (3)
src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java (1)
17-21: 페이로드 null 검증 추가를 권장합니다.페이로드나 필수 필드(agencyId, branchId)가 null일 경우를 대비한 검증이 없습니다. Kafka 메시지 역직렬화 실패 시 예상치 못한 동작이 발생할 수 있습니다.
다음과 같이 null 검증을 추가하는 것을 고려하세요:
@Transactional public void createDistance(DistancePayload payload) { + if (payload == null || payload.getAgencyId() == null || payload.getBranchId() == null) { + throw new BadRequestException("필수 필드가 누락되었습니다"); + } + if (distanceRepository.existsByAgencyIdAndWarehouseId(payload.getAgencyId(), payload.getBranchId())) throw new BadRequestException(ErrorStatus.DISTANCE_ALREADY_EXIST.getMessage());src/main/java/com/sampoom/backend/api/branch/event/BranchEventConsumer.java (1)
41-49: 로그 메시지를 브랜치 맥락에 맞게 정리해주세요.BranchCreated 이벤트 처리 로그가
partCreated로 남아 있고, 예외 로그도part event로 표기되어 있어 추적 시 혼동될 것 같습니다. 메시지를 브랜치 이벤트명에 맞추고, 에러 로그는 메시지 구분자를 둬 주세요.- log.info("✅ partCreated saved: {}", payload.getBranchName()); + log.info("✅ branchCreated saved: {}", payload.getBranchName()); @@ - log.error("❌ Failed to process part event" + message); + log.error("❌ Failed to process branch event: {}", message);src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java (1)
3-3: 명시적 import 사용을 권장합니다.와일드카드 import(
jakarta.persistence.*)보다는 사용하는 클래스를 명시적으로 import하는 것이 코드의 명확성과 유지보수성 측면에서 더 좋습니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (20)
src/main/java/com/sampoom/backend/api/branch/controller/BranchController.java(0 hunks)src/main/java/com/sampoom/backend/api/branch/dto/BranchCreateReqDto.java(0 hunks)src/main/java/com/sampoom/backend/api/branch/dto/BranchCreateResDto.java(0 hunks)src/main/java/com/sampoom/backend/api/branch/dto/BranchPayload.java(1 hunks)src/main/java/com/sampoom/backend/api/branch/dto/DistancePayload.java(1 hunks)src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java(2 hunks)src/main/java/com/sampoom/backend/api/branch/entity/Branch.java(2 hunks)src/main/java/com/sampoom/backend/api/branch/event/BranchEvent.java(0 hunks)src/main/java/com/sampoom/backend/api/branch/event/BranchEventConsumer.java(1 hunks)src/main/java/com/sampoom/backend/api/branch/repository/AWDistanceRepository.java(1 hunks)src/main/java/com/sampoom/backend/api/branch/service/BranchService.java(1 hunks)src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java(1 hunks)src/main/java/com/sampoom/backend/api/event/entity/EventOutbox.java(0 hunks)src/main/java/com/sampoom/backend/api/order/service/OrderService.java(1 hunks)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java(1 hunks)src/main/java/com/sampoom/backend/api/part/entity/Part.java(2 hunks)src/main/java/com/sampoom/backend/api/part/event/EventPayloadMapper.java(2 hunks)src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java(2 hunks)src/main/java/com/sampoom/backend/api/part/service/PartService.java(2 hunks)src/main/java/com/sampoom/backend/common/response/ErrorStatus.java(1 hunks)
💤 Files with no reviewable changes (5)
- src/main/java/com/sampoom/backend/api/branch/dto/BranchCreateResDto.java
- src/main/java/com/sampoom/backend/api/branch/dto/BranchCreateReqDto.java
- src/main/java/com/sampoom/backend/api/event/entity/EventOutbox.java
- src/main/java/com/sampoom/backend/api/branch/controller/BranchController.java
- src/main/java/com/sampoom/backend/api/branch/event/BranchEvent.java
🧰 Additional context used
🧬 Code graph analysis (7)
src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java (3)
src/main/java/com/sampoom/backend/common/exception/BadRequestException.java (1)
BadRequestException(5-14)src/main/java/com/sampoom/backend/api/branch/event/BranchEventConsumer.java (1)
Service(17-52)src/main/java/com/sampoom/backend/api/branch/service/BranchService.java (1)
Service(13-37)
src/main/java/com/sampoom/backend/api/branch/dto/DistancePayload.java (2)
src/main/java/com/sampoom/backend/api/branch/dto/BranchPayload.java (1)
Getter(7-18)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
Getter(7-21)
src/main/java/com/sampoom/backend/api/branch/dto/BranchPayload.java (2)
src/main/java/com/sampoom/backend/api/branch/dto/DistancePayload.java (1)
Getter(6-15)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
Getter(7-21)
src/main/java/com/sampoom/backend/api/part/service/PartService.java (1)
src/main/java/com/sampoom/backend/common/exception/NotFoundException.java (1)
NotFoundException(5-13)
src/main/java/com/sampoom/backend/api/branch/service/BranchService.java (3)
src/main/java/com/sampoom/backend/common/exception/BadRequestException.java (1)
BadRequestException(5-14)src/main/java/com/sampoom/backend/api/branch/event/BranchEventConsumer.java (1)
Service(17-52)src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java (1)
Service(12-32)
src/main/java/com/sampoom/backend/api/branch/event/BranchEventConsumer.java (3)
src/main/java/com/sampoom/backend/api/branch/service/BranchService.java (1)
Service(13-37)src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java (1)
Service(12-32)src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java (1)
Service(23-69)
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java (1)
src/main/java/com/sampoom/backend/api/branch/entity/Branch.java (1)
Entity(8-41)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (10)
src/main/java/com/sampoom/backend/api/branch/dto/DistancePayload.java (1)
6-15: LGTM!DTO 구조가 명확하고 다른 페이로드 클래스(BranchPayload, PartPayload)와 일관된 패턴을 따르고 있습니다. 필드 타입도 적절합니다.
src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
20-20: LGTM!필드 추가가 Part 엔티티의 standardCost 필드와 일치하며, 타입도 적절합니다.
src/main/java/com/sampoom/backend/common/response/ErrorStatus.java (1)
23-23: LGTM!에러 상수 정의가 명확하며, 기존 패턴을 잘 따르고 있습니다. HTTP 상태 코드도 적절합니다.
src/main/java/com/sampoom/backend/api/branch/repository/AWDistanceRepository.java (1)
11-11: LGTM!Spring Data JPA 파생 쿼리 메서드가 올바르게 정의되었으며, DistanceService의 중복 체크 로직과 잘 연동됩니다.
src/main/java/com/sampoom/backend/api/part/event/EventPayloadMapper.java (1)
3-4: LGTM!새로운 이벤트 타입 매핑이 올바르게 추가되었으며, BranchEventConsumer와 PartEventConsumer에서 사용하는 이벤트 타입과 일치합니다.
Also applies to: 22-25
src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java (1)
48-53: LGTM!PartUpdated 이벤트 처리가 올바르게 추가되었으며, 기존 이벤트 처리 패턴과 일관성을 유지하고 있습니다.
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java (4)
29-30:travelTime필드의 null 허용 여부를 확인하세요.새로 추가된
travelTime필드에nullable = false제약조건이 없어 null 값이 허용됩니다. 이동 시간이 필수 값인지, 선택적 값인지 비즈니스 요구사항을 확인하고 필요시 제약조건을 추가하세요.만약 필수 값이라면:
-@Column(name = "travel_time") +@Column(name = "travel_time", nullable = false) private Double travelTime;
32-34: 소프트 삭제 패턴이 잘 구현되었습니다.
isDeleted필드를 통한 소프트 삭제 패턴이 적절하게 구현되었습니다.@Builder.Default를 사용하여 기본값이 올바르게 설정되고,nullable = false제약조건도 적절합니다.
17-18: ID 설정 로직이 올바르게 구현되었습니다.검증 결과,
DistanceService에서AWDistance엔티티의 ID가 Kafka 이벤트 페이로드의payload.getDistanceId()로부터 명시적으로 설정되고 있습니다.@Id필드에@GeneratedValue어노테이션이 없는 것은 의도된 설계이며, ID가 데이터베이스에서 자동 생성되지 않고 이벤트 소스에서 제공되는 이벤트 기반 아키텍처 패턴으로 올바르게 구현되어 있습니다.
26-27: 마이그레이션 전략 및 타입 변경 내역 확인이 필요합니다.코드베이스 검증 결과, 다음을 확인했습니다:
- 데이터베이스 마이그레이션 프레임워크(Flyway, Liquibase) 미검출
- SQL 스키마 버전 관리 파일 없음
- 현재 AWDistance의 distance 필드는 Double 타입
원본 검토 의견에서 제시된 "마이그레이션 스크립트" 우려는 명시적 마이그레이션 시스템이 존재한다는 가정하에 작성되었으나, 해당 시스템이 코드베이스에 없습니다. 프로젝트가 Hibernate 자동 DDL 생성(ddl-auto=update)을 사용하는지, 아니면 다른 마이그레이션 전략을 사용하는지 확인하고, distance 필드 타입이 실제로 Long에서 Double로 변경되었는지 검증해 주세요.
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java
Outdated
Show resolved
Hide resolved
src/main/java/com/sampoom/backend/api/branch/entity/Branch.java
Outdated
Show resolved
Hide resolved
src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java
Show resolved
Hide resolved
src/main/java/com/sampoom/backend/api/order/service/OrderService.java
Outdated
Show resolved
Hide resolved
src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java (1)
11-11: 클래스 레벨 @Setter 사용을 재고해주세요.이전 리뷰에서 지적된 사항이 아직 해결되지 않았습니다. 엔티티의 모든 필드가 무분별하게 변경 가능해지면 의도하지 않은 상태 변경이 발생할 수 있습니다. 특히
id,createdAt과 같은 필드는 변경되어서는 안 됩니다.필드별로 선택적
@Setter를 적용하거나, 명시적인 업데이트 메서드를 제공하는 것을 권장합니다.
🧹 Nitpick comments (1)
src/main/java/com/sampoom/backend/api/branch/entity/Branch.java (1)
38-40: is_deleted 컬럼은 NOT NULL로 막아두는 편이 안전합니다
DB에 새 컬럼을 추가할 때 기본값 없이 null을 허용하면, 마이그레이션 과정이나 수동 수정으로 null이 들어와도 탐지하기 어렵고 하이버네이트가 기본 false로만 간주해 정합성 확인이 힘듭니다. 컬럼 자체를 NOT NULL로 고정해 두면 이런 위험을 줄일 수 있어요.- @Column(name = "is_deleted") + @Column(name = "is_deleted", nullable = false)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java(2 hunks)src/main/java/com/sampoom/backend/api/branch/entity/Branch.java(2 hunks)src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java(1 hunks)src/main/java/com/sampoom/backend/api/order/service/OrderService.java(1 hunks)src/main/java/com/sampoom/backend/api/part/entity/Part.java(2 hunks)src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- src/main/java/com/sampoom/backend/api/branch/service/DistanceService.java
🧰 Additional context used
🧬 Code graph analysis (1)
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java (1)
src/main/java/com/sampoom/backend/api/branch/entity/Branch.java (1)
Entity(8-41)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (7)
src/main/java/com/sampoom/backend/api/part/event/PartEventConsumer.java (2)
48-53: PartUpdated 이벤트 처리가 올바르게 구현되었습니다.PartCreated와 동일한 패턴을 따르고 있으며, 페이로드 매핑과 서비스 호출이 적절합니다.
65-65: 예외 로깅이 수정되었습니다.이전 리뷰 코멘트가 반영되어 예외 객체가 로거에 올바르게 전달되고 있습니다. 이제 스택 트레이스가 로그에 기록됩니다.
src/main/java/com/sampoom/backend/api/part/entity/Part.java (1)
32-33: primitive 타입으로의 변경이 적절합니다.
Integer,Long,Boolean에서int,long,boolean으로 변경하여nullable = false제약 조건과 일치하게 되었습니다. 이는 이전 리뷰에서 지적된 타입 불일치 문제를 해결합니다. 새로 추가된leadTime과standardCost필드도 primitive 타입을 사용하여 일관성이 유지되고 있습니다.Also applies to: 36-36, 38-39, 41-42, 45-45, 48-48
src/main/java/com/sampoom/backend/api/branch/entity/AWDistance.java (1)
6-34: 고유 제약 조건과 컬럼 매핑이 일관적으로 정리되었습니다. 스네이크 케이스 컬럼명을 명시해 DB 스키마와 불일치 위험이 사라졌고, soft delete 필드 기본값도 안전하게 설정되었습니다.src/main/java/com/sampoom/backend/api/order/service/OrderService.java (1)
66-69: 동점 시 짧은 거리를 우선하는 tie-breaker가 올바르게 작동합니다.Comparator.reverseOrder()를 사용해.max호출과 조합할 때 더 짧은 거리가 선택되도록 정렬 방향을 맞춘 점이 좋습니다.src/main/java/com/sampoom/backend/api/branch/entity/Branch.java (2)
15-16: ID 자동 생성 제거에 따른 저장 경로 재확인 필요
@GeneratedValue를 제거했으므로 이제 JPA가 식별자를 채워주지 않습니다. 이벤트/서비스에서Branch를save하기 전에id가 비어 있으면IdentifierGenerationException이 바로 발생하니, 모든 신규 생성 경로에서 명시적으로id를 세팅하고 있는지 확인 부탁드립니다.
27-28: 좌표 null 허용 처리 깔끔합니다
Double 타입으로 바꿔주셔서 좌표가 미확정인 이벤트도 안전하게 적재할 수 있게 되었습니다. 이전 NPE 우려가 해소됐어요.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java (1)
11-11: 이전 리뷰에서 지적된 @Setter 이슈가 해결되지 않았습니다.클래스 레벨의
@Setter가 추가되어 이전 리뷰에서 제기된 우려사항이 악화되었습니다.id,createdAt등 변경되어서는 안 되는 필드까지 모두 수정 가능해집니다.이전 리뷰 제안을 참고하여 다음 중 하나를 적용해주세요:
- 변경 가능한 필드에만 개별적으로
@Setter적용- 비즈니스 로직이 포함된 명시적 업데이트 메서드 제공
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java (1)
38-39: 박싱 타입에서 원시 타입으로의 변경이 적절합니다.
safetyStock,groupId,categoryId를 박싱 타입(Integer,Long)에서 원시 타입(int,long)으로 변경한 것은 좋은 개선입니다:
- 컴파일 타임에 non-null 보장
- DB 제약 조건(
nullable = false)과 일치- NPE 위험 감소
- 메모리 효율성 향상
이전 리뷰에서 제기된 타입 불일치 문제를 부분적으로 해결했습니다.
Also applies to: 45-45, 48-48
notnull 추가
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java(2 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java (4)
src/main/java/com/sampoom/backend/api/inventory/entity/Inventory.java (1)
Entity(10-50)src/main/java/com/sampoom/backend/api/part/entity/Category.java (1)
Entity(8-23)src/main/java/com/sampoom/backend/api/part/entity/PartGroup.java (1)
Entity(8-26)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
Getter(7-21)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (1)
src/main/java/com/sampoom/backend/api/part/entity/Part.java (1)
38-38: 기존 필드에 @NotNull 추가는 좋은 개선입니다
isDeleted,safetyStock,groupId,categoryId필드에@NotNull애노테이션을 추가하여 DB 제약조건(nullable = false)과 Java 검증 레이어의 일관성을 확보한 것은 좋은 개선입니다.다만, 위에서 언급한 것처럼 Bean Validation이 실제로 트리거되는지 확인이 필요합니다.
Also applies to: 42-42, 50-50, 54-54
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java (1)
10-15: 검증 어노테이션이 올바르게 추가되었습니다모든 필드에
@NotNull검증이 추가되어 페이로드의 필수 값 검증이 가능해졌습니다. 다른 페이로드 클래스들(PartGroupPayload,PartPayload)과 일관된 패턴을 따르고 있습니다.선택사항: String 필드에 대해
@NotBlank사용 고려
categoryName과categoryCode는 문자열 필드이므로,@NotNull대신@NotBlank를 사용하면 null뿐만 아니라 빈 문자열이나 공백 문자열도 방지할 수 있습니다:+import jakarta.validation.constraints.NotBlank; + @Getter @Setter public class PartCategoryPayload { @NotNull private Long categoryId; - @NotNull + @NotBlank private String categoryName; - @NotNull + @NotBlank private String categoryCode; }참고: 이 개선사항을 적용하려면
PartGroupPayload와PartPayload의 문자열 필드들도 함께 업데이트하여 일관성을 유지하는 것이 좋습니다.src/main/java/com/sampoom/backend/api/part/dto/PartGroupPayload.java (1)
3-17: 유효성 검증 일관성이 확보되었습니다.모든 필드에
@NotNull어노테이션을 추가한 것은 다른 Payload DTO들(PartCategoryPayload,PartPayload)과 일관된 패턴을 따르고 있어 좋습니다. 이벤트 페이로드의 경우 완전한 데이터를 포함해야 하므로 적절한 접근입니다.다음 사항을 고려해보시기 바랍니다:
- 문자열 필드(
groupName,groupCode)에 대해@NotBlank를 사용하면 빈 문자열도 방지할 수 있습니다- ID 필드(
groupId,categoryId)에 대해@Positive를 추가하면 음수 값을 방지할 수 있습니다예시:
+import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Positive; public class PartGroupPayload { @NotNull + @Positive private Long groupId; @NotNull + @NotBlank private String groupName; @NotNull + @NotBlank private String groupCode; @NotNull + @Positive private Long categoryId; }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java(1 hunks)src/main/java/com/sampoom/backend/api/part/dto/PartGroupPayload.java(1 hunks)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java(1 hunks)src/main/java/com/sampoom/backend/api/part/entity/Part.java(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- src/main/java/com/sampoom/backend/api/part/entity/Part.java
🧰 Additional context used
🧬 Code graph analysis (3)
src/main/java/com/sampoom/backend/api/part/dto/PartGroupPayload.java (2)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java (1)
Getter(7-16)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
Getter(8-33)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java (2)
src/main/java/com/sampoom/backend/api/part/dto/PartGroupPayload.java (1)
Getter(7-18)src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (1)
Getter(8-33)
src/main/java/com/sampoom/backend/api/part/dto/PartPayload.java (2)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java (1)
Getter(7-16)src/main/java/com/sampoom/backend/api/part/dto/PartGroupPayload.java (1)
Getter(7-18)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (java-kotlin)
🔇 Additional comments (1)
src/main/java/com/sampoom/backend/api/part/dto/PartCategoryPayload.java (1)
3-3: 검증 지원을 위한 적절한 import 추가Jakarta Bean Validation의
@NotNull어노테이션을 사용하기 위한 import가 올바르게 추가되었습니다.
📝 Summary
파트 업데이트, 지점, 거리 이벤트 처리
🙏 Question & PR point
📬 Reference
Summary by CodeRabbit
새로운 기능
개선사항
버그 수정 / 안정성
주의