chore: entity 추가

This commit is contained in:
DongHyeonka
2026-09-17 19:35:30 +09:00
parent f5508a48ea
commit ed5441ba33
4 changed files with 708 additions and 1 deletions
@@ -6,6 +6,8 @@ import lombok.NoArgsConstructor;
import java.time.Instant;
import com.study.course_registration.enums.UserRole;
@Entity
@NoArgsConstructor
@Getter
@@ -23,11 +25,29 @@ public class Lesson extends BaseTimeZoneEntity {
private Instant endTime;
public Lesson(String name, Subject subject, Professor professor, Instant startTime, Instant endTime) {
@ManyToOne(fetch = FetchType.LAZY)
@Column (name = "semester_id", nullable = false)
private Semester semester;
@Column (name = "capacity", nullable = false)
private Integer capacity;
@Column (name = "min_grade", nullable = false)
private Long minGrade;
@Column (name = "allowed_role", nullable = false)
private UserRole allowedRole;
public Lesson(String name, Subject subject, Professor professor, Instant startTime, Instant endTime, Semester semester, Integer capacity, Long minGrade, UserRole allowedRole) {
this.name = name;
this.subject = subject;
this.professor = professor;
this.startTime = startTime;
this.endTime = endTime;
this.semester = semester;
this.capacity = capacity;
this.minGrade = minGrade;
this.allowedRole = allowedRole;
}
}
@@ -0,0 +1,27 @@
package com.study.course_registration.entity;
import java.time.DayOfWeek;
import java.time.LocalTime;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Getter
@NoArgsConstructor
public class LessonSchedule extends BaseTimeZoneEntity {
@ManyToOne(fetch = FetchType.LAZY)
@Column()
private Lesson lesson;
@Column()
private DayOfWeek dayOfWeek;
private LocalTime startTime;
private LocalTime endTime;
}
@@ -0,0 +1,29 @@
package com.study.course_registration.entity;
import java.time.Instant;
import java.time.LocalDate;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@NoArgsConstructor
@Getter
public class Semester extends BaseTimeZoneEntity {
private String name;
private LocalDate startDate;
private LocalDate endDate;
private Instant registrationStartAt;
private Instant registrationEndAt;
private Integer maxCredits;
public Semester(String name) {
this.name = name;
}
}