package gov.nysenate.openleg.dao.agenda.reference; import gov.nysenate.openleg.dao.base.BasicSqlQuery; import gov.nysenate.openleg.dao.base.SqlTable; public enum SqlAgendaAlertQuery implements BasicSqlQuery{ SELECT_INFO_COMMITTEE( "SELECT * FROM ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE +" a\n" + " LEFT JOIN ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE_ITEM + " ai\n" + " ON a.id = ai.alert_info_committee_id" ), SELECT_INFO_COMMITTEE_BY_ID( SELECT_INFO_COMMITTEE.sql + "\n" + "WHERE a.reference_date_time = :referenceDateTime AND a.week_of = :weekOf AND a.addendum_id = :addendumId" + " AND a.chamber = :chamber::chamber AND a.committee_name = :committeeName" ), SELECT_IN_RANGE( SELECT_INFO_COMMITTEE.sql + "\n" + "WHERE reference_date_time BETWEEN :startDateTime AND :endDateTime" ), SELECT_UNCHECKED( SELECT_INFO_COMMITTEE.sql + "\n" + "WHERE checked = FALSE" ), SELECT_PROD_UNCHECKED( SELECT_INFO_COMMITTEE.sql + "\n" + "WHERE prod_checked = FALSE\n" + "UNION\n" + "SELECT aaic_checked.*, aaici.*\n" + " FROM master.agenda_alert_info_committee aaic\n" + " JOIN master.agenda_alert_info_committee aaic_checked\n" + " ON aaic.meeting_date_time::date = aaic_checked.meeting_date_time::date\n" + " AND aaic.chamber = aaic_checked.chamber\n" + " AND aaic.committee_name = aaic_checked.committee_name\n" + " AND aaic_checked.prod_checked = TRUE\n" + " LEFT JOIN master.agenda_alert_info_committee_item aaici\n" + " ON aaic_checked.id = aaici.alert_info_committee_id\n" + "WHERE aaic.prod_checked = FALSE" ), INSERT_INFO_COMMITTEE( "INSERT INTO ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE + "\n" + " ( reference_date_time, week_of, addendum_id, chamber, committee_name, " + " chair, location, meeting_date_time, notes)" + "VALUES (:referenceDateTime, :weekOf, :addendumId, :chamber::chamber, :committeeName, " + " :chair, :location, :meetingDateTime, :notes)" ), INSERT_INFO_COMMITTEE_ITEM( "INSERT INTO ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE_ITEM + "\n" + " ( alert_info_committee_id, bill_print_no, bill_session_year, bill_amend_version, message)" + "VALUES (:alertInfoCommitteeId, :billPrintNo, :billSessionYear, :billAmendVersion, :message)" ), SET_INFO_COMMITTEE_CHECKED( "UPDATE ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE + "\n" + "SET checked = :checked\n" + "WHERE reference_date_time = :referenceDateTime AND week_of = :weekOf AND chamber = :chamber::chamber\n" + " AND committee_name = :committeeName AND addendum_id = :addendumId" ), SET_MEETING_PROD_CHECKED( "UPDATE ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE + "\n" + "SET prod_checked = :checked\n" + "WHERE chamber = :chamber::chamber AND committee_name = :committeeName AND meeting_date_time::date = :meetingDateTime::date" ), DELETE_INFO_COMMITTEE( "DELETE FROM ${schema}." + SqlTable.AGENDA_ALERT_INFO_COMMITTEE + "\n" + "WHERE reference_date_time = :referenceDateTime AND week_of = :weekOf AND addendum_id = :addendumId" + " AND chamber = :chamber::chamber AND committee_name = :committeeName" ), ; private String sql; private SqlAgendaAlertQuery(String sql) { this.sql = sql; } @Override public String getSql() { return sql; } }