package DB;

import java.io.Serializable;
import javax.persistence.*;

/**
 * The primary key class for the student_attendance database table.
 * 
 */
@Embeddable
public class StudentAttendancePK implements Serializable {
  // default serial version id, required for serializable classes.
  private static final long serialVersionUID = 1L;
  private Long lectureCourse;
  private java.util.Date lectureStartTime;
  private java.util.Date lectureEndTime;
  private Long student;

  public StudentAttendancePK() {
  }

  @Column(name = "lecture_course", insertable = false, updatable = false, unique = true, nullable = false)
  public Long getLectureCourse() {
    return this.lectureCourse;
  }

  public void setLectureCourse(Long lectureCourse) {
    this.lectureCourse = lectureCourse;
  }

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "lecture_start_time", insertable = false, updatable = false, unique = true, nullable = false)
  public java.util.Date getLectureStartTime() {
    return this.lectureStartTime;
  }

  public void setLectureStartTime(java.util.Date lectureStartTime) {
    this.lectureStartTime = lectureStartTime;
  }

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "lecture_end_time", insertable = false, updatable = false, unique = true, nullable = false)
  public java.util.Date getLectureEndTime() {
    return this.lectureEndTime;
  }

  public void setLectureEndTime(java.util.Date lectureEndTime) {
    this.lectureEndTime = lectureEndTime;
  }

  @Column(insertable = false, updatable = false, unique = true, nullable = false)
  public Long getStudent() {
    return this.student;
  }

  public void setStudent(Long student) {
    this.student = student;
  }

  public boolean equals(Object other) {
    if (this == other) {
      return true;
    }
    if (!(other instanceof StudentAttendancePK)) {
      return false;
    }
    StudentAttendancePK castOther = (StudentAttendancePK) other;
    return this.lectureCourse.equals(castOther.lectureCourse)
        && this.lectureStartTime.equals(castOther.lectureStartTime)
        && this.lectureEndTime.equals(castOther.lectureEndTime) && this.student.equals(castOther.student);
  }

  public int hashCode() {
    final int prime = 31;
    int hash = 17;
    hash = hash * prime + this.lectureCourse.hashCode();
    hash = hash * prime + this.lectureStartTime.hashCode();
    hash = hash * prime + this.lectureEndTime.hashCode();
    hash = hash * prime + this.student.hashCode();

    return hash;
  }
}