-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9 from acmcsufoss/add-insert-fetch-queries
Added the insert and fetch queries for the defined db
- Loading branch information
Showing
3 changed files
with
206 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,68 +1,158 @@ | ||
-- name: CreateResource :exec | ||
INSERT INTO resources (id, title, content_md, image_url, resource_type, resource_list_id, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?); | ||
INSERT INTO | ||
resource ( | ||
uuid, | ||
title, | ||
content_md, | ||
image_url, | ||
resource_type, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
) | ||
VALUES | ||
(?, ?, ?, ?, ?, ?, ?, ?); | ||
|
||
-- name: CreateResourceList :exec | ||
INSERT INTO resource_lists (title, created_at, updated_at) VALUES (?, ?, ?); | ||
-- name: CreateEvent :exec | ||
INSERT INTO | ||
event ( | ||
uuid, | ||
location, | ||
start_at, | ||
end_at, | ||
is_all_day, | ||
host, | ||
visibility | ||
) | ||
VALUES | ||
(?, ?, ?, ?, ?, ?, ?); | ||
|
||
-- name: CreatePerson :exec | ||
INSERT INTO | ||
person (uuid, name, preferred_pronoun) | ||
VALUES | ||
(?, ?, ?); | ||
|
||
-- name: CreateResourceReference :exec | ||
INSERT INTO resource_references (resource_id, resource_list_id, created_at, updated_at) VALUES (?, ?, ?, ?); | ||
-- name: CreateResourceGroupMapping :exec | ||
INSERT INTO | ||
resource_id_group_id_mapping ( | ||
resource_uuid, | ||
group_uuid, | ||
type, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
) | ||
VALUES | ||
(?, ?, ?, ?, ?, ?); | ||
|
||
-- name: GetResourceList :many | ||
SELECT rr.resource_id, rr.resource_list_id, rr.created_at, rr.updated_at | ||
FROM resource_references rr | ||
JOIN resources r ON rr.resource_id = r.id | ||
JOIN resource_lists rl ON rr.resource_list_id = rl.id | ||
WHERE rl.id = ? | ||
ORDER BY rr.index_in_list ASC; | ||
-- name: CreateGroupResourceMapping :exec | ||
INSERT INTO | ||
group_id_resource_list_mapping ( | ||
group_uuid, | ||
resource_uuid, | ||
index_in_list, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
) | ||
VALUES | ||
(?, ?, ?, ?, ?, ?); | ||
|
||
-- name: AddResource :exec | ||
INSERT INTO resource_references (resource_id, resource_list_id, index_in_list, created_at, updated_at) VALUES (?, ?, ?, ?, ?); | ||
-- name: CreateAnnouncement :exec | ||
INSERT INTO | ||
announcement ( | ||
uuid, | ||
event_groups_group_uuid, | ||
approved_by_list_uuid, | ||
visibility, | ||
announce_at, | ||
discord_channel_id, | ||
discord_message_id | ||
) | ||
VALUES | ||
(?, ?, ?, ?, ?, ?, ?); | ||
|
||
-- name: DeleteResource :exec | ||
DELETE FROM resources WHERE id = ?; | ||
DELETE FROM resource | ||
WHERE | ||
id = ?; | ||
|
||
-- name: CreateEvent :exec | ||
INSERT INTO events (id, location, start_at, duration_ms, is_all_day, host, visibility) VALUES (?, ?, ?, ?, ?, ?, ?); | ||
-- name: GetResource :exec | ||
SELECT | ||
uuid, | ||
title, | ||
content_md, | ||
image_url, | ||
resource_type, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
from | ||
resource | ||
where | ||
uuid = ?; | ||
|
||
-- name: GetEvent :one | ||
-- name: GetEvent :exec | ||
SELECT | ||
r.id, | ||
r.title, | ||
r.content_md, | ||
r.image_url, | ||
r.resource_type, | ||
r.resource_list_id, | ||
r.created_at, | ||
r.updated_at, | ||
e.location, | ||
e.start_at, | ||
e.duration_ms, | ||
e.is_all_day, | ||
e.host, | ||
e.visibility | ||
FROM resources r | ||
INNER JOIN events e ON r.id = e.id | ||
WHERE r.id = ?; | ||
uuid, | ||
location, | ||
start_at, | ||
end_at, | ||
is_all_day, | ||
host, | ||
visibility | ||
from | ||
event | ||
where | ||
uuid = ?; | ||
|
||
-- name: CreateAnnouncement :exec | ||
INSERT INTO announcements (id, event_list_id, approved_by_list_id, visibility, announce_at, discord_channel_id, discord_message_id) VALUES (?, ?, ?, ?, ?, ?, ?); | ||
-- name: GetPerson :exec | ||
SELECT | ||
uuid, | ||
name, | ||
preferred_pronoun | ||
from | ||
person | ||
where | ||
uuid = ?; | ||
|
||
-- name: GetResourceGroupMapping :exec | ||
SELECT | ||
resource_uuid, | ||
group_uuid, | ||
type, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
from | ||
resource_id_group_id_mapping | ||
where | ||
resource_uuid = ?; | ||
|
||
-- name: GetGroupResourceMapping :exec | ||
SELECT | ||
group_uuid, | ||
resource_uuid, | ||
index_in_list, | ||
created_at, | ||
updated_at, | ||
deleted_at | ||
from | ||
group_id_resource_list_mapping | ||
where | ||
group_uuid = ?; | ||
|
||
-- name: GetAnnouncement :one | ||
-- name: GetAnnouncement :exec | ||
SELECT | ||
r.id, | ||
r.title, | ||
r.content_md, | ||
r.image_url, | ||
r.resource_type, | ||
r.resource_list_id, | ||
r.created_at, | ||
r.updated_at, | ||
a.event_list_id, | ||
a.approved_by_list_id, | ||
a.visibility, | ||
a.announce_at, | ||
a.discord_channel_id, | ||
a.discord_message_id | ||
FROM resources r | ||
INNER JOIN announcements a ON r.id = a.id | ||
WHERE r.id = ?; | ||
uuid, | ||
event_groups_group_uuid, | ||
approved_by_list_uuid, | ||
visibility, | ||
announce_at, | ||
discord_channel_id, | ||
discord_message_id | ||
from | ||
announcements | ||
where | ||
uuid = ?; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,65 @@ | ||
-- Language: sqlite | ||
|
||
-- Create the 'resource_mapping' table. | ||
CREATE TABLE IF NOT EXISTS resource_id_group_id_mapping ( | ||
resource_uuid TEXT REFERENCES resource(uuid), | ||
group_uuid TEXT NOT NULL REFERENCES group_resource_list_mapping(uuid), | ||
type TEXT, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
CREATE TABLE | ||
IF NOT EXISTS resource_id_group_id_mapping ( | ||
resource_uuid TEXT REFERENCES resource (uuid), | ||
group_uuid TEXT NOT NULL REFERENCES group_resource_list_mapping (uuid), | ||
type TEXT, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS group_id_resource_list_mapping ( | ||
group_uuid TEXT, | ||
resource_uuid TEXT NOT NULL REFERENCES resource(uuid), | ||
index_in_list INTEGER NOT NULL, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
CREATE TABLE | ||
IF NOT EXISTS group_id_resource_list_mapping ( | ||
group_uuid TEXT, | ||
resource_uuid TEXT NOT NULL REFERENCES resource (uuid), | ||
index_in_list INTEGER NOT NULL, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
|
||
-- Create the 'resource' table. | ||
CREATE TABLE IF NOT EXISTS resource ( | ||
uuid TEXT PRIMARY KEY, | ||
title TEXT NOT NULL, | ||
content_md TEXT NOT NULL, | ||
image_url TEXT, | ||
resource_type TEXT NOT NULL, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
CREATE TABLE | ||
IF NOT EXISTS resource ( | ||
uuid TEXT PRIMARY KEY, | ||
title TEXT NOT NULL, | ||
content_md TEXT NOT NULL, | ||
image_url TEXT, | ||
resource_type TEXT NOT NULL, | ||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, | ||
deleted_at TIMESTAMP DEFAULT NULL, | ||
); | ||
|
||
-- Create the 'events' table which is a table of event resources. | ||
CREATE TABLE IF NOT EXISTS event ( | ||
uuid TEXT PRIMARY KEY REFERENCES resource(uuid), | ||
location TEXT NOT NULL, | ||
start_at NUMBER NOT NULL, -- Start time in UTC milliseconds. | ||
end_at NUMBER NOT NULL, | ||
is_all_day BOOLEAN NOT NULL, | ||
host TEXT NOT NULL, -- Accepts team ID or plain text. | ||
visibility TEXT NOT NULL, -- Accepts 'public' or 'private'. | ||
) | ||
|
||
-- Create the 'person' table which is a table of person resources. | ||
CREATE TABLE IF NOT EXISTS person ( | ||
uuid TEXT REFERENCES resource(uuid), | ||
name TEXT, | ||
preferred_pronoun TEXT | ||
) | ||
|
||
-- Create the 'announcement' table which is a table of announcement resources. | ||
CREATE TABLE IF NOT EXISTS announcement ( | ||
uuid TEXT PRIMARY KEY REFERENCES resource(uuid), | ||
event_groups_group_uuid TEXT REFERENCES resource_group_mapping(resource_uuid), | ||
approved_by_list_uuid TEXT REFERENCES group_id_resource_list_mapping(uuid), | ||
visibility TEXT NOT NULL, -- Accepts 'public' or 'private'. | ||
announce_at INTEGER NOT NULL, -- UTC milliseconds. | ||
discord_channel_id TEXT, -- Discord channel ID. | ||
discord_message_id TEXT, -- Discord message ID. If present, the announcement has been posted. | ||
UNIQUE (id) | ||
) | ||
|
||
|
||
CREATE TABLE | ||
IF NOT EXISTS event ( | ||
uuid TEXT PRIMARY KEY REFERENCES resource (uuid), | ||
location TEXT NOT NULL, | ||
start_at NUMBER NOT NULL, -- Start time in UTC milliseconds. | ||
end_at NUMBER NOT NULL, | ||
is_all_day BOOLEAN NOT NULL, | ||
host TEXT NOT NULL, -- Accepts team ID or plain text. | ||
visibility TEXT NOT NULL, -- Accepts 'public' or 'private'. | ||
) | ||
-- Create the 'person' table which is a table of person resources. | ||
CREATE TABLE | ||
IF NOT EXISTS person ( | ||
uuid TEXT REFERENCES resource (uuid), | ||
name TEXT, | ||
preferred_pronoun TEXT | ||
) | ||
-- Create the 'announcement' table which is a table of announcement resources. | ||
CREATE TABLE | ||
IF NOT EXISTS announcement ( | ||
uuid TEXT PRIMARY KEY REFERENCES resource (uuid), | ||
event_groups_group_uuid TEXT REFERENCES resource_group_mapping (resource_uuid), | ||
approved_by_list_uuid TEXT REFERENCES group_id_resource_list_mapping (uuid), | ||
visibility TEXT NOT NULL, -- Accepts 'public' or 'private'. | ||
announce_at INTEGER NOT NULL, -- UTC milliseconds. | ||
discord_channel_id TEXT, -- Discord channel ID. | ||
discord_message_id TEXT, -- Discord message ID. If present, the announcement has been posted. | ||
UNIQUE (id) | ||
) |