package com.sukamo.membership.persistence.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
import javax.persistence.ManyToOne;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlElement;
import java.util.logging.Logger;

/**
* JPA Bean for Member record
*/
@Entity
@Table(name = "member")
@XmlRootElement
@NamedQueries({ 
    @NamedQuery(name = "Member.findAll", query = "SELECT t FROM Member t"),
    @NamedQuery(name = "Member.findByEmailId", query = "SELECT t FROM Member t where t.emailId = :emailId")

})
public class Member implements Serializable {
    private final static Logger log = Logger.getLogger(Member.class.getName());

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    @Basic(optional = false) 
    @Column(name = "member_id")
    private Long memberId;

    @Column(name = "first_name")
    private String firstName;

    @Column(name = "last_name")
    private String lastName;

    @Column(name = "date_of_birth")
    @Temporal(TemporalType.DATE)
    private Date dateOfBirth;

    @Column(name = "gender")
    private String gender;

    @Column(name = "phone_number")
    private String phoneNumber;

    @Column(name = "email_id")
    private String emailId;

    @Column(name = "address_line1")
    private String addressLine1;

    @Column(name = "address_line2")
    private String addressLine2;

    @Column(name = "city")
    private String city;

    @Column(name = "zip")
    private String zip;

    @Column(name = "email_communication_preference")
    private String emailCommunicationPreference;

    @Column(name = "version")
    @Version
    private Long version;

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    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 Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getPhoneNum ber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getEmailId() {
        return emailId;
    }

    public void setEmailId(String emailId) {
        this.emailId = emailId;
    }

    public String getAddressLine1() {
        return addressLine1;
    }

    public void setAddressLine1(String addressLine1) {
        this.addressLine1 = addressLine1;
    }

    public String getAddressLine2() {
        return addressLine2;
    }

    public void setAddressLine2(String addressLine2) {
        this.addressLine2 = addressLine2;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getZip() {
        return zip;
    }

    public void setZip(String zip) {
        this.zip = zip;
    }

    public String getEmailCommunicationPreference() {
        return emailCommunicationPreference;
    }

    public void setEmailCommunicationPreference(String emailCommunicationPreference) {
        this.emailCommunicationPreference = emailCommunicationPreference;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    } 

    public Member() {    
    }

    public List<String> getValidationErrors() {
        List<String> errors = new ArrayList<>();
        if (firstName == null) { 
            errors.add("First Name is required. "); 
        }
        if (firstName != null && firstName.length() > 50) { 
            errors.add("First Name is more than 50 characters. "); 
        }
        if (lastName == null) { 
            errors.add("Last Name is required. "); 
        }
        if (lastName != null && lastName.length() > 50) { 
            errors.add("Last Name is more than 50 characters. "); 
        }
        if (gender != null && gender.length() > 10) { 
            errors.add("Gender is more than 10 characters. "); 
        }
        if (phoneNumber != null && phoneNumber.length() > 15) { 
            errors.add("Phone Number is more than 15 characters. "); 
        }
        if (emailId != null && emailId.length() > 50) { 
            errors.add("Email Id is more than 50 characters. "); 
        }
        if (addressLine1 != null && addressLine1.length() > 100) { 
            errors.add("Address Line1 is more than 100 characters. "); 
        }
        if (addressLine2 != null && addressLine2.length() > 50) { 
            errors.add("Address Line2 is more than 50 characters. "); 
        }
        if (city != null && city.length() > 50) { 
            errors.add("City is more than 50 characters. "); 
        }
        if (zip != null && zip.length() > 5) { 
            errors.add("Zip is more than 5 characters. "); 
        }
        if (emailCommunicationPreference != null && emailCommunicationPreference.length() > 10) { 
            errors.add("Email Communication Preference is more than 10 characters. "); 
        }

        return errors;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (memberId != null ? memberId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        if (!(object instanceof Member)) {
            return false;
        }
        Member other = (Member) object;
        if ((this.memberId == null && other.memberId != null) || (this.memberId != null && !this.memberId.equals(other.memberId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.sukamo.membership.persistence.entity.Member[ memberId=" + memberId + " ]";
    }
}

results matching ""

    No results matching ""