package gov.nysenate.openleg.dao.calendar.alert;
import gov.nysenate.openleg.dao.base.LimitOffset;
import gov.nysenate.openleg.dao.base.SortOrder;
import gov.nysenate.openleg.model.calendar.Calendar;
import gov.nysenate.openleg.model.calendar.CalendarId;
import gov.nysenate.openleg.model.calendar.alert.CalendarAlertFile;
import org.springframework.dao.DataAccessException;
import java.time.LocalDateTime;
import java.util.List;
public interface CalendarAlertDao {
Calendar getCalendar(CalendarId calendarId) throws DataAccessException;
List<CalendarId> getCalendarIds(int year, SortOrder calOrder, LimitOffset limitOffset);
/**
* Updates a alert calendar reference, associating the alert file with it.
* @param calendar
* @param file
* @throws DataAccessException
*/
void updateCalendar(Calendar calendar, CalendarAlertFile file) throws DataAccessException;
List<Calendar> getCalendarAlertsByDateRange(LocalDateTime start, LocalDateTime end);
void markAsChecked(CalendarId id);
void markProdAsChecked(CalendarId id);
List<Calendar> getUnCheckedCalendarAlerts();
List<Calendar> getProdUnCheckedCalendarAlerts();
}