package ru.mcs.diary.parent;
import jakarta.persistence.*;
import lombok.*;
import ru.mcs.diary.common.BaseEntity;
import ru.mcs.diary.student.StudentParent;
import ru.mcs.diary.teacher.Teacher;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "parents", uniqueConstraints = {
@UniqueConstraint(columnNames = {"email", "teacher_id"})
})
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Parent extends BaseEntity {
@Column(nullable = false)
private String email;
private String password;
@Column(name = "first_name", nullable = false, length = 100)
private String firstName;
@Column(name = "last_name", nullable = false, length = 100)
private String lastName;
@Column(length = 100)
private String patronymic;
@Column(nullable = false, length = 20)
private String phone;
@Builder.Default
private Boolean enabled = false;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "teacher_id", nullable = false)
private Teacher teacher;
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true)
@Builder.Default
private List<StudentParent> studentParents = new ArrayList<>();
public String getFullName() {
if (patronymic != null && !patronymic.isBlank()) {
return lastName + " " + firstName + " " + patronymic;
}
return lastName + " " + firstName;
}
}