Skip to content

Commit 889e574

Browse files
committed
test: CRUD functionalities
1 parent 93d1c8c commit 889e574

File tree

3 files changed

+131
-1
lines changed

3 files changed

+131
-1
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package school.hei.haapi.model;
2+
3+
import static jakarta.persistence.CascadeType.ALL;
4+
import static jakarta.persistence.EnumType.STRING;
5+
import static jakarta.persistence.FetchType.EAGER;
6+
import static jakarta.persistence.GenerationType.IDENTITY;
7+
import static org.hibernate.type.SqlTypes.NAMED_ENUM;
8+
import static school.hei.haapi.model.CorComment.CorStatus.IN_PROGRESS;
9+
10+
import jakarta.persistence.Column;
11+
import jakarta.persistence.Entity;
12+
import jakarta.persistence.Enumerated;
13+
import jakarta.persistence.GeneratedValue;
14+
import jakarta.persistence.Id;
15+
import jakarta.persistence.JoinColumn;
16+
import jakarta.persistence.ManyToOne;
17+
import jakarta.persistence.OneToMany;
18+
import jakarta.persistence.Table;
19+
import java.time.Instant;
20+
import java.util.List;
21+
import lombok.AllArgsConstructor;
22+
import lombok.Builder;
23+
import lombok.EqualsAndHashCode;
24+
import lombok.Getter;
25+
import lombok.NoArgsConstructor;
26+
import lombok.Setter;
27+
import lombok.ToString;
28+
import org.hibernate.annotations.CreationTimestamp;
29+
import org.hibernate.annotations.JdbcTypeCode;
30+
import school.hei.haapi.model.CorComment.CorStatus;
31+
32+
@Entity
33+
@Table(name = "\"cor\"")
34+
@Getter
35+
@Setter
36+
@ToString
37+
@Builder(toBuilder = true)
38+
@AllArgsConstructor
39+
@NoArgsConstructor
40+
@EqualsAndHashCode
41+
public class Cor {
42+
@Id
43+
@GeneratedValue(strategy = IDENTITY)
44+
private String id;
45+
46+
private String description;
47+
48+
@ManyToOne
49+
@JoinColumn(name = "concerned_student_id", updatable = false)
50+
private User concernedStudent;
51+
52+
@EqualsAndHashCode.Exclude @CreationTimestamp private Instant creationDatetime;
53+
54+
private Instant interviewDatetime;
55+
56+
@EqualsAndHashCode.Exclude
57+
@ToString.Exclude
58+
@OneToMany(mappedBy = "cor", fetch = EAGER, cascade = ALL)
59+
private List<CorComment> comments;
60+
61+
@Enumerated(STRING)
62+
@JdbcTypeCode(NAMED_ENUM)
63+
@Builder.Default
64+
@Column(nullable = false)
65+
private CorStatus status = IN_PROGRESS;
66+
67+
public void addComment(CorComment comment) {
68+
comment.setCor(this);
69+
comments.add(comment);
70+
status = comment.getStatus();
71+
}
72+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package school.hei.haapi.model;
2+
3+
import static jakarta.persistence.EnumType.STRING;
4+
import static jakarta.persistence.GenerationType.IDENTITY;
5+
import static org.hibernate.type.SqlTypes.NAMED_ENUM;
6+
7+
import jakarta.persistence.Entity;
8+
import jakarta.persistence.Enumerated;
9+
import jakarta.persistence.GeneratedValue;
10+
import jakarta.persistence.Id;
11+
import jakarta.persistence.JoinColumn;
12+
import jakarta.persistence.ManyToOne;
13+
import jakarta.persistence.Table;
14+
import java.time.Instant;
15+
import lombok.AllArgsConstructor;
16+
import lombok.Builder;
17+
import lombok.EqualsAndHashCode;
18+
import lombok.Getter;
19+
import lombok.NoArgsConstructor;
20+
import lombok.Setter;
21+
import lombok.ToString;
22+
import org.hibernate.annotations.CreationTimestamp;
23+
import org.hibernate.annotations.JdbcTypeCode;
24+
25+
@Entity
26+
@Table(name = "\"cor_comment\"")
27+
@Getter
28+
@Setter
29+
@ToString
30+
@Builder
31+
@AllArgsConstructor
32+
@NoArgsConstructor
33+
@EqualsAndHashCode
34+
public class CorComment {
35+
@Id
36+
@GeneratedValue(strategy = IDENTITY)
37+
private String id;
38+
39+
@CreationTimestamp Instant creationDatetime;
40+
41+
@Enumerated(STRING)
42+
@JdbcTypeCode(NAMED_ENUM)
43+
private CorStatus status;
44+
45+
private String comment;
46+
47+
@ManyToOne
48+
@JoinColumn(name = "cor_id", updatable = false)
49+
private Cor cor;
50+
51+
public enum CorStatus {
52+
IN_PROGRESS,
53+
STAY,
54+
CANCELED,
55+
LEAVE,
56+
NO_SHOW
57+
}
58+
}

src/main/java/school/hei/haapi/model/User.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
@Table(name = "\"user\"")
5050
@Getter
5151
@Setter
52-
@Builder
52+
@Builder(toBuilder = true)
5353
@AllArgsConstructor
5454
@NoArgsConstructor
5555
@SQLDelete(sql = "update \"user\" set is_deleted = true where id = ?")

0 commit comments

Comments
 (0)