package ru.mcs.diary.group;
import jakarta.persistence.*;
import lombok.*;
import ru.mcs.diary.common.BaseEntity;
import ru.mcs.diary.teacher.Teacher;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "subjects", uniqueConstraints = {
@UniqueConstraint(columnNames = {"name", "teacher_id"})
})
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Subject extends BaseEntity {
@Column(nullable = false, length = 100)
private String name;
@Column(columnDefinition = "TEXT")
private String description;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "teacher_id", nullable = false)
private Teacher teacher;
@OneToMany(mappedBy = "subject")
@Builder.Default
private List<StudyGroup> groups = new ArrayList<>();
}