diff --git a/src/main/java/com/example/solidconnection/admin/service/AdminMentorApplicationService.java b/src/main/java/com/example/solidconnection/admin/service/AdminMentorApplicationService.java index 86d8a0398..48249f7d3 100644 --- a/src/main/java/com/example/solidconnection/admin/service/AdminMentorApplicationService.java +++ b/src/main/java/com/example/solidconnection/admin/service/AdminMentorApplicationService.java @@ -14,8 +14,8 @@ import com.example.solidconnection.mentor.repository.MentorApplicationRepository; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.SiteUserRepository; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.repository.HostUniversityRepository; import java.util.List; import java.util.stream.IntStream; import lombok.RequiredArgsConstructor; @@ -29,7 +29,7 @@ public class AdminMentorApplicationService { private final MentorApplicationRepository mentorApplicationRepository; - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private final SiteUserRepository siteUserRepository; @Transactional(readOnly = true) @@ -82,7 +82,7 @@ public void assignUniversity( mentorApplication.validateCanAssignUniversity(); - University university = universityRepository.getUniversityById(universityId); + HostUniversity university = hostUniversityRepository.getHostUniversityById(universityId); mentorApplication.assignUniversity(university.getId()); } diff --git a/src/main/java/com/example/solidconnection/mentor/dto/MatchedMentorResponse.java b/src/main/java/com/example/solidconnection/mentor/dto/MatchedMentorResponse.java index fc3582ff3..bc8a2be46 100644 --- a/src/main/java/com/example/solidconnection/mentor/dto/MatchedMentorResponse.java +++ b/src/main/java/com/example/solidconnection/mentor/dto/MatchedMentorResponse.java @@ -4,7 +4,7 @@ import com.example.solidconnection.mentor.domain.Mentor; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; @@ -27,7 +27,7 @@ public record MatchedMentorResponse( ) { public static MatchedMentorResponse of(Mentor mentor, SiteUser mentorUser, - University university, boolean isApplied, Long roomId, + HostUniversity university, boolean isApplied, Long roomId, String termName ) { return new MatchedMentorResponse( diff --git a/src/main/java/com/example/solidconnection/mentor/dto/MentorDetailResponse.java b/src/main/java/com/example/solidconnection/mentor/dto/MentorDetailResponse.java index a65e784f0..8ae73babe 100644 --- a/src/main/java/com/example/solidconnection/mentor/dto/MentorDetailResponse.java +++ b/src/main/java/com/example/solidconnection/mentor/dto/MentorDetailResponse.java @@ -2,7 +2,7 @@ import com.example.solidconnection.mentor.domain.Mentor; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import java.util.List; public record MentorDetailResponse( @@ -21,7 +21,7 @@ public record MentorDetailResponse( ) { public static MentorDetailResponse of(Mentor mentor, SiteUser mentorUser, - University university, boolean isApplied, + HostUniversity university, boolean isApplied, String termName ) { return new MentorDetailResponse( diff --git a/src/main/java/com/example/solidconnection/mentor/dto/MentorMyPageResponse.java b/src/main/java/com/example/solidconnection/mentor/dto/MentorMyPageResponse.java index 4c5533ebb..a2a7797ac 100644 --- a/src/main/java/com/example/solidconnection/mentor/dto/MentorMyPageResponse.java +++ b/src/main/java/com/example/solidconnection/mentor/dto/MentorMyPageResponse.java @@ -2,7 +2,7 @@ import com.example.solidconnection.mentor.domain.Mentor; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import java.util.List; public record MentorMyPageResponse( @@ -19,7 +19,7 @@ public record MentorMyPageResponse( List channels ) { - public static MentorMyPageResponse of(Mentor mentor, SiteUser siteUser, University university, String termName) { + public static MentorMyPageResponse of(Mentor mentor, SiteUser siteUser, HostUniversity university, String termName) { return new MentorMyPageResponse( mentor.getId(), siteUser.getProfileImageUrl(), diff --git a/src/main/java/com/example/solidconnection/mentor/dto/MentorPreviewResponse.java b/src/main/java/com/example/solidconnection/mentor/dto/MentorPreviewResponse.java index e6a84d2eb..8007de448 100644 --- a/src/main/java/com/example/solidconnection/mentor/dto/MentorPreviewResponse.java +++ b/src/main/java/com/example/solidconnection/mentor/dto/MentorPreviewResponse.java @@ -2,7 +2,7 @@ import com.example.solidconnection.mentor.domain.Mentor; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import java.util.List; public record MentorPreviewResponse( @@ -20,7 +20,7 @@ public record MentorPreviewResponse( ) { public static MentorPreviewResponse of(Mentor mentor, SiteUser mentorUser, - University university, boolean isApplied, + HostUniversity university, boolean isApplied, String termName ) { return new MentorPreviewResponse( diff --git a/src/main/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepository.java b/src/main/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepository.java index 27d6a80d3..34e65940f 100644 --- a/src/main/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepository.java +++ b/src/main/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepository.java @@ -9,8 +9,8 @@ import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.repository.TermRepository; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.repository.HostUniversityRepository; import java.util.Collections; import java.util.List; import java.util.Map; @@ -26,7 +26,7 @@ public class MentorBatchQueryRepository { // 연관관계가 설정되지 않은 private final SiteUserRepository siteUserRepository; private final MentoringRepository mentoringRepository; - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private final TermRepository termRepository; public Map getMentorIdToSiteUserMap(List mentors) { @@ -47,16 +47,16 @@ public Map getMentorIdToSiteUserMap(List mentors) { )); } - public Map getMentorIdToUniversityMap(List mentors) { + public Map getMentorIdToUniversityMap(List mentors) { List universityIds = mentors.stream().map(Mentor::getUniversityId).distinct().toList(); - List universities = universityRepository.findAllById(universityIds); - Map universityIdToUniversityMap = universities.stream() - .collect(Collectors.toMap(University::getId, Function.identity())); + List universities = hostUniversityRepository.findAllById(universityIds); + Map universityIdToUniversityMap = universities.stream() + .collect(Collectors.toMap(HostUniversity::getId, Function.identity())); return mentors.stream().collect(Collectors.toMap( Mentor::getId, mentor -> { - University university = universityIdToUniversityMap.get(mentor.getUniversityId()); + HostUniversity university = universityIdToUniversityMap.get(mentor.getUniversityId()); if (university == null) { // mentor.university_id에 해당하는 대학이 없으면 정합성 문제가 발생한 것 throw new CustomException(DATA_INTEGRITY_VIOLATION, "mentor.university_id 에 해당하는 university 존재하지 않음"); } diff --git a/src/main/java/com/example/solidconnection/mentor/repository/MentorRepository.java b/src/main/java/com/example/solidconnection/mentor/repository/MentorRepository.java index 672f9325e..0fcd2dcd6 100644 --- a/src/main/java/com/example/solidconnection/mentor/repository/MentorRepository.java +++ b/src/main/java/com/example/solidconnection/mentor/repository/MentorRepository.java @@ -21,7 +21,7 @@ public interface MentorRepository extends JpaRepository { @Query(""" SELECT m FROM Mentor m - JOIN University u ON m.universityId = u.id + JOIN HostUniversity u ON m.universityId = u.id WHERE u.region = :region """) Slice findAllByRegion(@Param("region") Region region, Pageable pageable); diff --git a/src/main/java/com/example/solidconnection/mentor/repository/custom/MentorApplicationFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/mentor/repository/custom/MentorApplicationFilterRepositoryImpl.java index 38dc0b6e4..f6b504652 100644 --- a/src/main/java/com/example/solidconnection/mentor/repository/custom/MentorApplicationFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/mentor/repository/custom/MentorApplicationFilterRepositoryImpl.java @@ -4,7 +4,7 @@ import static com.example.solidconnection.location.region.domain.QRegion.region; import static com.example.solidconnection.mentor.domain.QMentorApplication.mentorApplication; import static com.example.solidconnection.siteuser.domain.QSiteUser.siteUser; -import static com.example.solidconnection.university.domain.QUniversity.university; +import static com.example.solidconnection.university.domain.QHostUniversity.hostUniversity; import static org.springframework.util.StringUtils.hasText; import com.example.solidconnection.admin.dto.MentorApplicationResponse; @@ -48,7 +48,7 @@ public class MentorApplicationFilterRepositoryImpl implements MentorApplicationF mentorApplication.id, region.koreanName, country.koreanName, - university.koreanName, + hostUniversity.koreanName, mentorApplication.universitySelectType, mentorApplication.mentorProofUrl, mentorApplication.mentorApplicationStatus, @@ -77,9 +77,9 @@ public Page searchMentorApplications(MentorAppl .select(MENTOR_APPLICATION_SEARCH_RESPONSE_PROJECTION) .from(mentorApplication) .join(siteUser).on(mentorApplication.siteUserId.eq(siteUser.id)) - .leftJoin(university).on(mentorApplication.universityId.eq(university.id)) - .leftJoin(region).on(university.region.eq(region)) - .leftJoin(country).on(university.country.eq(country)) + .leftJoin(hostUniversity).on(mentorApplication.universityId.eq(hostUniversity.id)) + .leftJoin(region).on(hostUniversity.region.eq(region)) + .leftJoin(country).on(hostUniversity.country.eq(country)) .where( verifyMentorStatusEq(condition.mentorApplicationStatus()), keywordContains(condition.keyword()), @@ -105,9 +105,9 @@ private JPAQuery createCountQuery(MentorApplicationSearchCondition conditi if (hasText(keyword)) { query.join(siteUser).on(mentorApplication.siteUserId.eq(siteUser.id)) - .leftJoin(university).on(mentorApplication.universityId.eq(university.id)) - .leftJoin(region).on(university.region.eq(region)) - .leftJoin(country).on(university.country.eq(country)); + .leftJoin(hostUniversity).on(mentorApplication.universityId.eq(hostUniversity.id)) + .leftJoin(region).on(hostUniversity.region.eq(region)) + .leftJoin(country).on(hostUniversity.country.eq(country)); } return query.where( @@ -128,7 +128,7 @@ private BooleanExpression keywordContains(String keyword) { } return siteUser.nickname.containsIgnoreCase(keyword) - .or(university.koreanName.containsIgnoreCase(keyword)) + .or(hostUniversity.koreanName.containsIgnoreCase(keyword)) .or(region.koreanName.containsIgnoreCase(keyword)) .or(country.koreanName.containsIgnoreCase(keyword)); } diff --git a/src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java b/src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java index 7f226f380..f32c1012e 100644 --- a/src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java +++ b/src/main/java/com/example/solidconnection/mentor/service/MentorMyPageService.java @@ -23,8 +23,8 @@ import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.repository.TermRepository; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.repository.HostUniversityRepository; import java.util.ArrayList; import java.util.List; import lombok.RequiredArgsConstructor; @@ -40,7 +40,7 @@ public class MentorMyPageService { private final MentorRepository mentorRepository; private final SiteUserRepository siteUserRepository; - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private final TermRepository termRepository; private final MentorApplicationRepository mentorApplicationRepository; @@ -52,7 +52,7 @@ public MentorMyPageResponse getMentorMyPage(long siteUserId) { .orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND)); Term term = termRepository.findById(mentor.getTermId()) .orElseThrow(() -> new CustomException(TERM_NOT_FOUND)); - University university = universityRepository.findById(mentor.getUniversityId()) + HostUniversity university = hostUniversityRepository.findById(mentor.getUniversityId()) .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); return MentorMyPageResponse.of(mentor, siteUser, university, term.getName()); } diff --git a/src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java b/src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java index a66b8d45d..c39844135 100644 --- a/src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java +++ b/src/main/java/com/example/solidconnection/mentor/service/MentorQueryService.java @@ -19,8 +19,8 @@ import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.repository.TermRepository; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.repository.HostUniversityRepository; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -38,7 +38,7 @@ public class MentorQueryService { private final MentoringRepository mentoringRepository; private final SiteUserRepository siteUserRepository; private final MentorBatchQueryRepository mentorBatchQueryRepository; - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private final RegionRepository regionRepository; private final TermRepository termRepository; @@ -46,7 +46,7 @@ public class MentorQueryService { public MentorDetailResponse getMentorDetails(long mentorId, long currentUserId) { Mentor mentor = mentorRepository.findById(mentorId) .orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND)); - University university = universityRepository.findById(mentor.getUniversityId()) + HostUniversity university = hostUniversityRepository.findById(mentor.getUniversityId()) .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); SiteUser mentorUser = siteUserRepository.findById(mentor.getSiteUserId()) .orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND)); @@ -77,14 +77,14 @@ private Slice filterMentorsByRegion(String regionKoreanName, Pageable pa private List buildMentorPreviewsWithBatchQuery(List mentors, long currentUserId) { Map mentorIdToSiteUser = mentorBatchQueryRepository.getMentorIdToSiteUserMap(mentors); - Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); + Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); Map mentorIdToIsApplied = mentorBatchQueryRepository.getMentorIdToIsApplied(mentors, currentUserId); Map termIdToName = mentorBatchQueryRepository.getTermIdToNameMap(mentors); List mentorPreviews = new ArrayList<>(); for (Mentor mentor : mentors) { SiteUser mentorUser = mentorIdToSiteUser.get(mentor.getId()); - University university = mentorIdToUniversity.get(mentor.getId()); + HostUniversity university = mentorIdToUniversity.get(mentor.getId()); boolean isApplied = mentorIdToIsApplied.get(mentor.getId()); String termName = termIdToName.get(mentor.getTermId()); MentorPreviewResponse response = MentorPreviewResponse.of(mentor, mentorUser, university, isApplied, termName); diff --git a/src/main/java/com/example/solidconnection/mentor/service/MentoringQueryService.java b/src/main/java/com/example/solidconnection/mentor/service/MentoringQueryService.java index e307d9e57..c21cc19a3 100644 --- a/src/main/java/com/example/solidconnection/mentor/service/MentoringQueryService.java +++ b/src/main/java/com/example/solidconnection/mentor/service/MentoringQueryService.java @@ -18,7 +18,7 @@ import com.example.solidconnection.mentor.repository.MentoringRepository; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.SiteUserRepository; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -58,7 +58,7 @@ public SliceResponse getMatchedMentors(long siteUserId, P private List buildMatchedMentorsWithBatchQuery(List mentors, long currentUserId) { Map mentorIdToSiteUser = mentorBatchQueryRepository.getMentorIdToSiteUserMap(mentors); - Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); + Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); Map mentorIdToIsApplied = mentorBatchQueryRepository.getMentorIdToIsApplied(mentors, currentUserId); Map termIdToName = mentorBatchQueryRepository.getTermIdToNameMap(mentors); @@ -67,7 +67,7 @@ private List buildMatchedMentorsWithBatchQuery(List matchedMentors = new ArrayList<>(); for (Mentor mentor : mentors) { SiteUser mentorUser = mentorIdToSiteUser.get(mentor.getId()); - University university = mentorIdToUniversity.get(mentor.getId()); + HostUniversity university = mentorIdToUniversity.get(mentor.getId()); boolean isApplied = mentorIdToIsApplied.get(mentor.getId()); Long roomId = mentorIdToRoomId.get(mentor.getId()); String termName = termIdToName.get(mentor.getTermId()); diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 6e8b88b66..af2a82fac 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -24,9 +24,9 @@ import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.dto.PasswordUpdateRequest; import com.example.solidconnection.siteuser.repository.SiteUserRepository; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.repository.HostUniversityRepository; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; @@ -48,7 +48,7 @@ public class MyPageService { private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; private final CountryRepository countryRepository; private final MentorRepository mentorRepository; - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private final S3Service s3Service; private final InterestedCountryService interestedCountryService; private final InterestedRegionService interestedRegionService; @@ -69,7 +69,7 @@ public MyPageResponse getMyPageInfo(long siteUserId) { } else if (siteUser.getRole() == Role.MENTOR) { Mentor mentor = mentorRepository.findBySiteUserId(siteUser.getId()) .orElseThrow(() -> new CustomException(MENTOR_NOT_FOUND)); - University university = universityRepository.findById(mentor.getUniversityId()) + HostUniversity university = hostUniversityRepository.findById(mentor.getUniversityId()) .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); universityKoreanName = university.getKoreanName(); } diff --git a/src/main/java/com/example/solidconnection/university/domain/HomeUniversity.java b/src/main/java/com/example/solidconnection/university/domain/HomeUniversity.java new file mode 100644 index 000000000..ef9cc01bd --- /dev/null +++ b/src/main/java/com/example/solidconnection/university/domain/HomeUniversity.java @@ -0,0 +1,26 @@ +package com.example.solidconnection.university.domain; + +import com.example.solidconnection.common.BaseEntity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Getter +public class HomeUniversity extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, unique = true, length = 100) + private String name; +} diff --git a/src/main/java/com/example/solidconnection/university/domain/University.java b/src/main/java/com/example/solidconnection/university/domain/HostUniversity.java similarity index 87% rename from src/main/java/com/example/solidconnection/university/domain/University.java rename to src/main/java/com/example/solidconnection/university/domain/HostUniversity.java index 0b55c3bee..e36c2caa0 100644 --- a/src/main/java/com/example/solidconnection/university/domain/University.java +++ b/src/main/java/com/example/solidconnection/university/domain/HostUniversity.java @@ -8,7 +8,9 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.FetchType; import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; @@ -18,7 +20,7 @@ @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter -public class University extends BaseEntity { +public class HostUniversity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -56,4 +58,7 @@ public class University extends BaseEntity { @ManyToOne private Region region; + + @ManyToOne(fetch = FetchType.LAZY) + private HomeUniversity homeUniversity; } diff --git a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java index 7d2fe526d..e4c089c6a 100644 --- a/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java +++ b/src/main/java/com/example/solidconnection/university/domain/UnivApplyInfo.java @@ -81,7 +81,7 @@ public class UnivApplyInfo extends BaseEntity { private Set languageRequirements = new HashSet<>(); @ManyToOne(fetch = FetchType.LAZY) - private University university; + private HostUniversity university; public void addLanguageRequirements(LanguageRequirement languageRequirements) { this.languageRequirements.add(languageRequirements); diff --git a/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java index 9d4fa3bbf..e2425c237 100644 --- a/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java +++ b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java @@ -1,7 +1,7 @@ package com.example.solidconnection.university.dto; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import java.util.List; public record UnivApplyInfoDetailResponse( @@ -33,7 +33,7 @@ public record UnivApplyInfoDetailResponse( String englishCourseUrl) { public static UnivApplyInfoDetailResponse of( - University university, + HostUniversity university, UnivApplyInfo univApplyInfo, String termName ) { diff --git a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java b/src/main/java/com/example/solidconnection/university/repository/HostUniversityRepository.java similarity index 64% rename from src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java rename to src/main/java/com/example/solidconnection/university/repository/HostUniversityRepository.java index 15210c18d..09a2ea390 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/HostUniversityRepository.java @@ -3,12 +3,12 @@ import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_NOT_FOUND; import com.example.solidconnection.common.exception.CustomException; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import org.springframework.data.jpa.repository.JpaRepository; -public interface UniversityRepository extends JpaRepository { +public interface HostUniversityRepository extends JpaRepository { - default University getUniversityById(Long id) { + default HostUniversity getHostUniversityById(Long id) { return findById(id) .orElseThrow(() -> new CustomException(UNIVERSITY_NOT_FOUND)); } diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index 7e8da9e40..e15a56d05 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -5,7 +5,7 @@ import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.domain.QLanguageRequirement; import com.example.solidconnection.university.domain.QUnivApplyInfo; -import com.example.solidconnection.university.domain.QUniversity; +import com.example.solidconnection.university.domain.QHostUniversity; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.dsl.BooleanExpression; @@ -33,7 +33,7 @@ public UnivApplyInfoFilterRepositoryImpl(EntityManager em) { @Override public List findAllByRegionCodeAndKeywordsAndTermId(String regionCode, List keywords, Long termId) { QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; - QUniversity university = QUniversity.university; + QHostUniversity university = QHostUniversity.hostUniversity; QCountry country = QCountry.country; QLanguageRequirement languageRequirement = QLanguageRequirement.languageRequirement; @@ -58,7 +58,7 @@ private BooleanExpression regionCodeEq(QCountry country, String regionCode) { return country.regionCode.eq(regionCode); } - private BooleanExpression countryOrUniversityContainsKeyword(QCountry country, QUniversity university, List keywords) { + private BooleanExpression countryOrUniversityContainsKeyword(QCountry country, QHostUniversity university, List keywords) { if (keywords == null || keywords.isEmpty()) { return Expressions.TRUE; } @@ -78,7 +78,7 @@ private BooleanExpression createKeywordCondition(StringPath namePath, List findAllByFilter( LanguageTestType testType, String testScore, Long termId, List countryCodes ) { - QUniversity university = QUniversity.university; + QHostUniversity university = QHostUniversity.hostUniversity; QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; QCountry country = QCountry.country; QLanguageRequirement languageRequirement = QLanguageRequirement.languageRequirement; @@ -146,7 +146,7 @@ private boolean isGivenScoreOverMinPassScore( @Override public List findAllByText(String text, Long termId) { QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; - QUniversity university = QUniversity.university; + QHostUniversity university = QHostUniversity.hostUniversity; QLanguageRequirement languageRequirement = QLanguageRequirement.languageRequirement; QCountry country = QCountry.country; QRegion region = QRegion.region; diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index c7713fd27..b8aa878f7 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -8,7 +8,7 @@ import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.repository.TermRepository; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; import com.example.solidconnection.university.dto.UnivApplyInfoFilterSearchRequest; import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; @@ -35,7 +35,7 @@ public class UnivApplyInfoQueryService { public UnivApplyInfoDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - University university = univApplyInfo.getUniversity(); + HostUniversity university = univApplyInfo.getUniversity(); Term term = termRepository.findById(univApplyInfo.getTermId()) .orElseThrow(() -> new CustomException(TERM_NOT_FOUND)); diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 3e17fb27c..0f46eba1d 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -48,100 +48,102 @@ VALUES ('test@test.email', 'yonso', 'https://github.com/nayonsoso.png', 'CONSIDERING', 'MENTEE', '$2a$10$psmwlxPfqWnIlq9JrlQJkuXr1XtjRNsyVOgcTWYZub5jFfn0TML76', 'EMAIL'); -- 12341234 -INSERT INTO university(id, country_code, region_code, english_name, format_name, korean_name, +INSERT INTO home_university (id, name) VALUES (1, '인하대학교'); + +INSERT INTO host_university(id, home_university_id, country_code, region_code, english_name, format_name, korean_name, accommodation_url, english_course_url, homepage_url, details_for_local, logo_image_url, background_image_url) -VALUES (1, 'US', 'AMERICAS', 'University of Guam', 'university_of_guam', '괌대학', +VALUES (1, 1, 'US', 'AMERICAS', 'University of Guam', 'university_of_guam', '괌대학', 'https://www.uog.edu/life-at-uog/residence-halls/', 'https://www.uog.edu/admissions/course-schedule', 'https://www.uog.edu/admissions/international-students', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_guam/1.png'), - (2, 'US', 'AMERICAS', 'University of Nevada, Las Vegas', 'university_of_nevada_las_vegas', '네바다주립대학 라스베이거스', + (2, 1, 'US', 'AMERICAS', 'University of Nevada, Las Vegas', 'university_of_nevada_las_vegas', '네바다주립대학 라스베이거스', 'https://www.unlv.edu/housing', 'https://www.unlv.edu/engineering/academic-programs', 'https://www.unlv.edu/engineering/eip', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_nevada_las_vegas/1.png'), - (3, 'CA', 'AMERICAS', 'Memorial University of Newfoundland St. John''s', + (3, 1, 'CA', 'AMERICAS', 'Memorial University of Newfoundland St. John''s', 'memorial_university_of_newfoundland_st_johns', '메모리얼 대학 세인트존스', 'https://www.mun.ca/residences/', 'https://www.mun.ca/regoff/registration-and-final-exams/course-offerings/', 'https://mun.ca/goabroad/visiting-students-inbound/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/memorial_university_of_newfoundland_st_johns/1.png'), - (4, 'AU', 'AMERICAS', 'University of Southern Queensland', 'university_of_southern_queensland', '서던퀸스랜드대학', + (4, 1, 'AU', 'AMERICAS', 'University of Southern Queensland', 'university_of_southern_queensland', '서던퀸스랜드대학', 'https://www.unisq.edu.au/current-students/support/accommodation', 'https://www.unisq.edu.au/course/specification/current/', 'https://www.unisq.edu.au/international/partnerships/study-abroad-exchange', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_queensland/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_queensland/1.png'), - (5, 'AU', 'AMERICAS', 'University of Sydney', 'university_of_sydney', '시드니대학', + (5, 1, 'AU', 'AMERICAS', 'University of Sydney', 'university_of_sydney', '시드니대학', 'https://www.sydney.edu.au/study/accommodation.html', 'www.sydney.edu.au/sydney-abroad-units', 'https://www.sydney.edu.au/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_sydney/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_sydney/1.png'), - (6, 'AU', 'AMERICAS', 'Curtin University', 'curtin_university', '커틴대학', + (6, 1, 'AU', 'AMERICAS', 'Curtin University', 'curtin_university', '커틴대학', 'https://www.curtin.edu.au/study/campus-life/accommodation/#perth', 'https://handbook.curtin.edu.au/', 'https://www.curtin.edu.au/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/curtin_university/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/curtin_university/1.png'), - (7, 'DK', 'EUROPE', 'University of Southern Denmark', 'university_of_southern_denmark', '서던덴마크대학교', + (7, 1, 'DK', 'EUROPE', 'University of Southern Denmark', 'university_of_southern_denmark', '서던덴마크대학교', 'https://www.sdu.dk/en/uddannelse/information_for_international_students/studenthousing', 'https://www.sdu.dk/en/uddannelse/exchange_programmes', 'https://www.sdu.dk/en', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_southern_denmark/1.png'), - (8, 'DK', 'EUROPE', 'IT University of Copenhagen', 'it_university_of_copenhagen', '코펜하겐 IT대학', + (8, 1, 'DK', 'EUROPE', 'IT University of Copenhagen', 'it_university_of_copenhagen', '코펜하겐 IT대학', 'https://en.itu.dk/Programmes/Student-Life/Practical-information-for-international-students', 'https://en.itu.dk/Programmes/Exchange-students/Become-an-exchange-student-at-ITU', 'https://en.itu.dk/programmes/exchange-students/become-an-exchange-student-at-itu', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/it_university_of_copenhagen/1.png'), - (9, 'DE', 'EUROPE', 'Neu-Ulm University of Applied Sciences', 'neu-ulm_university_of_applied_sciences', + (9, 1, 'DE', 'EUROPE', 'Neu-Ulm University of Applied Sciences', 'neu-ulm_university_of_applied_sciences', '노이울름 대학', 'https://www.hnu.de/fileadmin/user_upload/5_Internationales/International_Incomings/Bewerbung/Housing_Broschure.pdf', 'https://www.hnu.de/en/international/international-exchange-students/courses-taught-in-english', 'https://www.hnu.de/en/international', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/neu-ulm_university_of_applied_sciences/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/neu-ulm_university_of_applied_sciences/1.png'), - (10, 'GB', 'EUROPE', 'University of Hull', 'university_of_hull', '헐대학', + (10, 1, 'GB', 'EUROPE', 'University of Hull', 'university_of_hull', '헐대학', 'https://www.hull.ac.uk/Choose-Hull/Student-life/Accommodation/accommodation.aspx', 'https://universityofhull.app.box.com/s/mpvulz3yz0uijdt68rybce19nek0d8eh', 'https://www.hull.ac.uk/choose-hull/study-at-hull/need-to-know/key-dates', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_hull/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_hull/1.png'), - (11, 'AT', 'EUROPE', 'University of Graz', 'university_of_graz', '그라츠 대학', + (11, 1, 'AT', 'EUROPE', 'University of Graz', 'university_of_graz', '그라츠 대학', 'https://orientation.uni-graz.at/de/planning-the-arrival/accommodation/', 'https://static.uni-graz.at/fileadmin/veranstaltungen/orientation/documents/incstud_application-courses.pdf', 'https://www.uni-graz.at/en/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_graz/1.png'), - (12, 'AT', 'EUROPE', 'Graz University of Technology', 'graz_university_of_technology', '그라츠공과대학', + (12, 1, 'AT', 'EUROPE', 'Graz University of Technology', 'graz_university_of_technology', '그라츠공과대학', 'https://www.tugraz.at/en/studying-and-teaching/studying-internationally/incoming-students-exchange-at-tu-graz/your-stay-at-tu-graz/preparation#c75033', 'https://tugraz.at/go/search-courses', 'https://www.tugraz.at/en/home', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/graz_university_of_technology/1.png'), - (13, 'AT', 'EUROPE', 'Catholic Private University Linz', 'catholic_private_university_linz', '린츠 카톨릭 대학교', NULL, + (13, 1, 'AT', 'EUROPE', 'Catholic Private University Linz', 'catholic_private_university_linz', '린츠 카톨릭 대학교', NULL, 'https://ku-linz.at/en/ku_international/incomings/kulis', 'https://ku-linz.at/en', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/catholic_private_university_linz/1.png'), - (14, 'AT', 'EUROPE', 'University of Applied Sciences Technikum Wien', + (14, 1, 'AT', 'EUROPE', 'University of Applied Sciences Technikum Wien', 'university_of_applied_sciences_technikum_wien', '빈 공과대학교', NULL, 'https://www.technikum-wien.at/en/international/student-mobility/', 'https://www.technikum-wien.at/international/studierendenmobilitaet-2/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_applied_sciences_technikum_wien/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/university_of_applied_sciences_technikum_wien/1.png'), - (15, 'FR', 'EUROPE', 'IPSA', 'ipsa', 'IPSA', 'https://www.ipsa.fr/en/student-life/pratical-information/', NULL, + (15, 1, 'FR', 'EUROPE', 'IPSA', 'ipsa', 'IPSA', 'https://www.ipsa.fr/en/student-life/pratical-information/', NULL, 'https://www.ipsa.fr/en/engineering-school/aeronautical-space', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/ipsa/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/ipsa/1.png'), - (16, 'JP', 'ASIA', 'Meiji University', 'meiji_university', '메이지대학', + (16, 1, 'JP', 'ASIA', 'Meiji University', 'meiji_university', '메이지대학', 'https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf', NULL, 'https://www.meiji.ac.jp/cip/english/admissions/co7mm90000000461-att/co7mm900000004fa.pdf', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/meiji_university/1.png'), - (17, 'JP', 'ASIA', 'BAIKA Women''s University', 'baika_womens_university', '바이카여자대학', + (17, 1, 'JP', 'ASIA', 'BAIKA Women''s University', 'baika_womens_university', '바이카여자대학', 'https://dormy-ac.com/page/baika/', NULL, 'https://www.baika.ac.jp/english/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/baika_womens_university/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/baika_womens_university/1.png'), - (18, 'JP', 'ASIA', 'Bunkyo Gakuin University', 'bunkyo_gakuin_university', '분쿄가쿠인대학', NULL, NULL, + (18, 1, 'JP', 'ASIA', 'Bunkyo Gakuin University', 'bunkyo_gakuin_university', '분쿄가쿠인대학', NULL, NULL, 'https://www.bgu.ac.jp/', NULL, 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/bunkyo_gakuin_university/logo.png', 'https://solid-connection.s3.ap-northeast-2.amazonaws.com/original/bunkyo_gakuin_university/1.png'); diff --git a/src/main/resources/db/migration/V42__rename_university_to_host_university_and_create_home_university.sql b/src/main/resources/db/migration/V42__rename_university_to_host_university_and_create_home_university.sql new file mode 100644 index 000000000..d6b9b6044 --- /dev/null +++ b/src/main/resources/db/migration/V42__rename_university_to_host_university_and_create_home_university.sql @@ -0,0 +1,25 @@ +RENAME TABLE university TO host_university; + +ALTER TABLE university_info_for_apply + DROP FOREIGN KEY FKd0257hco6uy2utd1xccjh3fal; + +ALTER TABLE university_info_for_apply + ADD CONSTRAINT fk_university_info_for_apply_host_university + FOREIGN KEY (university_id) REFERENCES host_university (id) ON DELETE NO ACTION; + +CREATE TABLE IF NOT EXISTS home_university +( + id BIGINT AUTO_INCREMENT NOT NULL, + name VARCHAR(100) NOT NULL, + created_at DATETIME(6), + updated_at DATETIME(6), + CONSTRAINT `PRIMARY` PRIMARY KEY (id), + CONSTRAINT uk_home_university_name UNIQUE (name) +); + +ALTER TABLE host_university + ADD COLUMN home_university_id BIGINT NULL; + +ALTER TABLE host_university + ADD CONSTRAINT fk_host_university_home_university + FOREIGN KEY (home_university_id) REFERENCES home_university (id) ON DELETE NO ACTION; diff --git a/src/test/java/com/example/solidconnection/admin/service/AdminMentorApplicationServiceTest.java b/src/test/java/com/example/solidconnection/admin/service/AdminMentorApplicationServiceTest.java index 0c133165a..5160b2832 100644 --- a/src/test/java/com/example/solidconnection/admin/service/AdminMentorApplicationServiceTest.java +++ b/src/test/java/com/example/solidconnection/admin/service/AdminMentorApplicationServiceTest.java @@ -24,7 +24,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UniversityFixture; import java.time.LocalDate; import java.util.List; @@ -66,7 +66,7 @@ class AdminMentorApplicationServiceTest { private MentorApplication mentorApplication8; private SiteUser user; - private University university; + private HostUniversity university; @BeforeEach void setUp() { @@ -78,9 +78,9 @@ void setUp() { SiteUser user6 = siteUserFixture.사용자(6, "test6"); SiteUser user7 = siteUserFixture.사용자(7, "test7"); SiteUser user8 = siteUserFixture.사용자(8, "test8"); - University university1 = universityFixture.메이지_대학(); - University university2 = universityFixture.괌_대학(); - University university3 = universityFixture.그라츠_대학(); + HostUniversity university1 = universityFixture.메이지_대학(); + HostUniversity university2 = universityFixture.괌_대학(); + HostUniversity university3 = universityFixture.그라츠_대학(); mentorApplication1 = mentorApplicationFixture.승인된_멘토신청(user1.getId(), UniversitySelectType.CATALOG, university1.getId()); mentorApplication2 = mentorApplicationFixture.대기중_멘토신청(user2.getId(), UniversitySelectType.CATALOG, university2.getId()); mentorApplication3 = mentorApplicationFixture.거절된_멘토신청(user3.getId(), UniversitySelectType.CATALOG, university3.getId()); @@ -468,7 +468,7 @@ class 멘토_지원서에_대학_매핑 { void OTHER_타입의_멘토_지원서에_대학을_매핑하면_대학이_할당되고_타입이_CATALOG로_변경된다() { // given long otherTypeMentorApplicationId = mentorApplication7.getId(); - University university = universityFixture.메이지_대학(); + HostUniversity university = universityFixture.메이지_대학(); // when adminMentorApplicationService.assignUniversity(otherTypeMentorApplicationId, university.getId()); @@ -485,7 +485,7 @@ class 멘토_지원서에_대학_매핑 { void 존재하지_않는_멘토_지원서에_대학을_매핑하면_예외_응답을_반환한다() { // given long nonExistentId = 99999L; - University university = universityFixture.메이지_대학(); + HostUniversity university = universityFixture.메이지_대학(); // when & then assertThatCode(() -> adminMentorApplicationService.assignUniversity(nonExistentId, university.getId())) @@ -497,7 +497,7 @@ class 멘토_지원서에_대학_매핑 { void CATALOG_타입의_멘토_지원서에_대학을_매핑하면_예외_응답을_반환한다() { // given long catalogTypeMentorApplicationId = mentorApplication2.getId(); - University university = universityFixture.메이지_대학(); + HostUniversity university = universityFixture.메이지_대학(); // when & then assertThatCode(() -> adminMentorApplicationService.assignUniversity(catalogTypeMentorApplicationId, university.getId())) diff --git a/src/test/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepositoryTest.java b/src/test/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepositoryTest.java index 347bb684f..4719849f4 100644 --- a/src/test/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepositoryTest.java +++ b/src/test/java/com/example/solidconnection/mentor/repository/MentorBatchQueryRepositoryTest.java @@ -9,7 +9,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UniversityFixture; import java.util.List; import java.util.Map; @@ -37,7 +37,7 @@ class MentorBatchQueryRepositoryTest { @Autowired private UniversityFixture universityFixture; - private University university1, university2; + private HostUniversity university1, university2; private Mentor mentor1, mentor2; private SiteUser mentorUser1, mentorUser2, currentUser; @@ -73,7 +73,7 @@ void setUp() { List mentors = List.of(mentor1, mentor2); // when - Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); + Map mentorIdToUniversity = mentorBatchQueryRepository.getMentorIdToUniversityMap(mentors); // then assertAll( diff --git a/src/test/java/com/example/solidconnection/mentor/service/MentorMyPageServiceTest.java b/src/test/java/com/example/solidconnection/mentor/service/MentorMyPageServiceTest.java index cecae13be..71eab1b73 100644 --- a/src/test/java/com/example/solidconnection/mentor/service/MentorMyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/mentor/service/MentorMyPageServiceTest.java @@ -31,7 +31,7 @@ import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.fixture.TermFixture; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UniversityFixture; import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -73,7 +73,7 @@ class MentorMyPageServiceTest { private SiteUser mentorUser; private Mentor mentor; - private University university; + private HostUniversity university; private SiteUser siteUser; private Term term; diff --git a/src/test/java/com/example/solidconnection/mentor/service/MentorQueryServiceTest.java b/src/test/java/com/example/solidconnection/mentor/service/MentorQueryServiceTest.java index 8a4088845..85eb6d696 100644 --- a/src/test/java/com/example/solidconnection/mentor/service/MentorQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/mentor/service/MentorQueryServiceTest.java @@ -19,7 +19,7 @@ import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.term.fixture.TermFixture; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UniversityFixture; import java.util.Map; import java.util.function.Function; @@ -56,7 +56,7 @@ class MentorQueryServiceTest { @Autowired private TermFixture termFixture; - private University university; + private HostUniversity university; @BeforeEach void setUp() { @@ -134,7 +134,7 @@ class 멘토_미리보기_목록_정보_조회 { private Mentor mentor1, mentor2; private SiteUser mentorUser1, mentorUser2, currentUser; - private University university1, university2; + private HostUniversity university1, university2; @BeforeEach void setUp() { @@ -200,7 +200,7 @@ class 멘토_미리보기_목록_필터링 { private Mentor asiaMentor, europeMentor; private SiteUser currentUser; - private University asiaUniversity, europeUniversity; + private HostUniversity asiaUniversity, europeUniversity; @BeforeEach void setUp() { diff --git a/src/test/java/com/example/solidconnection/mentor/service/MentoringQueryServiceTest.java b/src/test/java/com/example/solidconnection/mentor/service/MentoringQueryServiceTest.java index 959d8e491..ffacf0575 100644 --- a/src/test/java/com/example/solidconnection/mentor/service/MentoringQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/mentor/service/MentoringQueryServiceTest.java @@ -25,7 +25,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UniversityFixture; import java.util.Map; import java.util.function.Function; @@ -69,7 +69,7 @@ class MentoringQueryServiceTest { private SiteUser mentorUser1, mentorUser2; private SiteUser menteeUser1, menteeUser2, menteeUser3; private Mentor mentor1, mentor2, mentor3; - private University university; + private HostUniversity university; private Pageable pageable; @BeforeEach diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 3a82681f3..5eca58c7b 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -41,7 +41,7 @@ import com.example.solidconnection.term.domain.Term; import com.example.solidconnection.term.fixture.TermFixture; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import java.time.LocalDateTime; @@ -141,7 +141,7 @@ void setUp() { void 멘토의_마이페이지_정보를_조회한다() { // given SiteUser mentorUser = siteUserFixture.멘토(1, "mentor"); - University university = univApplyInfoFixture.괌대학_A_지원_정보(term.getId()).getUniversity(); + HostUniversity university = univApplyInfoFixture.괌대학_A_지원_정보(term.getId()).getUniversity(); mentorFixture.멘토(mentorUser.getId(), university.getId()); int likedUnivApplyInfoCount = createLikedUnivApplyInfos(mentorUser); diff --git a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java index 6f78d8086..b9002d9d1 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java @@ -4,7 +4,7 @@ import static com.example.solidconnection.university.domain.TuitionFeeType.HOME_UNIVERSITY_PAYMENT; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import java.util.HashSet; import lombok.RequiredArgsConstructor; @@ -18,7 +18,7 @@ public class UnivApplyInfoFixtureBuilder { private long termId; private String koreanName; - private University university; + private HostUniversity university; public UnivApplyInfoFixtureBuilder univApplyInfo() { return new UnivApplyInfoFixtureBuilder(univApplyInfoRepository); @@ -34,7 +34,7 @@ public UnivApplyInfoFixtureBuilder koreanName(String koreanName) { return this; } - public UnivApplyInfoFixtureBuilder university(University university) { + public UnivApplyInfoFixtureBuilder university(HostUniversity university) { this.university = university; return this; } diff --git a/src/test/java/com/example/solidconnection/university/fixture/UniversityFixture.java b/src/test/java/com/example/solidconnection/university/fixture/UniversityFixture.java index bbc3fc3b4..553966c10 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UniversityFixture.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UniversityFixture.java @@ -2,7 +2,7 @@ import com.example.solidconnection.location.country.fixture.CountryFixture; import com.example.solidconnection.location.region.fixture.RegionFixture; -import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.domain.HostUniversity; import lombok.RequiredArgsConstructor; import org.springframework.boot.test.context.TestComponent; @@ -14,7 +14,7 @@ public final class UniversityFixture { private final CountryFixture countryFixture; private final UniversityFixtureBuilder universityFixtureBuilder; - public University 괌_대학() { + public HostUniversity 괌_대학() { return universityFixtureBuilder.university() .koreanName("괌 대학") .englishName("University of Guam") @@ -23,7 +23,7 @@ public final class UniversityFixture { .create(); } - public University 네바다주립_대학_라스베이거스() { + public HostUniversity 네바다주립_대학_라스베이거스() { return universityFixtureBuilder.university() .koreanName("네바다주립 대학 라스베이거스") .englishName("University of Nevada, Las Vegas") @@ -32,7 +32,7 @@ public final class UniversityFixture { .create(); } - public University 아칸소_주립_대학() { + public HostUniversity 아칸소_주립_대학() { return universityFixtureBuilder.university() .koreanName("아칸소 주립 대학") .englishName("Arkansas State University") @@ -41,7 +41,7 @@ public final class UniversityFixture { .create(); } - public University 메모리얼_대학_세인트존스() { + public HostUniversity 메모리얼_대학_세인트존스() { return universityFixtureBuilder.university() .koreanName("메모리얼 대학 세인트존스") .englishName("Memorial University of Newfoundland St. John's") @@ -50,7 +50,7 @@ public final class UniversityFixture { .create(); } - public University 서던덴마크_대학() { + public HostUniversity 서던덴마크_대학() { return universityFixtureBuilder.university() .koreanName("서던덴마크 대학") .englishName("University of Southern Denmark") @@ -59,7 +59,7 @@ public final class UniversityFixture { .create(); } - public University 코펜하겐IT_대학() { + public HostUniversity 코펜하겐IT_대학() { return universityFixtureBuilder.university() .koreanName("코펜하겐IT 대학") .englishName("IT University of Copenhagen") @@ -68,7 +68,7 @@ public final class UniversityFixture { .create(); } - public University 그라츠_대학() { + public HostUniversity 그라츠_대학() { return universityFixtureBuilder.university() .koreanName("그라츠 대학") .englishName("University of Graz") @@ -77,7 +77,7 @@ public final class UniversityFixture { .create(); } - public University 그라츠공과_대학() { + public HostUniversity 그라츠공과_대학() { return universityFixtureBuilder.university() .koreanName("그라츠공과 대학") .englishName("Graz University of Technology") @@ -86,7 +86,7 @@ public final class UniversityFixture { .create(); } - public University 린츠_카톨릭_대학() { + public HostUniversity 린츠_카톨릭_대학() { return universityFixtureBuilder.university() .koreanName("린츠 카톨릭 대학") .englishName("Catholic Private University Linz") @@ -95,7 +95,7 @@ public final class UniversityFixture { .create(); } - public University 메이지_대학() { + public HostUniversity 메이지_대학() { return universityFixtureBuilder.university() .koreanName("메이지 대학") .englishName("Meiji University") diff --git a/src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java index 4da6cdfd7..9b4b9a670 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java @@ -2,8 +2,8 @@ import com.example.solidconnection.location.country.domain.Country; import com.example.solidconnection.location.region.domain.Region; -import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.UniversityRepository; +import com.example.solidconnection.university.domain.HostUniversity; +import com.example.solidconnection.university.repository.HostUniversityRepository; import lombok.RequiredArgsConstructor; import org.springframework.boot.test.context.TestComponent; @@ -11,7 +11,7 @@ @RequiredArgsConstructor public class UniversityFixtureBuilder { - private final UniversityRepository universityRepository; + private final HostUniversityRepository hostUniversityRepository; private String koreanName; private String englishName; @@ -19,7 +19,7 @@ public class UniversityFixtureBuilder { private Region region; public UniversityFixtureBuilder university() { - return new UniversityFixtureBuilder(universityRepository); + return new UniversityFixtureBuilder(hostUniversityRepository); } public UniversityFixtureBuilder koreanName(String koreanName) { @@ -42,8 +42,8 @@ public UniversityFixtureBuilder region(Region region) { return this; } - public University create() { - University university = new University( + public HostUniversity create() { + HostUniversity university = new HostUniversity( null, koreanName, englishName, "formatName", "https://homepage-url", @@ -51,8 +51,9 @@ public University create() { "https://accommodation-url", "https://logo-image-url", "https://background-image-url", - null, country, region + null, country, region, + null ); - return universityRepository.save(university); + return hostUniversityRepository.save(university); } }