feat(live-room): 채팅창 얼리기 기능을 추가한다

채팅 입력 제어와 룸 상태 동기화를 통합해 지연 입장자도 동일 상태를 적용한다.
This commit is contained in:
Yu Sung
2026-03-19 18:20:13 +09:00
parent 0a22f87acc
commit 70003af82b
14 changed files with 466 additions and 29 deletions

View File

@@ -30,6 +30,7 @@ enum LiveApi {
case setListener(request: SetManagerOrSpeakerOrAudienceRequest)
case setSpeaker(request: SetManagerOrSpeakerOrAudienceRequest)
case setManager(request: SetManagerOrSpeakerOrAudienceRequest)
case setChatFreeze(request: SetChatFreezeRequest)
case kickOut(request: LiveRoomKickOutRequest)
case donationStatus(roomId: Int)
case donationTotal(roomId: Int)
@@ -112,6 +113,9 @@ extension LiveApi: TargetType {
case .setManager:
return "/live/room/info/set/manager"
case .setChatFreeze:
return "/live/room/info/set/chat-freeze"
case .kickOut:
return "/live/room/kick-out"
@@ -156,7 +160,7 @@ extension LiveApi: TargetType {
case .makeReservation, .enterRoom, .createRoom, .quitRoom, .donation, .refundDonation, .kickOut, .likeHeart:
return .post
case .setListener, .setSpeaker, .setManager, .cancelReservation, .startLive, .cancelRoom, .editLiveRoomInfo:
case .setListener, .setSpeaker, .setManager, .setChatFreeze, .cancelReservation, .startLive, .cancelRoom, .editLiveRoomInfo:
return .put
case .deleteDonationMessage:
@@ -237,6 +241,9 @@ extension LiveApi: TargetType {
case .setListener(let request), .setSpeaker(let request), .setManager(let request):
return .requestJSONEncodable(request)
case .setChatFreeze(let request):
return .requestJSONEncodable(request)
case .kickOut(let request):
return .requestJSONEncodable(request)