Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package es.princip.ringus.application.mentee.service;

import es.princip.ringus.domain.exception.MemberErrorCode;
import es.princip.ringus.domain.exception.MenteeErrorCode;
import es.princip.ringus.domain.member.Member;
import es.princip.ringus.domain.member.MemberRepository;
import es.princip.ringus.domain.mentee.Mentee;
import es.princip.ringus.domain.mentee.MenteeRepository;
import es.princip.ringus.global.exception.CustomRuntimeException;
Expand All @@ -13,11 +16,16 @@
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class MyMenteeService {
private final MemberRepository memberRepository;
private final MenteeRepository menteeRepository;

public MyMenteeResponse getDetailBy(Long mentorId) {
Mentee mentee = menteeRepository.findByMemberId(mentorId)
.orElseThrow(() -> new CustomRuntimeException(MenteeErrorCode.MENTEE_NOT_FOUND));
return MyMenteeResponse.from(mentee);

Member member = memberRepository.findById(mentee.getMemberId())
.orElseThrow(() -> new CustomRuntimeException(MemberErrorCode.MEMBER_NOT_FOUND));

return MyMenteeResponse.from(member,mentee);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,12 @@ public CursorResponse<MentorCardResponse> getMentorBy(CursorRequest request, Pag
public MentorDetailResponse getDetailBy(Long mentorId) {
Mentor mentor = mentorRepository.findById(mentorId)
.orElseThrow(() -> new CustomRuntimeException(MentorErrorCode.MENTOR_PROFILE_NOT_FOUND));

Member member = memberRepository.findById(mentor.getMemberId())
.orElseThrow(() -> new CustomRuntimeException(MemberErrorCode.MEMBER_NOT_FOUND));

return MentorDetailResponse.from(
member,
mentor,
mentoringRepository.findMentoringCountBy(mentorId)
);
Expand Down
23 changes: 6 additions & 17 deletions src/main/java/es/princip/ringus/domain/mentor/vo/DetailedJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

@Getter
public enum DetailedJob {
// Marketing
BRAND_MARKETING("BRAND_MARKETING", "브랜드 마케팅", JobCategory.MARKETING),
PERFORMANCE_MARKETING("PERFORMANCE_MARKETING", "퍼포먼스 마케팅", JobCategory.MARKETING),
DIGITAL_SOCIAL_MARKETING("DIGITAL_SOCIAL_MARKETING", "디지털/소셜 마케팅", JobCategory.MARKETING),
Expand All @@ -20,7 +19,6 @@ public enum DetailedJob {
BROADCAST_PD("BROADCAST_PD", "방송PD/영상PD", JobCategory.MARKETING),
OTHER_MARKETING("OTHER_MARKETING", "기타", JobCategory.MARKETING),

// Service Planning
SERVICE_PLANNING("SERVICE_PLANNING", "서비스기획", JobCategory.SERVICE_PLANNING),
PM_PO("PM_PO", "PM/PO", JobCategory.SERVICE_PLANNING),
STRATEGY_PLANNING("STRATEGY_PLANNING", "전략 기획", JobCategory.SERVICE_PLANNING),
Expand All @@ -30,7 +28,6 @@ public enum DetailedJob {
STARTUP("STARTUP", "창업", JobCategory.SERVICE_PLANNING),
OTHER_SERVICE_PLANNING("OTHER_SERVICE_PLANNING", "기타", JobCategory.SERVICE_PLANNING),

// Design
UX_UI_DESIGN("UX_UI_DESIGN", "UX/UI 디자인", JobCategory.DESIGN),
GRAPHIC_DESIGN("GRAPHIC_DESIGN", "그래픽 디자인", JobCategory.DESIGN),
PRODUCT_DESIGN("PRODUCT_DESIGN", "상품 디자인", JobCategory.DESIGN),
Expand All @@ -39,7 +36,6 @@ public enum DetailedJob {
ART_DIRECTOR("ART_DIRECTOR", "아트 디렉터", JobCategory.DESIGN),
OTHER_DESIGN("OTHER_DESIGN", "기타", JobCategory.DESIGN),

// Development
FRONTEND("FRONTEND", "프론트엔드", JobCategory.DEVELOPMENT),
BACKEND("BACKEND", "백엔드", JobCategory.DEVELOPMENT),
FULLSTACK("FULLSTACK", "풀스택 개발자", JobCategory.DEVELOPMENT),
Expand All @@ -50,12 +46,10 @@ public enum DetailedJob {
SECURITY("SECURITY", "보안 엔지니어", JobCategory.DEVELOPMENT),
OTHER_DEVELOPMENT("OTHER_DEVELOPMENT", "기타", JobCategory.DEVELOPMENT),

// Graduate School
DOMESTIC_GRADUATE_SCHOOL("DOMESTIC_GRADUATE_SCHOOL", "국내 대학원", JobCategory.GRADUATE_SCHOOL),
OVERSEAS_GRADUATE_SCHOOL("OVERSEAS_GRADUATE_SCHOOL", "해외 대학원", JobCategory.GRADUATE_SCHOOL),
OTHER_GRADUATE_SCHOOL("OTHER_GRADUATE_SCHOOL", "기타", JobCategory.GRADUATE_SCHOOL),

// HR Support
HR_PLANNING("HR_PLANNING", "인사기획", JobCategory.HR_SUPPORT),
RECRUITMENT("RECRUITMENT", "채용담당", JobCategory.HR_SUPPORT),
TALENT_DEVELOPMENT("TALENT_DEVELOPMENT", "인재육성/교육담당", JobCategory.HR_SUPPORT),
Expand All @@ -66,7 +60,6 @@ public enum DetailedJob {
RECRUITER("RECRUITER", "리크루터", JobCategory.HR_SUPPORT),
OTHER_HR_SUPPORT("OTHER_HR_SUPPORT", "기타", JobCategory.HR_SUPPORT),

// Sales Customer
B2B_SALES("B2B_SALES", "기업영업(B2B)", JobCategory.SALES_CUSTOMER),
B2C_SALES("B2C_SALES", "개인영업(B2C)", JobCategory.SALES_CUSTOMER),
OVERSEAS_SALES("OVERSEAS_SALES", "해외영업", JobCategory.SALES_CUSTOMER),
Expand All @@ -77,15 +70,13 @@ public enum DetailedJob {
CSM_CX("CSM_CX", "CSM/CX", JobCategory.SALES_CUSTOMER),
OTHER_SALES_CUSTOMER("OTHER_SALES_CUSTOMER", "기타", JobCategory.SALES_CUSTOMER),

// Finance Consulting VC
CONSULTANT("CONSULTANT", "컨설턴트", JobCategory.FINANCE_CONSULTING_VC),
VC_INVESTMENT("VC_INVESTMENT", "VC/투자", JobCategory.FINANCE_CONSULTING_VC),
IB_PE_ALTERNATIVE_INVESTMENT("IB_PE_ALTERNATIVE_INVESTMENT", "IB/PE/대체투자", JobCategory.FINANCE_CONSULTING_VC),
ANALYST("ANALYST", "애널리스트", JobCategory.FINANCE_CONSULTING_VC),
ACCOUNTING_FINANCE("ACCOUNTING_FINANCE", "회계/재무", JobCategory.FINANCE_CONSULTING_VC),
OTHER_FINANCE_CONSULTING_VC("OTHER_FINANCE_CONSULTING_VC", "기타", JobCategory.FINANCE_CONSULTING_VC),
CONSULTANT("CONSULTANT", "컨설턴트", JobCategory.FINANCE),
VC_INVESTMENT("VC_INVESTMENT", "VC/투자", JobCategory.FINANCE),
IB_PE_ALTERNATIVE_INVESTMENT("IB_PE_ALTERNATIVE_INVESTMENT", "IB/PE/대체투자", JobCategory.FINANCE),
ANALYST("ANALYST", "애널리스트", JobCategory.FINANCE),
ACCOUNTING_FINANCE("ACCOUNTING_FINANCE", "회계/재무", JobCategory.FINANCE),
OTHER_FINANCE("OTHER_FINANCE", "기타", JobCategory.FINANCE),

// Data
DATA_SCIENTIST("DATA_SCIENTIST", "데이터 사이언티스트", JobCategory.DATA),
DATA_ENGINEER("DATA_ENGINEER", "데이터 엔지니어", JobCategory.DATA),
DATA_ANALYST("DATA_ANALYST", "데이터 애널리스트", JobCategory.DATA),
Expand All @@ -95,15 +86,13 @@ public enum DetailedJob {
RESEARCH_ANALYST("RESEARCH_ANALYST", "리서치 애널리스트", JobCategory.DATA),
OTHER_DATA("OTHER_DATA", "기타", JobCategory.DATA),

// Medical
CLINICAL_DOCTOR("CLINICAL_DOCTOR", "임상의사", JobCategory.MEDICAL),
CLINICAL_RESEARCHER("CLINICAL_RESEARCHER", "임상연구원", JobCategory.MEDICAL),
MEDICAL_DEVICE_RND("MEDICAL_DEVICE_RND", "의료기기 연구개발", JobCategory.MEDICAL),
PHARMACEUTICAL_RESEARCHER("PHARMACEUTICAL_RESEARCHER", "제약회사 연구원", JobCategory.MEDICAL),
BIO_RESEARCHER("BIO_RESEARCHER", "바이오 연구원", JobCategory.MEDICAL),
OTHER_MEDICAL("OTHER_MEDICAL", "기타", JobCategory.MEDICAL),

// Legal
LAWYER("LAWYER", "변호사", JobCategory.LEGAL),
LEGAL_COUNSEL("LEGAL_COUNSEL", "법무담당", JobCategory.LEGAL),
PATENT("PATENT", "특허담당", JobCategory.LEGAL),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

@Getter
public enum JobCategory {
MARKETING("MARKETING", "마케팅/광고홍보/미디어"),
SERVICE_PLANNING("SERVICE_PLANNING", "서비스 기획/사업/운영"),
MARKETING("MARKETING", "마케팅"),
SERVICE_PLANNING("SERVICE_PLANNING", "서비스 기획"),
DESIGN("DESIGN", "디자인"),
DEVELOPMENT("DEVELOPMENT", "개발"),
GRADUATE_SCHOOL("GRADUATE_SCHOOL", "대학원"),
HR_SUPPORT("HR_SUPPORT", "인사/채용/경영지원"),
SALES_CUSTOMER("SALES_CUSTOMER", "영업/고객"),
FINANCE_CONSULTING_VC("FINANCE_CONSULTING_VC", "금융/컨설팅/VC/재무"),
HR_SUPPORT("HR_SUPPORT", "인사"),
SALES_CUSTOMER("SALES_CUSTOMER", "영업"),
FINANCE("FINANCE", "금융"),
DATA("DATA", "데이터"),
MEDICAL("MEDICAL", "의료"),
LEGAL("LEGAL", "법률");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
package es.princip.ringus.presentation.mentee.dto;

import es.princip.ringus.domain.member.Member;
import es.princip.ringus.domain.mentee.Mentee;
import es.princip.ringus.presentation.common.dto.EducationResponse;
import es.princip.ringus.presentation.common.dto.ProfileImageResponse;

public record MyMenteeResponse(
String email,
String nickname,
EducationResponse education,
String introduction,
ProfileImageResponse image
) {
public static MyMenteeResponse from(final Mentee mentee) {
public static MyMenteeResponse from(
final Member member,
final Mentee mentee
) {
return new MyMenteeResponse(
member.getEmail(),
mentee.getNickname(),
EducationResponse.from(mentee.getEducation()),
mentee.getIntroduction(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package es.princip.ringus.presentation.mentor.dto;

import es.princip.ringus.domain.member.Member;
import es.princip.ringus.domain.mentor.Mentor;
import es.princip.ringus.domain.mentor.vo.Hashtag;
import es.princip.ringus.domain.mentor.vo.MentoringField;
Expand All @@ -8,6 +9,7 @@
import java.util.List;

public record MentorDetailResponse(
String email,
String nickname,
EducationResponse education,
OrganizationResponse organization,
Expand All @@ -19,8 +21,13 @@ public record MentorDetailResponse(
PortfolioResponse portfolio,
Long mentoringCount
) {
public static MentorDetailResponse from(final Mentor mentor, Long mentoringCount) {
public static MentorDetailResponse from(
final Member member,
final Mentor mentor,
Long mentoringCount
) {
return new MentorDetailResponse(
member.getEmail(),
mentor.getNickname(),
EducationResponse.from(mentor.getEducation()),
OrganizationResponse.from(mentor.getOrganization()),
Expand Down
33 changes: 33 additions & 0 deletions src/main/resources/db/migration/V7__fix_mentor_category.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
ALTER TABLE mentor
MODIFY job_category ENUM(
'DATA','DESIGN','DEVELOPMENT',
'FINANCE','FINANCE_CONSULTING_VC',
'GRADUATE_SCHOOL','HR_SUPPORT','LEGAL',
'MARKETING','MEDICAL','SALES_CUSTOMER','SERVICE_PLANNING'
);

ALTER TABLE mentor
MODIFY detailed_job ENUM(
'ACCOUNTING_FINANCE','AE','ANALYST','ART_DIRECTOR',
'B2B_SALES','B2C_SALES','BACKEND','BIO_RESEARCHER','BI_ENGINEER',
'BRAND_DESIGN','BRAND_MARKETING','BROADCAST_PD','BUSINESS_DEVELOPMENT',
'CLINICAL_DOCTOR','CLINICAL_RESEARCHER','CLOUD','COMPLIANCE','CONSULTANT',
'CONTENT_MARKETING','COPYWRITER','CREATIVE_DIRECTING','CSM_CX','CX_MANAGER',
'DATA_ANALYST','DATA_ARCHITECT','DATA_ENGINEER','DATA_SCIENTIST','DEVOPS',
'DIGITAL_SOCIAL_MARKETING','DOMESTIC_GRADUATE_SCHOOL','FRONTEND','FULLSTACK',
'GENERAL_AFFAIRS','GRAPHIC_DESIGN','GROWTH_MARKETING','HR_OPERATION',
'HR_PLANNING','IB_PE_ALTERNATIVE_INVESTMENT','IOS_ANDROID','KAM','LABOR',
'LAWYER','LAW_FIRM_STAFF','LEGAL_ADVISOR','LEGAL_COUNSEL',
'MACHINE_LEARNING_ENGINEER','MEDIA_PLANNER','MEDICAL_DEVICE_RND',
'OPERATION_PLANNING','ORGANIZATION_CULTURE',
'OTHER_DATA','OTHER_DESIGN','OTHER_DEVELOPMENT',
'OTHER_FINANCE','OTHER_FINANCE_CONSULTING_VC',
'OTHER_GRADUATE_SCHOOL','OTHER_HR_SUPPORT','OTHER_LEGAL','OTHER_MARKETING',
'OTHER_MEDICAL','OTHER_SALES_CUSTOMER','OTHER_SERVICE_PLANNING',
'OVERSEAS_GRADUATE_SCHOOL','OVERSEAS_SALES','PATENT','PATENT_ENGINEER',
'PERFORMANCE_MARKETING','PHARMACEUTICAL_RESEARCHER','PM_PO','PR',
'PRODUCT_DESIGN','RECRUITER','RECRUITMENT','RESEARCH_ANALYST',
'SALES_SUPPORT','SECURITY','SERVICE_PLANNING','SOLUTION_CONSULTANT',
'STARTUP','STRATEGY_PLANNING','SYSTEM_NETWORK','TALENT_DEVELOPMENT',
'TECHNICAL_SALES','UX_UI_DESIGN','VC_INVESTMENT','WEB_DESIGN'
);