package samuelb.capripol;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable;
import java.util.Objects;

/*
This entity is how composite keys are represented in hibernate,
used by Rating
 */
@Embeddable
public class RatingKey implements Serializable {

    @Column(name="userID")
    private Long userID;

    @Column(name="focusID")
    private Long focusID;

    protected RatingKey(){}

    public RatingKey(Long userID, Long focusID) {
        this.userID = userID;
        this.focusID = focusID;
    }

    public Long getUserID() {
        return userID;
    }

    public void setUserID(Long userID) {
        this.userID = userID;
    }

    public Long getFocusID() {
        return focusID;
    }

    public void setFocusID(Long focusID) {
        this.focusID = focusID;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        RatingKey ratingKey = (RatingKey) o;
        return Objects.equals(userID, ratingKey.userID) &&
                Objects.equals(focusID, ratingKey.focusID);
    }

    @Override
    public int hashCode() {
        return Objects.hash(userID, focusID);
    }
}
