package entity;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.querydsl.core.annotations.QueryEntity;

@QueryEntity
@Entity(name="User")
@Table(name = "User")
public class User {
    @Id
    @Column(name = "user_id", length = 36, nullable = false)
    private String userid;

    @Column(name = "email", nullable = false, length = 255, unique = true)
    private String email;

    @Column(name = "username", length = 100, nullable = false)
    public String username;

    @Column(name = "password", length = 255, nullable = false)
    public String password;

    @Column(name = "gender", nullable = false)
    public String sex;

    @Transient
    public String age;

    @Column(name = "school")
    public String school;

    @Column(name = "avatar_url")
    public String pictureurl;

    @Column(name = "bio")
    public String profile;

    @Column(name = "account_status", nullable = false)
    public boolean accountstate;

    @Column(name = "invite_left", nullable = false)
    public int invitetimes;

    @OneToOne(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
    public UserPT userPT;

    // Constructors, getters, setters
    public User() {}
}
