Subversion Repositories SmartDukaan

Rev

Rev 33305 | 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.dtr;

import com.spice.profitmandi.dao.convertor.LocalDateTimeAttributeConverter;
import com.spice.profitmandi.dao.model.VerifiedB2CUsersModel;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * This is used to store information of end user.
 * @author ashikali
 *
 */
@Entity(name = "dtrUser")
@Table(name="dtr.users", uniqueConstraints = {@UniqueConstraint(columnNames = {"email","mobile_number"})})
@NamedNativeQueries({
                @NamedNativeQuery(
                                name = "User.b2cVerifiedUsersList",
                                query = "SELECT u.first_name, u.last_name, u.email, u.mobile_number, u.city, u.pincode, u.state, u.created " +
                                                "FROM dtr.`users` u " +
                                                "JOIN dtr.otp o on u.mobile_number = o.mobile " +
                                                "WHERE o.verified = true " +
                                                "AND date(u.created) BETWEEN :startDate AND :endDate order by u.id desc",
                                resultSetMapping = "VerifiedB2CUsersModel"
                )
})

@SqlResultSetMappings({
                @SqlResultSetMapping(name = "VerifiedB2CUsersModel", classes = {@ConstructorResult(targetClass = VerifiedB2CUsersModel.class,
                                columns = {@ColumnResult(name = "first_name", type = String.class),
                                                @ColumnResult(name = "last_name", type = String.class),
                                                @ColumnResult(name = "email", type = String.class),
                                                @ColumnResult(name = "mobile_number", type = String.class),
                                                @ColumnResult(name = "city", type = String.class),
                                                @ColumnResult(name = "pincode", type = Integer.class),
                                                @ColumnResult(name = "state", type = String.class),
                                                @ColumnResult(name = "created", type = LocalDateTime.class),
                                })}),


})


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 = 25, name = "secondry_email_id", unique = true)
        private String secondryEmailId;
        
        @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;
        
        private String state;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="created",updatable=false)
        private LocalDateTime createTimestamp;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="modified")
        @UpdateTimestamp
        private LocalDateTime updateTimestamp;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="activation_time")
        private LocalDateTime activationTime;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="login_timestamp")
        private LocalDateTime loginTimestamp;
        
        @Convert(converter = LocalDateTimeAttributeConverter.class)
        @Column(name="logout_timestamp")
        private LocalDateTime logoutTimestamp;
        
        public LocalDateTime getActivationTime() {
                return activationTime;
        }

        public void setActivationTime(LocalDateTime activationTime) {
                this.activationTime = activationTime;
        }

        public int getStatus() {
                return status;
        }

        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;
        
        public LocalDateTime getLoginTimestamp() {
                return loginTimestamp;
        }
        
        public void setLoginTimestamp(LocalDateTime loginTimestamp) {
                this.loginTimestamp = loginTimestamp;
        }
        
        public LocalDateTime getLogoutTimestamp() {
                return logoutTimestamp;
        }
        
        public void setLogoutTimestamp(LocalDateTime logoutTimestamp) {
                this.logoutTimestamp = logoutTimestamp;
        }
        
        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 getSecondryEmailId() {
                return secondryEmailId;
        }
        
        public void setSecondryEmailId(String secondryEmailId) {
                this.secondryEmailId = secondryEmailId;
        }

        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 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;
        }
        
        public String getState() {
                return state;
        }

        public void setState(String state) {
                this.state = state;
        }

        
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + id;
                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 (id != other.id)
                        return false;
                return true;
        }

        @Override
        public String toString() {
                return "User [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", emailId=" + emailId
                                + ", secondryEmailId=" + secondryEmailId + ", mobileNumber=" + mobileNumber + ", city=" + city
                                + ", pinCode=" + pinCode + ", state=" + state + ", createTimestamp=" + createTimestamp
                                + ", updateTimestamp=" + updateTimestamp + ", activationTime=" + activationTime + ", loginTimestamp="
                                + loginTimestamp + ", logoutTimestamp=" + logoutTimestamp + ", username=" + username + ", password="
                                + password + ", mobile_verified=" + mobile_verified + ", referral_url=" + referral_url + ", referrer="
                                + referrer + ", group_id=" + group_id + ", status=" + status + ", activated=" + activated + "]";
        }
        
}