[BE-02] 채팅 고도화 공통 enum·VO
작업 내용 (설계 의도)
변경 사항
근거 TDD: 20260704-채팅시스템고도화-tdd.md (Detail Design 상태 전이 표).
후행 도메인 티켓이 공통으로 import하는 값 객체(enum)를 선행 wave에서 확정한다. 서로 다른 파일이므로 신규 파일만 추가(기존 파일 무수정, Single Writer 충돌 없음). 상태 전이는 enum 내부 canTransitTo()로 캡슐화한다.
domain/message/vo/RoomContextType.kt:COMMUNITY,GOODS_PRODUCT.domain/message/vo/ParticipantType.kt:MEMBER,GUEST.domain/message/vo/InvitationStatus.kt:PENDING,ACCEPTED,REJECTED,REVOKED,EXPIRED+canTransitTo(next)(PENDING에서만 전이 허용).domain/community/vo/CommunityVisibility.kt:PUBLIC,PRIVATE.domain/community/vo/CommunityRole.kt:HOST,MEMBER.domain/community/vo/MembershipStatus.kt:ACTIVE,PENDING_APPROVAL,LEFT,KICKED+canTransitTo(next).domain/community/vo/SportCategory.kt: 종목 카테고리 (기존 goodsProductCategory참고, 신규 정의).
의존
- 없음 (선행 병목)
다이어그램
클래스 의존
flowchart LR subgraph message.vo RCT[RoomContextType] PT[ParticipantType] IS[InvitationStatus] end subgraph community.vo CV[CommunityVisibility] CR[CommunityRole] MS[MembershipStatus] SC[SportCategory] end
테스트 케이스
InvitationStatus.PENDING.canTransitTo(ACCEPTED)는 true다.InvitationStatus.ACCEPTED.canTransitTo(REJECTED)는 false다 (terminal).MembershipStatus.PENDING_APPROVAL.canTransitTo(ACTIVE)는 true,LEFT.canTransitTo(ACTIVE)는 false다.- 각 enum의 값 집합이 TDD 상태 전이 표와 정확히 일치한다.