Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 1 | package eu.mulk.mulkcms2.benki.users; |
| 2 | |
| 3 | import eu.mulk.mulkcms2.benki.accesscontrol.PageKey; |
| 4 | import eu.mulk.mulkcms2.benki.accesscontrol.Role; |
| 5 | import eu.mulk.mulkcms2.benki.bookmarx.Bookmark; |
| 6 | import eu.mulk.mulkcms2.benki.generic.Post; |
| 7 | import eu.mulk.mulkcms2.benki.lafargue.LazychatMessage; |
| 8 | import eu.mulk.mulkcms2.benki.wiki.WikiPageRevision; |
| 9 | import io.quarkus.hibernate.orm.panache.PanacheEntityBase; |
| 10 | import java.util.Collection; |
Matthias Andreas Benkard | b8027c6 | 2020-01-24 12:09:27 +0100 | [diff] [blame] | 11 | import java.util.Set; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 12 | import javax.persistence.Column; |
| 13 | import javax.persistence.Entity; |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 14 | import javax.persistence.FetchType; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 15 | import javax.persistence.Id; |
| 16 | import javax.persistence.JoinColumn; |
Matthias Andreas Benkard | b8027c6 | 2020-01-24 12:09:27 +0100 | [diff] [blame] | 17 | import javax.persistence.JoinTable; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame] | 18 | import javax.persistence.ManyToMany; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 19 | import javax.persistence.OneToMany; |
Matthias Andreas Benkard | be77d30 | 2020-01-24 14:08:52 +0100 | [diff] [blame] | 20 | import javax.persistence.OneToOne; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 21 | import javax.persistence.Table; |
| 22 | |
| 23 | @Entity(name = "BenkiUser") |
Matthias Andreas Benkard | 57c9a8a | 2020-01-24 19:09:38 +0100 | [diff] [blame^] | 24 | @Table(name = "users", schema = "benki") |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 25 | public class User extends PanacheEntityBase { |
| 26 | |
| 27 | @Id |
| 28 | @Column(name = "id", nullable = false) |
| 29 | public int id; |
| 30 | |
| 31 | @Column(name = "first_name", nullable = true, length = -1) |
| 32 | public String firstName; |
| 33 | |
| 34 | @Column(name = "middle_names", nullable = true, length = -1) |
| 35 | public String middleNames; |
| 36 | |
| 37 | @Column(name = "last_name", nullable = true, length = -1) |
| 38 | public String lastName; |
| 39 | |
| 40 | @Column(name = "email", nullable = true, length = -1) |
| 41 | public String email; |
| 42 | |
| 43 | @Column(name = "website", nullable = true, length = -1) |
| 44 | public String website; |
| 45 | |
| 46 | @Column(name = "status", nullable = true, length = -1) |
| 47 | public String status; |
| 48 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 49 | @OneToMany(mappedBy = "owner", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 50 | public Collection<Bookmark> bookmarks; |
| 51 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 52 | @OneToMany(mappedBy = "owner", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 53 | public Collection<LazychatMessage> lazychatMessages; |
| 54 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 55 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | fb769c2 | 2020-01-24 18:20:18 +0100 | [diff] [blame] | 56 | public Collection<OpenId> openids; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 57 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 58 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 59 | public Collection<PageKey> pageKeys; |
| 60 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 61 | @OneToMany(mappedBy = "owner", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 62 | public Collection<Post> posts; |
| 63 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 64 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 65 | public Collection<UserDefaultTarget> defaultTargets; |
| 66 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 67 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 68 | public Collection<UserEmailAddress> emailAddresses; |
| 69 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 70 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 71 | public Collection<UserJid> jids; |
| 72 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 73 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 74 | public Collection<UserNickname> nicknames; |
| 75 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 76 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | b8027c6 | 2020-01-24 12:09:27 +0100 | [diff] [blame] | 77 | public Collection<UserRole> directRoles; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 78 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 79 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 80 | public Collection<UserRsaKey> rsaKeys; |
| 81 | |
Matthias Andreas Benkard | be77d30 | 2020-01-24 14:08:52 +0100 | [diff] [blame] | 82 | @OneToOne(fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 83 | @JoinColumn(name = "role", referencedColumnName = "id", nullable = false) |
| 84 | public Role ownedRole; |
| 85 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 86 | @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 87 | public Collection<WebId> webids; |
| 88 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 89 | @OneToMany(mappedBy = "author", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 90 | public Collection<WikiPageRevision> wikiPageRevisions; |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame] | 91 | |
Matthias Andreas Benkard | aa75480 | 2020-01-24 11:55:26 +0100 | [diff] [blame] | 92 | @ManyToMany(mappedBy = "visibleTo", fetch = FetchType.LAZY) |
Matthias Andreas Benkard | f9c7427 | 2020-01-24 11:51:35 +0100 | [diff] [blame] | 93 | public Collection<Post> visiblePosts; |
Matthias Andreas Benkard | b8027c6 | 2020-01-24 12:09:27 +0100 | [diff] [blame] | 94 | |
| 95 | @ManyToMany(fetch = FetchType.LAZY) |
| 96 | @JoinTable( |
| 97 | name = "effective_user_roles", |
| 98 | joinColumns = @JoinColumn(name = "user"), |
| 99 | inverseJoinColumns = @JoinColumn(name = "role")) |
| 100 | public Set<Role> effectiveRoles; |
Matthias Andreas Benkard | d9b9588 | 2020-01-24 11:42:49 +0100 | [diff] [blame] | 101 | } |