Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 1 | package eu.mulk.demos.blog.comments; |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 2 | |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 3 | import eu.mulk.demos.blog.posts.Post; |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 4 | import io.quarkus.hibernate.orm.panache.PanacheEntity; |
| 5 | import java.time.Instant; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 6 | import javax.json.bind.annotation.JsonbTransient; |
| 7 | import javax.persistence.Column; |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 8 | import javax.persistence.Entity; |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 9 | import javax.persistence.EnumType; |
| 10 | import javax.persistence.Enumerated; |
| 11 | import javax.persistence.FetchType; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 12 | import javax.persistence.ManyToOne; |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 13 | |
| 14 | @Entity |
| 15 | public class Comment extends PanacheEntity { |
| 16 | |
| 17 | public String authorName; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 18 | |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 19 | public Instant publicationDate; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 20 | |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 21 | @Enumerated(EnumType.STRING) |
| 22 | public SpamStatus spamStatus; |
| 23 | |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 24 | @Column(columnDefinition = "TEXT") |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 25 | public String text; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 26 | |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 27 | @ManyToOne(fetch = FetchType.LAZY) |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 28 | @JsonbTransient |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 29 | public Post post; |
| 30 | |
| 31 | public static Comment create(Post post, String authorName, String text) { |
| 32 | var c = new Comment(); |
| 33 | c.authorName = authorName; |
| 34 | c.publicationDate = Instant.now(); |
| 35 | c.text = text; |
| 36 | c.post = post; |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 37 | c.spamStatus = SpamStatus.UNKNOWN; |
Matthias Andreas Benkard | 0c009e8 | 2021-02-26 07:23:27 +0100 | [diff] [blame] | 38 | return c; |
| 39 | } |
Matthias Andreas Benkard | 36b0f04 | 2021-02-27 10:46:04 +0100 | [diff] [blame^] | 40 | |
Matthias Andreas Benkard | 4982faa | 2021-02-24 06:45:39 +0100 | [diff] [blame] | 41 | } |