blob: 6cdafb8df3f2199c6003833281a5ecaaf1d5101f [file] [log] [blame]
rootff0769a2025-05-18 17:24:41 +00001package entity;
2
3import javax.persistence.CascadeType;
4import javax.persistence.Column;
5import javax.persistence.Entity;
6import javax.persistence.FetchType;
7import javax.persistence.Id;
8import javax.persistence.OneToOne;
9import javax.persistence.Table;
Raver5ba779f2025-05-14 12:48:12 +000010import java.util.Date;
11import javax.persistence.Temporal;
12import javax.persistence.TemporalType;
rootff0769a2025-05-18 17:24:41 +000013import javax.persistence.Transient;
rootff0769a2025-05-18 17:24:41 +000014import com.querydsl.core.annotations.QueryEntity;
15
16@QueryEntity
root33a7d952025-05-18 17:24:41 +000017@Entity(name = "User")
rootff0769a2025-05-18 17:24:41 +000018@Table(name = "User")
19public class User {
20 @Id
21 @Column(name = "user_id", length = 36, nullable = false)
rootf35409f2025-05-19 04:41:57 +000022 public String userid;
rootff0769a2025-05-18 17:24:41 +000023 @Column(name = "email", nullable = false, length = 255, unique = true)
rootf35409f2025-05-19 04:41:57 +000024 public String email;
rootff0769a2025-05-18 17:24:41 +000025 @Column(name = "username", length = 100, nullable = false)
26 public String username;
rootff0769a2025-05-18 17:24:41 +000027 @Column(name = "password", length = 255, nullable = false)
28 public String password;
rootff0769a2025-05-18 17:24:41 +000029 @Column(name = "gender", nullable = false)
30 public String sex;
Raver5ba779f2025-05-14 12:48:12 +000031
32 @Column(name = "detectedCount", nullable = false)
33 public int detectedCount = 0;
34
35 @Temporal(TemporalType.TIMESTAMP)
36 @Column(name = "lastDetectedTime",nullable = false)
37 public Date lastDetectedTime = new Date();
38
39 @Column(name = "fake_detected_count", nullable = false)
40 public int fakeDetectedCount = 0;
41
42 @Temporal(TemporalType.TIMESTAMP)
43 @Column(name = "fake_last_detected_time", nullable = false)
44 public Date fakeLastDetectedTime = new Date();
45
rootff0769a2025-05-18 17:24:41 +000046 @Transient
47 public String age;
rootff0769a2025-05-18 17:24:41 +000048 @Column(name = "school")
49 public String school;
rootff0769a2025-05-18 17:24:41 +000050 @Column(name = "avatar_url")
51 public String pictureurl;
rootff0769a2025-05-18 17:24:41 +000052 @Column(name = "bio")
53 public String profile;
rootff0769a2025-05-18 17:24:41 +000054 @Column(name = "account_status", nullable = false)
55 public boolean accountstate;
rootff0769a2025-05-18 17:24:41 +000056 @Column(name = "invite_left", nullable = false)
57 public int invitetimes;
rootff0769a2025-05-18 17:24:41 +000058 @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
59 public UserPT userPT;
60
61 // Constructors, getters, setters
root33a7d952025-05-18 17:24:41 +000062 public User() {
63 }
64}