package it.enea.cruise.model.user;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Transient;

/**
 * 
 * @author gianluca
 * Questa classe rappresenta l'ID della tabella users_communities che 
 * non esiste all'interno del DB. 
 * Attraverso questa classe e' possibile creare una relazione tra Users e 
 * Communities che contenga anche altre informazioni.
 * I dati di questa classe vengono registrati all'interno dell'oggetto
 * UserCommunity in cui questa classe e' inserita.
 */
@Embeddable
public class UserCommunityId implements Serializable {
 
    /*
	 * Properties 
	 */
	@Transient
	private static final long serialVersionUID = 1L;

	@Column ( name = "userid")
	private Long userid;
	@Column ( name = "communityid")
	private Long communityid;

	/*
	 * Generic Methods 
	 */	
	
    public UserCommunityId() {}
 
    public UserCommunityId(
        Long userId,
        Long communityid) {
        this.setUserId(userId);
        this.setCommunityId(communityid);
    }
 
     public boolean equals(UserCommunityId o) {
    	 Boolean result = false;
    	 
    	 if (o == null)
             result =  false;
    	 
        if (this.communityid.equals(o.communityid) && 
        		this.userid.equals(o.userid)) {
        	result = true;
        }
 
       
		
        return result;
       
    }
 
    //@Override
 //   public int hashCode() {
   //     return Objects.hash(this);
   // }

    /*
	 * Getters and setters
	 */	
    
	public Long getUserId() {
		return userid;
	}

	public void setUserId(Long userId) {
		this.userid = userId;
	}

	public Long getCommunityId() {
		return communityid;
	}

	public void setCommunityId(Long communityId) {
		this.communityid = communityId;
	}
}