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
75 changes: 75 additions & 0 deletions src/main/java/com/bootsignal/domain/course/entity/Course.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.bootsignal.domain.course.entity;

import com.bootsignal.domain.institution.entity.Institution;
import com.bootsignal.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

import java.math.BigDecimal;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class Course extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

// 훈련과정 ID / 원본: trprId
@Column(nullable = false, unique = true)
private String trprId;

// 과정명 / 원본: title
@Column(nullable = false)
private String title;

// 기관명 / 원본: subtitle
@Column(nullable = false)
private String subTitle;

// 과정 상세 링크 / 원본: titleLink
@Column(length = 1000)
private String titleLink;

// 기관 상세 링크 / 원본: subTitleLink
@Column(length = 1000)
private String subTitleLink;

// NCS 코드 / 원본: ncsCd
private String ncsCd;

// NCS 명 / 원본: ncsNm
private String ncsName;

// NCS 여부 / 원본: ncsYn
private String ncsYn;

// 훈련비 / 원본: courseMan
private BigDecimal courseMan;

// 실제 훈련비 / 원본: realMan
private BigDecimal realMan;

// 본인 부담금 / 원본: tgcrGnrlTrneOwepAllt
private BigDecimal selfPaymentAmount;

// 만족도 점수 / 원본: stdgScor
private BigDecimal stdgScor;

// 총 훈련일수 / 원본: trDcnt
private Integer totalTrainingDays;

// 총 훈련시간 / 원본: trtm
private Integer totalTrainingHours;

// 훈련지역 코드 / 원본: trngAreaCd
private String trngAreaCd;

// 소속 기관
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "institution_id")
private Institution institution;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.bootsignal.domain.course.repository;

import com.bootsignal.domain.course.entity.Course;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;
import java.util.Optional;

public interface CourseRepository extends JpaRepository<Course, Long> {

Optional<Course> findByTrprId(String trprId);

@Query("""
select c
from Course c
join c.institution i
where i.institutionName like %:keyword%
""")
List<Course> searchByInstitutionName(String keyword);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.bootsignal.domain.course_session.entity;

import com.bootsignal.domain.course.entity.Course;
import com.bootsignal.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class CourseSession extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

// 훈련과정 회차 / 원본: trprDegr
private Integer trprDegr;

// 훈련 시작일 / 원본: traStartDate
private LocalDate traStartDate;

// 훈련 종료일 / 원본: traEndDate
private LocalDate traEndDate;

// 정원 / 원본: yardMan
private Integer yardMan;

// 수강신청 인원 / 원본: regCourseMan
private Integer regCourseMan;

// 실제 수강인원 / 원본: totParMks
private Integer totParMks;

// 수료인원 / 원본: finiCnt
private Integer finiCnt;

// 고용보험 3개월 취업률 / 원본: eiEmplRate3
private BigDecimal eiEmplRate3;

// 고용보험 6개월 취업률 / 원본: eiEmplRate6
private BigDecimal eiEmplRate6;

// 주말/주중 구분 / 원본: wkendSe
private String wkendSe;

// 과정
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "course_id")
private Course course;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.bootsignal.domain.course_session.repository;

import com.bootsignal.domain.course_session.entity.CourseSession;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface CourseSessionRepository extends JpaRepository<CourseSession, Long> {

List<CourseSession> findByCourse_Id(Long courseId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.bootsignal.domain.institution.entity;

import com.bootsignal.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class Institution extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

// 훈련기관 코드 / 원본: instCd
@Column(nullable = false, unique = true)
private String instCd;

// 훈련기관명 / 원본: subTitle
@Column(nullable = false)
private String institutionName;

// 주소 / 원본: address
private String address;

// 우편번호 / 원본: zipCd
private String zipCd;

// 홈페이지 주소 / 원본: hpAddr
private String homepageUrl;

// 대표 전화번호 / 원본: telNo
private String telNo;

// 담당자명 / 원본: trprChap
private String managerName;

// 담당자 전화번호 / 원본: trprChapTel
private String managerTel;

// 담당자 이메일 / 원본: trprChapEmail
private String managerEmail;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.bootsignal.domain.institution.repository;

import com.bootsignal.domain.institution.entity.Institution;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;

public interface InstitutionRepository extends JpaRepository<Institution, Long> {

Optional<Institution> findByInstCd(String instCd);
}
24 changes: 24 additions & 0 deletions src/main/java/com/bootsignal/global/entity/BaseEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.bootsignal.global.entity;

import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {

@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;

@LastModifiedDate
private LocalDateTime updatedAt;
}
Loading