package gov.nysenate.openleg.dao.bill.text;
import gov.nysenate.openleg.dao.base.BasicSqlQuery;
import gov.nysenate.openleg.dao.base.SqlTable;
/**
* Created by kyle on 3/26/15.
*/
public enum SqlBillTextReferenceQuery implements BasicSqlQuery {
INSERT_BILL_TEXT_REFERENCE(
"INSERT INTO ${schema}."+SqlTable.BILL_TEXT_REFERENCE+"\n" +
"(bill_print_no, bill_session_year, reference_date_time, bill_amend_version, text, memo, not_found) " +
"VALUES(:bill_print_no, :bill_session_year, :reference_date_time,:bill_amend_version, :text, :memo, :not_found)"
),
SELECT_UNCHECKED_BTR (
"SELECT * FROM (\n" +
" SELECT bill_print_no, bill_session_year, MAX(reference_date_time) AS reference_date_time\n" +
" FROM ${schema}." + SqlTable.BILL_TEXT_REFERENCE + "\n" +
" WHERE checked = FALSE\n" +
" GROUP BY bill_print_no, bill_session_year" +
") as mru JOIN ${schema}." + SqlTable.BILL_TEXT_REFERENCE + " btr\n" +
" ON mru.bill_print_no = btr.bill_print_no AND mru.bill_session_year = btr.bill_session_year\n" +
" AND mru.reference_date_time = btr.reference_date_time"
),
SELECT_BTR_BY_PRINT_NO (
"SELECT * FROM ${schema}."+SqlTable.BILL_TEXT_REFERENCE+"\n" +
"WHERE bill_print_no = :bill_print_no AND bill_session_year = :bill_session_year"
),
SELECT_BILL_TEXT_REFERENCE(
SELECT_BTR_BY_PRINT_NO.sql + "\n" +
"AND reference_date_time = :reference_date_time"
),
SELECT_BILL_TEXT_RANGE(
SELECT_BTR_BY_PRINT_NO.sql + "\n" +
" AND reference_date_time BETWEEN :startDateTime AND :endDateTime"
),
SELECT_ALL_BILL_TEXT_RANGE(
"SELECT * FROM ${schema}." +SqlTable.BILL_TEXT_REFERENCE+"\n" +
"WHERE reference_date_time BETWEEN :startDateTime AND :endDateTime"
),
DELETE_BILL_REFERENCE(
"DELETE FROM ${schema}."+SqlTable.BILL_TEXT_REFERENCE+"\n" +
"WHERE bill_print_no = :bill_print_no AND bill_session_year = :bill_session_year AND\n" +
"reference_date_time = :reference_date_time"
),
UPDATE_BILL_REFERENCE( //probably works, I assume
"UPDATE ${schema}." +SqlTable.BILL_TEXT_REFERENCE+"\n" +
"SET text = :text, memo = :memo, bill_amend_version = :bill_amend_version, not_found = :not_found\n" +
"WHERE bill_print_no = :bill_print_no AND bill_session_year =:bill_session_year\n" +
"AND reference_date_time = :reference_date_time"
),
SET_REF_CHECKED(
"UPDATE ${schema}." +SqlTable.BILL_TEXT_REFERENCE+"\n" +
"SET checked = TRUE\n" +
"WHERE bill_print_no = :bill_print_no AND bill_session_year = :bill_session_year"
),
/** --- Scrape Queue --- */
INSERT_SCRAPE_QUEUE(
"INSERT INTO ${schema}."+SqlTable.BILL_SCRAPE_QUEUE+"\n" +
"(print_no, session_year, priority) " +
"VALUES(:printNo, :sessionYear, :priority)"
),
UPDATE_SCRAPE_QUEUE(
"UPDATE ${schema}." + SqlTable.BILL_SCRAPE_QUEUE + "\n" +
"SET priority = :priority\n" +
"WHERE session_year = :sessionYear AND print_no = :printNo"
),
SELECT_SCRAPE_QUEUE(
"SELECT *, COUNT(*) OVER () AS total FROM ${schema}."+SqlTable.BILL_SCRAPE_QUEUE
),
DELETE_SCRAPE_QUEUE(
"DELETE FROM ${schema}."+SqlTable.BILL_SCRAPE_QUEUE+"\n" +
"WHERE print_no =:printNo AND session_year = :sessionYear"
)
;
private String sql;
SqlBillTextReferenceQuery(String sql) {
this.sql = sql;
}
@Override
public String getSql() {
return this.sql;
}
}