401 lines
9.9 KiB
SQL
401 lines
9.9 KiB
SQL
-- File queries.sql
|
|
-- autogenerated by adl.to-hugsql-queries at
|
|
-- 2018-05-13T16:47:04.188Z
|
|
-- See [Application Description Language](https://github.com/simon-brooke/adl).
|
|
|
|
|
|
|
|
-- :name create-address! :! :n
|
|
-- :doc creates a new address record
|
|
INSERT INTO addresses (address,
|
|
postcode,
|
|
phone,
|
|
district_id,
|
|
latitude,
|
|
longitude)
|
|
VALUES (:address,
|
|
:postcode,
|
|
:phone,
|
|
:district_id,
|
|
:latitude,
|
|
:longitude)
|
|
|
|
-- :name create-authority! :! :n
|
|
-- :doc creates a new authority record
|
|
INSERT INTO authorities (id)
|
|
VALUES (:id)
|
|
|
|
-- :name create-canvasser! :! :n
|
|
-- :doc creates a new canvasser record
|
|
INSERT INTO canvassers (username,
|
|
fullname,
|
|
elector_id,
|
|
address_id,
|
|
phone,
|
|
email,
|
|
authority_id,
|
|
authorised)
|
|
VALUES (:username,
|
|
:fullname,
|
|
:elector_id,
|
|
:address_id,
|
|
:phone,
|
|
:email,
|
|
:authority_id,
|
|
:authorised)
|
|
|
|
-- :name create-district! :! :n
|
|
-- :doc creates a new district record
|
|
INSERT INTO districts (name)
|
|
VALUES (:name)
|
|
|
|
-- :name create-elector! :! :n
|
|
-- :doc creates a new elector record
|
|
INSERT INTO electors (name,
|
|
address_id,
|
|
phone,
|
|
email,
|
|
gender)
|
|
VALUES (:name,
|
|
:address_id,
|
|
:phone,
|
|
:email,
|
|
:gender)
|
|
|
|
-- :name create-followupaction! :! :n
|
|
-- :doc creates a new followupaction record
|
|
INSERT INTO followupactions (request_id,
|
|
actor,
|
|
date,
|
|
notes,
|
|
closed,
|
|
id)
|
|
VALUES (:request_id,
|
|
:actor,
|
|
:date,
|
|
:notes,
|
|
:closed,
|
|
:id)
|
|
|
|
-- :name create-followupmethod! :! :n
|
|
-- :doc creates a new followupmethod record
|
|
INSERT INTO followupmethods (id)
|
|
VALUES (:id)
|
|
|
|
-- :name create-followuprequest! :! :n
|
|
-- :doc creates a new followuprequest record
|
|
INSERT INTO followuprequests (elector_id,
|
|
visit_id,
|
|
issue_id,
|
|
method_id,
|
|
id)
|
|
VALUES (:elector_id,
|
|
:visit_id,
|
|
:issue_id,
|
|
:method_id,
|
|
:id)
|
|
|
|
-- :name create-gender! :! :n
|
|
-- :doc creates a new gender record
|
|
INSERT INTO genders (id)
|
|
VALUES (:id)
|
|
|
|
-- :name create-intention! :! :n
|
|
-- :doc creates a new intention record
|
|
INSERT INTO intentions (visit_id,
|
|
elector_id,
|
|
option_id)
|
|
VALUES (:visit_id,
|
|
:elector_id,
|
|
:option_id)
|
|
|
|
-- :name create-issue! :! :n
|
|
-- :doc creates a new issue record
|
|
INSERT INTO issues (url,
|
|
current,
|
|
id)
|
|
VALUES (:url,
|
|
:current,
|
|
:id)
|
|
|
|
-- :name create-issueexpertis! :! :n
|
|
-- :doc creates a new issueexpertis record
|
|
INSERT INTO issueexpertise (canvasser_id,
|
|
issue_id,
|
|
method_id)
|
|
VALUES (:canvasser_id,
|
|
:issue_id,
|
|
:method_id)
|
|
|
|
-- :name create-option! :! :n
|
|
-- :doc creates a new option record
|
|
INSERT INTO options (id)
|
|
VALUES (:id)
|
|
|
|
-- :name create-role! :! :n
|
|
-- :doc creates a new role record
|
|
INSERT INTO roles (name)
|
|
VALUES (:name)
|
|
|
|
-- :name create-rolemembership! :! :n
|
|
-- :doc creates a new rolemembership record
|
|
INSERT INTO rolememberships (role_id,
|
|
canvasser_id)
|
|
VALUES (:role_id,
|
|
:canvasser_id)
|
|
|
|
-- :name create-team! :! :n
|
|
-- :doc creates a new team record
|
|
INSERT INTO teams (name,
|
|
district_id,
|
|
latitude,
|
|
longitude)
|
|
VALUES (:name,
|
|
:district_id,
|
|
:latitude,
|
|
:longitude)
|
|
|
|
-- :name create-teammembership! :! :n
|
|
-- :doc creates a new teammembership record
|
|
INSERT INTO teammemberships (team_id,
|
|
canvasser_id)
|
|
VALUES (:team_id,
|
|
:canvasser_id)
|
|
|
|
-- :name create-teamorganisership! :! :n
|
|
-- :doc creates a new teamorganisership record
|
|
INSERT INTO teamorganiserships (team_id,
|
|
canvasser_id)
|
|
VALUES (:team_id,
|
|
:canvasser_id)
|
|
|
|
-- :name create-visit! :! :n
|
|
-- :doc creates a new visit record
|
|
INSERT INTO visits (address_id,
|
|
canvasser_id,
|
|
date)
|
|
VALUES (:address_id,
|
|
:canvasser_id,
|
|
:date)
|
|
|
|
-- :name list-addresses :? :*
|
|
-- :doc lists all existing address records
|
|
SELECT * FROM addresses
|
|
ORDER BY addresses.address,
|
|
addresses.postcode
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-addresses-by-district :? :*
|
|
-- :doc lists all existing address records related to a given district
|
|
SELECT *
|
|
FROM addresses
|
|
WHERE addresses.district_id = :id
|
|
ORDER BY addresses.address,
|
|
addresses.postcode
|
|
|
|
-- :name list-canvassers :? :*
|
|
-- :doc lists all existing canvasser records
|
|
SELECT * FROM canvassers
|
|
ORDER BY canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-canvassers-by-address :? :*
|
|
-- :doc lists all existing canvasser records related to a given address
|
|
SELECT *
|
|
FROM canvassers
|
|
WHERE canvassers.address_id = :id
|
|
ORDER BY canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email
|
|
|
|
-- :name list-canvassers-by-authority :? :*
|
|
-- :doc lists all existing canvasser records related to a given authority
|
|
SELECT *
|
|
FROM canvassers
|
|
WHERE canvassers.authority_id = :id
|
|
ORDER BY canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email
|
|
|
|
-- :name list-canvassers-by-elector :? :*
|
|
-- :doc lists all existing canvasser records related to a given elector
|
|
SELECT *
|
|
FROM canvassers
|
|
WHERE canvassers.elector_id = :id
|
|
ORDER BY canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email
|
|
|
|
-- :name list-districts :? :*
|
|
-- :doc lists all existing district records
|
|
SELECT * FROM districts
|
|
ORDER BY districts.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-electors :? :*
|
|
-- :doc lists all existing elector records
|
|
SELECT * FROM electors
|
|
ORDER BY electors.name,
|
|
electors.phone,
|
|
electors.email
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-electors-by-address :? :*
|
|
-- :doc lists all existing elector records related to a given address
|
|
SELECT *
|
|
FROM electors
|
|
WHERE electors.address_id = :id
|
|
ORDER BY electors.name,
|
|
electors.phone,
|
|
electors.email
|
|
|
|
-- :name list-electors-by-gender :? :*
|
|
-- :doc lists all existing elector records related to a given gender
|
|
SELECT *
|
|
FROM electors
|
|
WHERE electors.gender = :id
|
|
ORDER BY electors.name,
|
|
electors.phone,
|
|
electors.email
|
|
|
|
-- :name list-followupactions :? :*
|
|
-- :doc lists all existing followupaction records
|
|
SELECT * FROM followupactions
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-followupactions-by-canvasser :? :*
|
|
-- :doc lists all existing followupaction records related to a given canvasser
|
|
SELECT *
|
|
FROM followupactions
|
|
WHERE followupactions.actor = :id
|
|
|
|
-- :name list-followupactions-by-followuprequest :? :*
|
|
-- :doc lists all existing followupaction records related to a given followuprequest
|
|
SELECT *
|
|
FROM followupactions
|
|
WHERE followupactions.request_id = :id
|
|
|
|
-- :name list-issues :? :*
|
|
-- :doc lists all existing issue records
|
|
SELECT * FROM issues
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-roles :? :*
|
|
-- :doc lists all existing role records
|
|
SELECT * FROM roles
|
|
ORDER BY roles.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-teams :? :*
|
|
-- :doc lists all existing team records
|
|
SELECT * FROM teams
|
|
ORDER BY teams.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-teams-by-district :? :*
|
|
-- :doc lists all existing team records related to a given district
|
|
SELECT *
|
|
FROM teams
|
|
WHERE teams.district_id = :id
|
|
ORDER BY teams.name
|
|
|
|
-- :name list-visits :? :*
|
|
-- :doc lists all existing visit records
|
|
SELECT * FROM visits
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name list-visits-by-address :? :*
|
|
-- :doc lists all existing visit records related to a given address
|
|
SELECT *
|
|
FROM visits
|
|
WHERE visits.address_id = :id
|
|
|
|
-- :name list-visits-by-canvasser :? :*
|
|
-- :doc lists all existing visit records related to a given canvasser
|
|
SELECT *
|
|
FROM visits
|
|
WHERE visits.canvasser_id = :id
|
|
|
|
-- :name search-strings-address :? :1
|
|
-- :doc selects existing address records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM addresses
|
|
WHERE
|
|
address LIKE '%:pattern%'
|
|
OR phone LIKE '%:pattern%'
|
|
ORDER BY addresses.address,
|
|
addresses.postcode
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-canvasser :? :1
|
|
-- :doc selects existing canvasser records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM canvassers
|
|
WHERE
|
|
username LIKE '%:pattern%'
|
|
OR fullname LIKE '%:pattern%'
|
|
OR phone LIKE '%:pattern%'
|
|
OR email LIKE '%:pattern%'
|
|
ORDER BY canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-district :? :1
|
|
-- :doc selects existing district records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM districts
|
|
WHERE
|
|
name LIKE '%:pattern%'
|
|
ORDER BY districts.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-elector :? :1
|
|
-- :doc selects existing elector records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM electors
|
|
WHERE
|
|
name LIKE '%:pattern%'
|
|
OR phone LIKE '%:pattern%'
|
|
OR email LIKE '%:pattern%'
|
|
ORDER BY electors.name,
|
|
electors.phone,
|
|
electors.email
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-issue :? :1
|
|
-- :doc selects existing issue records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM issues
|
|
WHERE
|
|
url LIKE '%:pattern%'
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-role :? :1
|
|
-- :doc selects existing role records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM roles
|
|
WHERE
|
|
name LIKE '%:pattern%'
|
|
ORDER BY roles.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100")
|
|
|
|
-- :name search-strings-team :? :1
|
|
-- :doc selects existing team records having any string field matching `:pattern` by substring match
|
|
SELECT * FROM teams
|
|
WHERE
|
|
name LIKE '%:pattern%'
|
|
ORDER BY teams.name
|
|
--~ (if (:offset params) "OFFSET :offset ")
|
|
--~ (if (:limit params) "LIMIT :limit" "LIMIT 100") |