package net.dewep.intranetepitech.api.model; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import fr.qinder.tools.ConvertDate; import fr.qinder.tools.JSON; public class EventModel { protected JSONObject mObject; // All protected String mType = ""; protected String mLocation = ""; protected String mLocationType = ""; protected String mRoom = ""; protected String mTitle = ""; protected Boolean mIsRegistered = false; protected int mNumberRegistered = 0; protected int mNumberPlace = 0; protected String mDateStart = ""; protected String mDateEnd = ""; protected String mDuration = ""; protected List<String> mRights = new ArrayList<String>(); // General protected int mGeneralScolarYear = 0; protected String mGeneralCodeModule = ""; protected String mGeneralCodeInstance = ""; protected String mGeneralCodeActivity = ""; protected String mGeneralCodeEvent = ""; protected int mGeneralSemester = 0; protected String mGeneralTitleModule = ""; protected String mGeneralTypeTitle = ""; protected String mGeneralTypeCode = ""; protected Boolean mGeneralIsRdv = false; protected Boolean mGeneralIsModuleAvailable = false; protected Boolean mGeneralIsModuleRegistered = false; protected Boolean mGeneralIsAllowRegistered = false; protected Boolean mGeneralIsProject = false; protected Boolean mGeneralIsAllowToken = false; protected Boolean mGeneralIsRegisterStudent = false; protected String mGeneralEventRegistered = ""; protected String mGeneralRdvGroupRegistered = ""; protected String mGeneralRdvIndivRegistered = ""; // Perso calendar protected int mPersoId = 0; protected int mPersoIdCalendar = 0; protected String mPersoType = ""; protected String mPersoDescription = ""; protected String mPersoColor = ""; protected String mPersoMakerLogin = ""; protected String mPersoMakerTitle = ""; // Calendar protected Calendar mCalendarStart = null; protected Calendar mCalendarEnd = null; public EventModel(JSONObject object) { mObject = object; mType = JSON.parse(mObject, "calendar_type", "general"); mDateStart = JSON.parse(mObject, "start", ""); mDateEnd = JSON.parse(mObject, "end", ""); mCalendarStart = Calendar.getInstance(); mCalendarEnd = Calendar.getInstance(); try { mCalendarStart.setTime(ConvertDate.formatUS("yyyy-MM-dd HH:mm:ss").parse(mDateStart)); mCalendarEnd.setTime(ConvertDate.formatUS("yyyy-MM-dd HH:mm:ss").parse(mDateEnd)); } catch (ParseException e) { e.printStackTrace(); } try { JSONArray rights = JSON.parse(mObject, "rights", new JSONArray("[]")); for (int i = 0; rights != null && i < rights.length(); i++) { mRights.add(rights.getString(i)); } } catch (JSONException e) { mRights.clear(); } if (mType.equals("general")) { mLocation = JSON.parse(mObject, "room>code", ""); mLocationType = JSON.parse(mObject, "room>type", ""); mTitle = JSON.parse(mObject, "acti_title", ""); mIsRegistered = !JSON.parse(mObject, "event_registered", "null").equals("null"); mNumberRegistered = JSON.parse(mObject, "total_students_registered", 0); mNumberPlace = JSON.parse(mObject, "room>seats", 0); mDuration = JSON.parse(mObject, "nb_hours", ""); } else { mLocation = JSON.parse(mObject, "location", ""); mLocationType = JSON.parse(mObject, "type_room", ""); mTitle = JSON.parse(mObject, "title", ""); mIsRegistered = JSON.parse(mObject, "event_registered", false); mNumberRegistered = JSON.parse(mObject, "registered", 0); mNumberPlace = JSON.parse(mObject, "nb_place", 0); mDuration = JSON.parse(mObject, "duration", ""); } int index = mLocation.lastIndexOf('/'); if (index > 0 && index < mLocation.length() - 1) { mRoom = mLocation.substring(mLocation.lastIndexOf('/') + 1); } if (mType.equals("general")) { mGeneralScolarYear = JSON.parse(mObject, "scolaryear", 0); mGeneralCodeModule = JSON.parse(mObject, "codemodule", ""); mGeneralCodeInstance = JSON.parse(mObject, "codeinstance", ""); mGeneralCodeActivity = JSON.parse(mObject, "codeacti", ""); mGeneralCodeEvent = JSON.parse(mObject, "codeevent", ""); mGeneralSemester = JSON.parse(mObject, "semester", 0); mGeneralTitleModule = JSON.parse(mObject, "titlemodule", ""); mGeneralTypeTitle = JSON.parse(mObject, "type_title", ""); mGeneralTypeCode = JSON.parse(mObject, "type_code", ""); mGeneralIsRdv = JSON.parse(mObject, "is_rdv", false); mGeneralIsModuleAvailable = JSON.parse(mObject, "module_available", false); mGeneralIsModuleRegistered = JSON.parse(mObject, "module_registered", false); mGeneralIsAllowRegistered = JSON.parse(mObject, "allow_register", false); mGeneralIsProject = JSON.parse(mObject, "project", false); mGeneralIsAllowToken = JSON.parse(mObject, "allow_token", false); mGeneralIsRegisterStudent = JSON.parse(mObject, "register_student", false); mGeneralEventRegistered = JSON.parse(mObject, "event_registered", ""); mGeneralRdvGroupRegistered = JSON.parse(mObject, "rdv_group_registered", ""); mGeneralRdvIndivRegistered = JSON.parse(mObject, "rdv_indiv_registered", ""); } else { mPersoId = JSON.parse(mObject, "id", 0); mPersoIdCalendar = JSON.parse(mObject, "id_calendar", 0); mPersoType = JSON.parse(mObject, "type", ""); mPersoDescription = JSON.parse(mObject, "description", ""); mPersoColor = JSON.parse(mObject, "color", ""); mPersoMakerLogin = JSON.parse(mObject, "maker>login", ""); mPersoMakerTitle = JSON.parse(mObject, "maker>title", ""); } mPersoId = JSON.parse(mObject, "id", 0); mPersoIdCalendar = JSON.parse(mObject, "id_calendar", 0); } public Boolean isAssitant() { for (int i = 0; mRights != null && i < mRights.size(); i++) { if (mRights.get(i).equals("assistant")) { return true; } } return false; } public Calendar getCalendarStart() { return mCalendarStart; } public Calendar getCalendarEnd() { return mCalendarEnd; } public String getType() { return mType; } public String getLocation() { return mLocation; } public String getRoomType() { return mLocationType; } public String getRoom() { return mRoom; } public String getTitle() { return mTitle; } public Boolean isRegistered() { return mIsRegistered; } public Integer getNumberRegistered() { return mNumberRegistered; } public Integer getNumberPlace() { return mNumberPlace; } public String getDateStart() { return mDateStart; } public String getDateEnd() { return mDateEnd; } public String getDuration() { return mDuration; } public List<String> getRights() { return mRights; } public int getGeneralScolarYear() { return mGeneralScolarYear; } public String getGeneralCodeModule() { return mGeneralCodeModule; } public String getGeneralCodeInstance() { return mGeneralCodeInstance; } public String getGeneralCodeActivity() { return mGeneralCodeActivity; } public String getGeneralCodeEvent() { return mGeneralCodeEvent; } public int getGeneralSemester() { return mGeneralSemester; } public String getGeneralTitleModule() { return mGeneralTitleModule; } public String getGeneralTypeTitle() { return mGeneralTypeTitle; } public String getGeneralTypeCode() { return mGeneralTypeCode; } public Boolean isGeneralRdv() { return mGeneralIsRdv; } public Boolean isGeneralModuleAvailable() { return mGeneralIsModuleAvailable; } public Boolean isGeneralModuleRegistered() { return mGeneralIsModuleRegistered; } public Boolean isGeneralAllowRegistered() { return mGeneralIsAllowRegistered; } public Boolean isGeneralProject() { return mGeneralIsProject; } public Boolean isGeneralAllowToken() { return mGeneralIsAllowToken; } public Boolean isGeneralRegisterStudent() { return mGeneralIsRegisterStudent; } public String getGeneralEventRegistered() { return mGeneralEventRegistered; } public String getGeneralRdvGroupRegistered() { return mGeneralRdvGroupRegistered; } public String getGeneralRdvIndivRegistered() { return mGeneralRdvIndivRegistered; } public int getPersoId() { return mPersoId; } public int getPersoIdCalendar() { return mPersoIdCalendar; } public String getPersoType() { return mPersoType; } public String getPersoDescription() { return mPersoDescription; } public String getPersoColor() { return mPersoColor; } public String getPersoMakerLogin() { return mPersoMakerLogin; } public String getPersoMakerTitle() { return mPersoMakerTitle; } }