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<>();
}