ChatMessageController.java

package com.deveagles.be15_deveagles_be.features.chat.command.application.controller;

import com.deveagles.be15_deveagles_be.features.chat.command.application.dto.request.ChatMessageRequest;
import com.deveagles.be15_deveagles_be.features.chat.command.application.service.ChatService;
import jakarta.validation.Valid;
import java.security.Principal;
import lombok.RequiredArgsConstructor;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@RequiredArgsConstructor
@Controller
@RequestMapping
public class ChatMessageController {

  private final ChatService chatService;

  // ChatController
  @MessageMapping("/chat/send")
  public void sendMessage(@Valid @Payload ChatMessageRequest request, Principal principal) {
    Long userId = Long.parseLong(principal.getName());
    chatService.saveMessage(request, userId); // 내부에서 convertAndSend 함
  }
}