@Transactional(readOnly = true)
    public ConfirmedMeetingResponse findByUuid(String uuid) {
        Meeting meeting = meetingRepository.findByUuid(uuid)
                .orElseThrow(() -> new MomoException(MeetingErrorCode.NOT_FOUND_MEETING));
        ConfirmedMeeting confirmedMeeting = confirmedMeetingRepository.findByMeeting(meeting)
                .orElseThrow(() -> new MomoException(MeetingErrorCode.NOT_CONFIRMED));

        List<Attendee> attendees = attendeeRepository.findAllByMeeting(meeting);
        List<Schedule> schedules = scheduleRepository.findAllByAttendeeIn(attendees);

        attendees = confirmedMeeting.availableAttendeesOf(schedules);

        return ConfirmedMeetingResponse.from(meeting, attendees, confirmedMeeting);
    }
@DisplayName("확정 약속을 조회한다.")
    @Test
    void findByUuid() {
        List<Schedule> schedules = new ArrayList<>();
        schedules.add(new Schedule(attendee, today, Timeslot.TIME_0000));
        schedules.add(new Schedule(attendee, today, Timeslot.TIME_0030));
        schedules.add(new Schedule(attendee, today, Timeslot.TIME_0100));
        schedules.add(new Schedule(attendee, today, Timeslot.TIME_0130));
        Attendee attendee2 = attendeeRepository.save(AttendeeFixture.GUEST_MARK.create(meeting));
        schedules.add(new Schedule(attendee2, today, Timeslot.TIME_0000));
        schedules.add(new Schedule(attendee2, today, Timeslot.TIME_0100));
        scheduleRepository.saveAll(schedules);
        validRequest = new MeetingConfirmRequest(
                today.getDate(),
                LocalTime.of(0, 0),
                today.getDate(),
                LocalTime.of(1, 30)
        );

        MeetingConfirmResponse confirmed = meetingConfirmService.create(meeting.getUuid(), attendee.getId(), validRequest);
        ConfirmedMeetingResponse response = meetingConfirmService.findByUuid(meeting.getUuid());

        assertAll(
                () -> assertThat(response.meetingName()).isEqualTo(meeting.getName()),
                () -> assertThat(response.availableAttendeeNames()).containsExactlyInAnyOrder(attendee.name()),
                () -> assertThat(response.startDate()).isEqualTo(confirmed.startDate()),
                () -> assertThat(response.startTime()).isEqualTo(confirmed.startTime()),
                () -> assertThat(response.startDayOfWeek())
                        .isEqualTo(
                                confirmed.startDate().getDayOfWeek().getDisplayName(TextStyle.NARROW, Locale.KOREAN)),
                () -> assertThat(response.endDate()).isEqualTo(confirmed.endDate()),
                () -> assertThat(response.endTime()).isEqualTo(confirmed.endTime()),
                () -> assertThat(response.endDayOfWeek())
                        .isEqualTo(confirmed.endDate().getDayOfWeek().getDisplayName(TextStyle.NARROW, Locale.KOREAN))
        );
    }