package com.thomasdh.roosterpgplus.Models;
import android.content.Context;
import android.util.Log;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.misc.BaseDaoEnabled;
import com.j256.ormlite.table.DatabaseTable;
import com.thomasdh.roosterpgplus.Helpers.ExceptionHandler;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@EqualsAndHashCode(callSuper = false)
@ToString
@DatabaseTable(tableName = "Lessen")
public class Lesuur extends BaseDaoEnabled implements Serializable {
private static final long serialVersionUID = 7526472295622776147L;
@DatabaseField(generatedId = true) public int id;
@DatabaseField public String query;
@DatabaseField public int dag;
@DatabaseField public int uur;
@DatabaseField public Date lesStart;
@DatabaseField public Date lesEind;
@DatabaseField public int week;
@DatabaseField(dataType = DataType.SERIALIZABLE) public ArrayList<String> klassen;
@DatabaseField(dataType = DataType.SERIALIZABLE) public ArrayList<String> leraren;
@DatabaseField public String vak;
@DatabaseField public String lokaal;
@DatabaseField public boolean verandering;
@DatabaseField public boolean vervallen;
@DatabaseField public boolean isNew;
@DatabaseField public boolean verplaatsing;
@DatabaseField private String huiswerk;
@DatabaseField private boolean master;
@DatabaseField private int bijzonderheid;
public Lesuur() {}
public Lesuur(JSONObject JSON, Context context, String query) {
try {
dag = JSON.getInt("dag");
uur = JSON.getInt("uur");
SimpleDateFormat webFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
lesStart = webFormat.parse(JSON.getString("lesStart"));
lesEind = webFormat.parse(JSON.getString("lesEind"));
} catch (ParseException e) {
Log.e("Datumparsefout", e.getMessage(), e);
Calendar cal = Calendar.getInstance();
cal.set(1980, Calendar.JANUARY, 1, 0, 0, 0);
lesStart = cal.getTime();
lesEind = cal.getTime();
}
week = JSON.getInt("week");
JSONArray klassenArray = JSON.getJSONArray("klassen");
klassen = new ArrayList<>();
for(int i = 0; i < klassenArray.length(); i++) {
klassen.add(klassenArray.getString(i));
}
JSONArray lerarenArray = JSON.getJSONArray("leraren");
leraren = new ArrayList<>();
for(int i = 0; i < lerarenArray.length(); i++) {
leraren.add(lerarenArray.getString(i));
}
vak = JSON.getString("vak");
lokaal = JSON.getString("lokaal");
verandering = JSON.getBoolean("verandering");
vervallen = JSON.getBoolean("vervallen");
verplaatsing = JSON.getBoolean("verplaatsing");
isNew = JSON.getBoolean("new");
huiswerk = JSON.getString("huiswerk");
master = JSON.getBoolean("master");
bijzonderheid = JSON.getInt("bijzonderheid");
this.query = query;
} catch (JSONException e) {
ExceptionHandler.handleException(e, context, ExceptionHandler.HandleType.EXTENSIVE);
}
}
public Lesuur(int dag, int uur, Date lesStart, Date lesEind, int week, ArrayList<String> klassen, ArrayList<String> leraren, String vak, String lokaal, boolean verandering, boolean vervallen, boolean isNew, boolean verplaatsing, String huiswerk, boolean master, int bijzonderheid, String query) {
this.dag = dag;
this.uur = uur;
this.lesStart = lesStart;
this.lesEind = lesEind;
this.week = week;
this.klassen = klassen;
this.leraren = leraren;
this.vak = vak;
this.verandering = verandering;
this.vervallen = vervallen;
this.lokaal = lokaal;
this.isNew = isNew;
this.verplaatsing = verplaatsing;
this.huiswerk = huiswerk;
this.master = master;
this.bijzonderheid = bijzonderheid;
this.query = query;
}
}