Subversion Repositories SmartDukaan

Rev

Rev 21720 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.entity;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;


/**
 * This is used to store information of end user.
 * @author ashikali
 *
 */
@Entity
@Table(name="users", schema = "dtr",uniqueConstraints = {@UniqueConstraint(columnNames = {"email","mobile_number"})})
@NamedQueries({
        @NamedQuery(name = "User.selectCount", query = "select count(u) from User u"),
        @NamedQuery(name = "User.selectAll",query="select u from User u"),
        @NamedQuery(name = "User.selectById",query="select u from User u where u.id= :id"),
        @NamedQuery(name = "User.selectByEmailId", query = "select u from User u where u.emailId= :emailId"),
        @NamedQuery(name = "User.selectByMobileNumber", query = "select u from User u where u.mobileNumber= :mobileNumber"),
        @NamedQuery(name = "User.countByEmailId", query = "select count(u) from User u where u.emailId= :emailId"),
        @NamedQuery(name = "User.countByMobileNumber", query = "select count(u) from User u where u.mobileNumber= :mobileNumber"),
        @NamedQuery(name = "User.selectIdAndSololicUserId", query = "select u.id, ua.account_key, u.createTimestamp, u.updateTimestamp from User u join UserAccounts ua on u.id = ua.user_id where ua.account_type = 'saholic'")
})
public class User implements Serializable{
        
        
        private static final long serialVersionUID = 1L;

        public User(){
                
        }
        
        @Id
        @Column(name="id",updatable=false, unique=true)
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        
        @Column(name = "first_name", length = 64, nullable = false)
        private String firstName;
        
        @Column(name = "last_name", length = 64, nullable = false)
        private String lastName;
        
        @Column(length=25,name="email",unique=true)
        private String emailId;
        
        @Column(length = 10, name = "mobile_number")
        private String mobileNumber;
        
        @Column(name = "city", length = 128)
        private String city;
        
        @Column(name = "pincode", length = 6)
        private Integer pinCode;
        
        @Column(name="created",updatable=false)
        private LocalDateTime createTimestamp;
        
        @Column(name="modified")
        private LocalDateTime updateTimestamp;
        
        private String username;
        private String password;
        private boolean mobile_verified;
        private String referral_url;
        private String referrer;

        private int group_id;
        @Column(columnDefinition="tinyint(1) default 0")
        private int status;
        @Column(columnDefinition="tinyint(1) default 0")
        private boolean activated;
        
        @OneToMany(fetch = FetchType.EAGER)
    @JoinTable(
            name="user_role",
            joinColumns = @JoinColumn( name="user_id"),
            inverseJoinColumns = @JoinColumn( name="role_id"), schema = "dtr"
    )
        private Set<Role> roles;
        
        public int getId() {
                return id;
        }
        
        public void setId(int id) {
                this.id = id;
        }

        public String getFirstName() {
                return firstName;
        }
        public void setFirstName(String firstName) {
                this.firstName = firstName;
        }
        public String getLastName() {
                return lastName;
        }
        public void setLastName(String lastName) {
                this.lastName = lastName;
        }
        
        public String getEmailId() {
                return emailId;
        }
        public void setEmailId(String emailId) {
                this.emailId = emailId;
        }


        public String getMobileNumber() {
                return mobileNumber;
        }

        public void setMobileNumber(String mobileNumber) {
                this.mobileNumber = mobileNumber;
        }
        
        public String getCity() {
                return city;
        }
        public void setCity(String city) {
                this.city = city;
        }
        public Integer getPinCode() {
                return pinCode;
        }
        public void setPinCode(Integer pinCode) {
                this.pinCode = pinCode;
        }
        
        public LocalDateTime getCreateTimestamp() {
                return createTimestamp;
        }

        public void setCreateTimestamp(LocalDateTime createTimestamp) {
                this.createTimestamp = createTimestamp;
        }
        
        public LocalDateTime getUpdateTimestamp() {
                return updateTimestamp;
        }
        public void setUpdateTimestamp(LocalDateTime updateTimestamp) {
                this.updateTimestamp = updateTimestamp;
        }
        
        public Set<Role> getRoles() {
                return roles;
        }
        public void addRole(Role role){
                roles.add(role);
        }

        public String getUsername() {
                return username;
        }

        public void setUsername(String username) {
                this.username = username;
        }

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }

        public boolean isMobile_verified() {
                return mobile_verified;
        }

        public void setMobile_verified(boolean mobile_verified) {
                this.mobile_verified = mobile_verified;
        }

        public String getReferral_url() {
                return referral_url;
        }

        public void setReferral_url(String referral_url) {
                this.referral_url = referral_url;
        }

        public int getGroup_id() {
                return group_id;
        }

        public void setGroup_id(int group_id) {
                this.group_id = group_id;
        }
        
        public String getReferrer() {
                return referrer;
        }

        public void setReferrer(String referrer) {
                this.referrer = referrer;
        }

        public int isStatus() {
                return status;
        }

        public void setStatus(int status) {
                this.status = status;
        }

        public boolean isActivated() {
                return activated;
        }

        public void setActivated(boolean activated) {
                this.activated = activated;
        }

        @Override
        public String toString() {
                return "User [id=" + id + ", emailId=" + emailId + ", createTimestamp=" + createTimestamp + ", mobileNumber="
                                + mobileNumber + "]";
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((city == null) ? 0 : city.hashCode());
                result = prime * result + ((createTimestamp == null) ? 0 : createTimestamp.hashCode());
                result = prime * result + ((emailId == null) ? 0 : emailId.hashCode());
                result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
                result = prime * result + (int) (id ^ (id >>> 32));
                result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
                result = prime * result + ((mobileNumber == null) ? 0 : mobileNumber.hashCode());
                result = prime * result + ((pinCode == null) ? 0 : pinCode.hashCode());
                result = prime * result + ((roles == null) ? 0 : roles.hashCode());
                result = prime * result + ((updateTimestamp == null) ? 0 : updateTimestamp.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                User other = (User) obj;
                if (city == null) {
                        if (other.city != null)
                                return false;
                } else if (!city.equals(other.city))
                        return false;
                if (createTimestamp == null) {
                        if (other.createTimestamp != null)
                                return false;
                } else if (!createTimestamp.equals(other.createTimestamp))
                        return false;
                if (emailId == null) {
                        if (other.emailId != null)
                                return false;
                } else if (!emailId.equals(other.emailId))
                        return false;
                if (firstName == null) {
                        if (other.firstName != null)
                                return false;
                } else if (!firstName.equals(other.firstName))
                        return false;
                if (id != other.id)
                        return false;
                if (lastName == null) {
                        if (other.lastName != null)
                                return false;
                } else if (!lastName.equals(other.lastName))
                        return false;
                if (mobileNumber == null) {
                        if (other.mobileNumber != null)
                                return false;
                } else if (!mobileNumber.equals(other.mobileNumber))
                        return false;
                if (pinCode == null) {
                        if (other.pinCode != null)
                                return false;
                } else if (!pinCode.equals(other.pinCode))
                        return false;
                if (roles == null) {
                        if (other.roles != null)
                                return false;
                } else if (!roles.equals(other.roles))
                        return false;
                if (updateTimestamp == null) {
                        if (other.updateTimestamp != null)
                                return false;
                } else if (!updateTimestamp.equals(other.updateTimestamp))
                        return false;
                return true;
        }

        
        
}