package fi.otavanopisto.pyramus.domainmodel.courses; import java.math.BigDecimal; import java.util.Currency; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.validation.constraints.NotNull; import fi.otavanopisto.pyramus.domainmodel.accommodation.Room; import fi.otavanopisto.pyramus.domainmodel.base.ArchivableEntity; import fi.otavanopisto.pyramus.domainmodel.base.BillingDetails; import fi.otavanopisto.pyramus.domainmodel.base.CourseOptionality; import fi.otavanopisto.pyramus.domainmodel.students.Student; @Entity public class CourseStudent extends CourseUser implements ArchivableEntity { public Date getEnrolmentTime() { return enrolmentTime; } public void setEnrolmentTime(Date enrolmentTime) { this.enrolmentTime = enrolmentTime; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public CourseParticipationType getParticipationType() { return participationType; } public void setParticipationType(CourseParticipationType participationType) { this.participationType = participationType; } public CourseEnrolmentType getCourseEnrolmentType() { return courseEnrolmentType; } public void setCourseEnrolmentType(CourseEnrolmentType courseEnrolmentType) { this.courseEnrolmentType = courseEnrolmentType; } /** * Sets the archived flag of this object. * * @param archived The archived flag of this object */ public void setArchived(Boolean archived) { this.archived = archived; } /** * Returns the archived flag of this object. * * @return The archived flag of this object */ public Boolean getArchived() { return archived; } public void setLodging(Boolean lodging) { this.lodging = lodging; } public Boolean getLodging() { return lodging; } public CourseOptionality getOptionality() { return optionality; } public void setOptionality(CourseOptionality optionality) { this.optionality = optionality; } public void setBillingDetails(BillingDetails billingDetails) { this.billingDetails = billingDetails; } public BillingDetails getBillingDetails() { return billingDetails; } public Room getRoom() { return room; } public void setRoom(Room room) { this.room = room; } public BigDecimal getLodgingFee() { return lodgingFee; } public void setLodgingFee(BigDecimal lodgingFee) { this.lodgingFee = lodgingFee; } public Currency getLodgingFeeCurrency() { return lodgingFeeCurrency; } public void setLodgingFeeCurrency(Currency lodgingFeeCurrency) { this.lodgingFeeCurrency = lodgingFeeCurrency; } public String getOrganization() { return organization; } public void setOrganization(String organization) { this.organization = organization; } public String getAdditionalInfo() { return additionalInfo; } public void setAdditionalInfo(String additionalInfo) { this.additionalInfo = additionalInfo; } public BigDecimal getReservationFee() { return reservationFee; } public void setReservationFee(BigDecimal reservationFee) { this.reservationFee = reservationFee; } public Currency getReservationFeeCurrency() { return reservationFeeCurrency; } public void setReservationFeeCurrency(Currency reservationFeeCurrency) { this.reservationFeeCurrency = reservationFeeCurrency; } @Column (nullable=false) @Temporal (value=TemporalType.TIMESTAMP) private Date enrolmentTime; @ManyToOne (optional = false) @JoinColumn(name="student") private Student student; @NotNull @Column(nullable = false) private Boolean archived = Boolean.FALSE; @ManyToOne @JoinColumn(name="participationType") private CourseParticipationType participationType; @ManyToOne @JoinColumn(name="enrolmentType") private CourseEnrolmentType courseEnrolmentType; @NotNull @Column(nullable = false) private Boolean lodging = Boolean.FALSE; @Column @Enumerated (EnumType.STRING) private CourseOptionality optionality; @ManyToOne @JoinColumn(name="billingDetails") private BillingDetails billingDetails; private BigDecimal reservationFee; private Currency reservationFeeCurrency; private BigDecimal lodgingFee; private Currency lodgingFeeCurrency; @ManyToOne private Room room; private String organization; private String additionalInfo; }