회의 정보 조회 API 개발

This commit is contained in:
cyjadela
2025-10-24 13:20:28 +09:00
parent e37d20942a
commit b819727edf
8 changed files with 289 additions and 1 deletions
@@ -32,6 +32,16 @@ public class Meeting {
*/
private String description;
/**
* 회의 목적
*/
private String purpose;
/**
* 회의 장소
*/
private String location;
/**
* 회의 일시
*/
@@ -35,6 +35,11 @@ public class MeetingDTO {
*/
private final LocalDateTime endTime;
/**
* 회의 목적
*/
private final String purpose;
/**
* 회의 장소
*/
@@ -79,7 +84,8 @@ public class MeetingDTO {
.title(meeting.getTitle())
.startTime(meeting.getStartedAt() != null ? meeting.getStartedAt() : meeting.getScheduledAt())
.endTime(meeting.getEndedAt())
.location(null) // Meeting 도메인에 location 필드가 없어서 null로 설정
.purpose(meeting.getPurpose())
.location(meeting.getLocation())
.agenda(meeting.getDescription())
.participants(meeting.getParticipants().stream()
.map(participantId -> ParticipantDTO.builder()
@@ -47,7 +47,9 @@ public class MeetingService implements
Meeting meeting = Meeting.builder()
.meetingId(meetingId)
.title(command.title())
.purpose(command.purpose())
.description(command.description())
.location(command.location())
.scheduledAt(command.scheduledAt())
.status("SCHEDULED")
.organizerId(command.organizerId())
@@ -20,8 +20,10 @@ public interface CreateMeetingUseCase {
*/
record CreateMeetingCommand(
String title,
String purpose,
String description,
LocalDateTime scheduledAt,
String location,
String organizerId,
List<String> participants,
String templateId
@@ -63,8 +63,10 @@ public class MeetingController {
var meetingData = createMeetingUseCase.createMeeting(
new CreateMeetingUseCase.CreateMeetingCommand(
request.getTitle(),
request.getPurpose(),
request.getAgenda(),
request.getStartTime(),
request.getLocation(),
userId,
request.getParticipants(),
null // 템플릿 ID는 나중에 적용
@@ -24,6 +24,10 @@ public class CreateMeetingRequest {
@Schema(description = "회의 제목", example = "Q1 전략 회의", required = true)
private String title;
@NotBlank(message = "회의 목적은 필수입니다")
@Schema(description = "회의 목적", example = "2025년 1분기 신제품 개발 방향 수립", required = true)
private String purpose;
@NotNull(message = "회의 시작 시간은 필수입니다")
@Schema(description = "회의 시작 시간", example = "2025-01-25T14:00:00", required = true)
private LocalDateTime startTime;
@@ -28,6 +28,9 @@ public class MeetingResponse {
@Schema(description = "회의 종료 시간", example = "2025-01-25T16:00:00")
private final LocalDateTime endTime;
@Schema(description = "회의 목적", example = "2025년 1분기 신제품 개발 방향 수립")
private final String purpose;
@Schema(description = "회의 장소", example = "회의실 A")
private final String location;
@@ -58,6 +61,7 @@ public class MeetingResponse {
.title(dto.getTitle())
.startTime(dto.getStartTime())
.endTime(dto.getEndTime())
.purpose(dto.getPurpose())
.location(dto.getLocation())
.agenda(dto.getAgenda())
.participants(dto.getParticipants().stream()