Newer
Older
teacher-diary / src / main / java / ru / mcs / diary / group / StudyGroup.java
@malexple malexple 19 days ago 1 KB add groups
package ru.mcs.diary.group;

import jakarta.persistence.*;
import lombok.*;
import ru.mcs.diary.student.Student;
import ru.mcs.diary.subject.Subject;
import ru.mcs.diary.teacher.Teacher;

import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name = "study_groups")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class StudyGroup {

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

    @Column(nullable = false, length = 100)
    private String name;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "subject_id")
    private Subject subject;

    @Column(name = "price_per_lesson", precision = 10, scale = 2)
    private BigDecimal pricePerLesson;

    @Column(length = 500)
    private String description;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "teacher_id", nullable = false)
    private Teacher teacher;

    @ManyToMany
    @JoinTable(
            name = "group_students",
            joinColumns = @JoinColumn(name = "group_id"),
            inverseJoinColumns = @JoinColumn(name = "student_id")
    )
    @Builder.Default
    private Set<Student> students = new HashSet<>();
}