2020-12-09 16:43:29 +01:00
|
|
|
package com.plannaplan.entities;
|
|
|
|
|
|
|
|
import java.sql.Date;
|
|
|
|
import java.sql.Timestamp;
|
|
|
|
|
|
|
|
import javax.persistence.Entity;
|
|
|
|
import javax.persistence.GeneratedValue;
|
|
|
|
import javax.persistence.GenerationType;
|
|
|
|
import javax.persistence.Id;
|
|
|
|
|
|
|
|
import com.plannaplan.models.TourData;
|
2020-12-12 15:33:00 +01:00
|
|
|
import com.plannaplan.types.AppState;
|
2020-12-09 16:43:29 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* entity that keeps app configurations
|
|
|
|
*/
|
|
|
|
@Entity
|
|
|
|
public class AppConfig {
|
|
|
|
|
|
|
|
@Id
|
|
|
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
|
|
|
private Long id;
|
|
|
|
private Date firstTourStart;
|
|
|
|
private Date firstTourEnd;
|
|
|
|
private Date secondTourStart;
|
|
|
|
private Date secondTourEnd;
|
|
|
|
private Timestamp configDate;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* no parameter construcotor
|
|
|
|
*/
|
|
|
|
public AppConfig() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* constructor
|
|
|
|
*
|
|
|
|
* @param firstTour first TourData instacne
|
|
|
|
* @param scondTour second TourData instacne
|
|
|
|
*/
|
|
|
|
public AppConfig(TourData firstTour, TourData scondTour) {
|
|
|
|
this.firstTourStart = firstTour.getStart();
|
|
|
|
this.firstTourEnd = firstTour.getEnd();
|
|
|
|
this.secondTourStart = scondTour.getStart();
|
|
|
|
this.secondTourEnd = scondTour.getEnd();
|
|
|
|
this.configDate = new Timestamp(System.currentTimeMillis());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* second tour end getter
|
|
|
|
*
|
|
|
|
* @return Date inforamtion when second tour ends
|
|
|
|
*/
|
|
|
|
public Date getSecondTourEnd() {
|
|
|
|
return secondTourEnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* first second start getter
|
|
|
|
*
|
|
|
|
* @return Date inforamtion when second tour start
|
|
|
|
*/
|
|
|
|
public Date getSecondTourStart() {
|
|
|
|
return secondTourStart;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* first tour end getter
|
|
|
|
*
|
|
|
|
* @return Date inforamtion when first tour end
|
|
|
|
*/
|
|
|
|
public Date getFirstTourEnd() {
|
|
|
|
return firstTourEnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* first tour start getter
|
|
|
|
*
|
|
|
|
* @return Date inforamtion when first tour start
|
|
|
|
*/
|
|
|
|
public Date getFirstTourStart() {
|
|
|
|
return firstTourStart;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* config date getter
|
|
|
|
*
|
|
|
|
* @return Timestamp when configuration took place
|
|
|
|
*/
|
|
|
|
public Timestamp getConfigDate() {
|
|
|
|
return configDate;
|
|
|
|
}
|
|
|
|
|
2020-12-12 15:33:00 +01:00
|
|
|
/**
|
|
|
|
* current state getter
|
|
|
|
*
|
|
|
|
* @return AppState of app at the moment of calling method
|
|
|
|
*/
|
|
|
|
public AppState getCurrentState() {
|
|
|
|
final Date now = new Date(System.currentTimeMillis());
|
|
|
|
if (this.secondTourEnd.before(now)) {
|
|
|
|
return AppState.NO_TOUR;
|
|
|
|
}
|
|
|
|
if (this.secondTourStart.before(now)) {
|
|
|
|
return AppState.SECOND_TOUR;
|
|
|
|
}
|
|
|
|
if (this.firstTourEnd.before(now)) {
|
|
|
|
return AppState.NO_TOUR;
|
|
|
|
}
|
|
|
|
if (this.firstTourStart.before(now)) {
|
|
|
|
return AppState.FIRST_TOUR;
|
|
|
|
}
|
|
|
|
|
|
|
|
return AppState.NO_TOUR;
|
|
|
|
}
|
|
|
|
|
2020-12-09 16:43:29 +01:00
|
|
|
}
|