package com.lemenzo.clock.model;
import org.json.*;import java.util.*;
public final class Alarm{
 public long id; public int hour,minute; public boolean enabled=true,vibrate=true,gradualVolume=false,deleteAfterDismiss=false; public long skippedOccurrenceAt=0L; public String label="",ringtone=""; public int snoozeMinutes=10; public final Set<Integer> repeatDays=new HashSet<>();
 public JSONObject json()throws JSONException{JSONObject o=new JSONObject();o.put("id",id).put("hour",hour).put("minute",minute).put("enabled",enabled).put("vibrate",vibrate).put("gradual",gradualVolume).put("delete_after_dismiss",deleteAfterDismiss).put("skipped_occurrence_at",skippedOccurrenceAt).put("label",label).put("ringtone",ringtone).put("snooze",snoozeMinutes);JSONArray a=new JSONArray();for(int d:repeatDays)a.put(d);o.put("days",a);return o;}
 public static Alarm from(JSONObject o)throws JSONException{Alarm a=new Alarm();a.id=o.getLong("id");a.hour=o.getInt("hour");a.minute=o.getInt("minute");a.enabled=o.optBoolean("enabled",true);a.vibrate=o.optBoolean("vibrate",true);a.gradualVolume=o.optBoolean("gradual",false);a.deleteAfterDismiss=o.optBoolean("delete_after_dismiss",false);a.skippedOccurrenceAt=o.optLong("skipped_occurrence_at",0L);a.label=o.optString("label","");a.ringtone=o.optString("ringtone","");a.snoozeMinutes=o.optInt("snooze",10);JSONArray ds=o.optJSONArray("days");if(ds!=null)for(int i=0;i<ds.length();i++)a.repeatDays.add(ds.getInt(i));return a;}
 public Alarm copy(){Alarm a=new Alarm();a.id=id;a.hour=hour;a.minute=minute;a.enabled=enabled;a.vibrate=vibrate;a.gradualVolume=gradualVolume;a.deleteAfterDismiss=deleteAfterDismiss;a.skippedOccurrenceAt=skippedOccurrenceAt;a.label=label;a.ringtone=ringtone;a.snoozeMinutes=snoozeMinutes;a.repeatDays.addAll(repeatDays);return a;}
}