wip: currently rewriting the project as a full stack application tangled.org/kacaii.dev/sigo
gleam
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

:art: lowercase all sql code

Kacaii 61f7a9ea 65b2848f

+392 -392
+2 -2
dev/app_dev/sql/soft_truncate_user_account.sql
··· 1 - DELETE FROM public.user_account 2 - WHERE registration != '000'; 1 + delete from public.user_account 2 + where registration != '000';
+1 -1
dev/app_dev/sql/truncate_brigade.sql
··· 1 - TRUNCATE TABLE public.brigade CASCADE; 1 + truncate table public.brigade cascade;
+1 -1
dev/app_dev/sql/truncate_occurrence.sql
··· 1 - TRUNCATE TABLE public.occurrence CASCADE; 1 + truncate table public.occurrence cascade;
+82 -82
priv/sql/create/functions.sql
··· 1 - BEGIN; 1 + begin; 2 2 3 3 -- DROP ------------------------------------------------------------------------ 4 - DROP FUNCTION IF EXISTS public.query_crew_members; 5 - DROP FUNCTION IF EXISTS public.assign_brigade_members; 6 - DROP FUNCTION IF EXISTS public.replace_brigade_members; 7 - DROP FUNCTION IF EXISTS public.assign_occurrence_brigades; 8 - DROP FUNCTION IF EXISTS public.replace_occurrence_brigades; 4 + drop function if exists public.query_crew_members; 5 + drop function if exists public.assign_brigade_members; 6 + drop function if exists public.replace_brigade_members; 7 + drop function if exists public.assign_occurrence_brigades; 8 + drop function if exists public.replace_occurrence_brigades; 9 9 10 10 -- CREATE ---------------------------------------------------------------------- 11 11 12 12 --  Returns all users that are in the same brigades as the target user 13 - CREATE OR REPLACE FUNCTION public.query_crew_members(p_user_id UUID) 14 - RETURNS TABLE (member_id UUID, brigade_id UUID) 15 - LANGUAGE plpgsql 16 - STABLE 17 - PARALLEL SAFE 18 - AS $$ 19 - BEGIN 20 - RETURN QUERY 21 - SELECT DISTINCT bm.user_id as member_id, bm.brigade_id as brigade_id 22 - FROM public.brigade_membership AS bm 23 - INNER JOIN public.brigade_membership AS target_bm 24 - ON bm.brigade_id = target_bm.brigade_id 25 - WHERE target_bm.user_id = p_user_id 26 - AND bm.user_id <> p_user_id; 27 - END; 13 + create or replace function public.query_crew_members(p_user_id uuid) 14 + returns table (member_id uuid, brigade_id uuid) 15 + language plpgsql 16 + stable 17 + parallel safe 18 + as $$ 19 + begin 20 + return query 21 + select distinct bm.user_id as member_id, bm.brigade_id as brigade_id 22 + from public.brigade_membership as bm 23 + inner join public.brigade_membership as target_bm 24 + on bm.brigade_id = target_bm.brigade_id 25 + where target_bm.user_id = p_user_id 26 + and bm.user_id <> p_user_id; 27 + end; 28 28 $$; 29 29 30 30 -- 󰮆 Assign members to a brigade 31 - CREATE OR REPLACE FUNCTION public.assign_brigade_members( 32 - p_brigade_id UUID, 33 - p_members_id UUID [] 31 + create or replace function public.assign_brigade_members( 32 + p_brigade_id uuid, 33 + p_members_id uuid [] 34 34 ) 35 - RETURNS TABLE (inserted_user_id UUID) 36 - LANGUAGE plpgsql 37 - AS $$ 38 - BEGIN 39 - RETURN QUERY 40 - INSERT INTO public.brigade_membership AS bm 35 + returns table (inserted_user_id uuid) 36 + language plpgsql 37 + as $$ 38 + begin 39 + return query 40 + insert into public.brigade_membership as bm 41 41 (brigade_id, user_id) 42 - SELECT 42 + select 43 43 p_brigade_id, 44 44 member_id 45 - FROM unnest(p_members_id) as member_id 46 - ON CONFLICT (brigade_id, user_id) 47 - DO NOTHING 48 - RETURNING user_id; 49 - END; 45 + from unnest(p_members_id) as member_id 46 + on conflict (brigade_id, user_id) 47 + do nothing 48 + returning user_id; 49 + end; 50 50 $$; 51 51 52 52 53 53 -- 󰮆 Replace assigned members from a brigade 54 - CREATE OR REPLACE FUNCTION public.replace_brigade_members( 55 - p_brigade_id UUID, 56 - p_members_id UUID [] 54 + create or replace function public.replace_brigade_members( 55 + p_brigade_id uuid, 56 + p_members_id uuid [] 57 57 ) 58 - RETURNS TABLE (inserted_user_id UUID) 59 - LANGUAGE plpgsql 60 - AS $$ 61 - BEGIN 58 + returns table (inserted_user_id uuid) 59 + language plpgsql 60 + as $$ 61 + begin 62 62 --  Remove all current members 63 - DELETE FROM public.brigade_membership AS bm 64 - WHERE bm.brigade_id = p_brigade_id; 63 + delete from public.brigade_membership as bm 64 + where bm.brigade_id = p_brigade_id; 65 65 66 - -- Assign the new ones 67 - RETURN QUERY 68 - SELECT b.inserted_user_id 69 - FROM public.assign_brigade_members(p_brigade_id, p_members_id) AS b; 70 - END; 66 + --  Assign the new ones 67 + return query 68 + select b.inserted_user_id 69 + from public.assign_brigade_members(p_brigade_id, p_members_id) as b; 70 + end; 71 71 $$; 72 72 73 73 74 74 -- 󰮆 Assign brigades to a occurrence 75 - CREATE OR REPLACE FUNCTION public.assign_occurrence_brigades( 76 - p_occurrence_id UUID, 77 - p_brigades_id UUID [] 75 + create or replace function public.assign_occurrence_brigades( 76 + p_occurrence_id uuid, 77 + p_brigades_id uuid [] 78 78 ) 79 - RETURNS TABLE (inserted_brigade_id UUID) 80 - LANGUAGE plpgsql 81 - AS $$ 82 - BEGIN 83 - RETURN QUERY 84 - INSERT INTO public.occurrence_brigade AS oc 79 + returns table (inserted_brigade_id uuid) 80 + language plpgsql 81 + as $$ 82 + begin 83 + return query 84 + insert into public.occurrence_brigade as oc 85 85 (occurrence_id, brigade_id) 86 - SELECT 86 + select 87 87 p_occurrence_id, 88 88 brigade_id 89 - FROM unnest(p_brigades_id) as brigade_id 90 - ON CONFLICT (occurrence_id, brigade_id) 91 - DO NOTHING 92 - RETURNING brigade_id; 93 - END; 89 + from unnest(p_brigades_id) as brigade_id 90 + on conflict (occurrence_id, brigade_id) 91 + do nothing 92 + returning brigade_id; 93 + end; 94 94 $$; 95 95 96 96 97 - -- 󰮆 Replace assigned brigades from a occurrence 98 - CREATE OR REPLACE FUNCTION public.replace_occurrence_brigades( 99 - p_occurrence_id UUID, 100 - p_brigades_id UUID [] 97 + -- 󰮆 replace assigned brigades from a occurrence 98 + create or replace function public.replace_occurrence_brigades( 99 + p_occurrence_id uuid, 100 + p_brigades_id uuid [] 101 101 ) 102 - RETURNS TABLE (inserted_brigade_id UUID) 103 - LANGUAGE plpgsql 104 - AS $$ 105 - BEGIN 106 - --  Remove all current assigned brigades 107 - DELETE FROM public.occurrence_brigade AS ob 108 - WHERE ob.occurrence_id = p_occurrence_id; 102 + returns table (inserted_brigade_id uuid) 103 + language plpgsql 104 + as $$ 105 + begin 106 + --  Remove all current assigned brigades 107 + delete from public.occurrence_brigade as ob 108 + where ob.occurrence_id = p_occurrence_id; 109 109 110 - --  Assign the new ones 111 - RETURN QUERY 112 - SELECT o.inserted_brigade_id 113 - FROM public.assign_occurrence_brigades(p_occurrence_id, p_brigades_id) AS o; 114 - END; 110 + --  Assign the new ones 111 + return query 112 + select o.inserted_brigade_id 113 + from public.assign_occurrence_brigades(p_occurrence_id, p_brigades_id) as o; 114 + end; 115 115 $$; 116 116 117 - COMMIT; 117 + commit;
+81 -81
priv/sql/create/tables.sql
··· 1 - BEGIN; 1 + begin; 2 2 3 3 -- 󱈤 TYPES -------------------------------------------------------------------- 4 4 5 - CREATE TYPE public.user_role_enum AS ENUM ( 5 + create type public.user_role_enum as enum ( 6 6 'admin', 7 7 'analyst', 8 8 'firefighter', ··· 11 11 'sargeant' 12 12 ); 13 13 14 - CREATE TYPE public.notification_type_enum AS ENUM ( 14 + create type public.notification_type_enum as enum ( 15 15 'fire', 16 16 'emergency', 17 17 'traffic', 18 18 'other' 19 19 ); 20 20 21 - CREATE TYPE public.occurrence_category_enum AS ENUM ( 21 + create type public.occurrence_category_enum as enum ( 22 22 'medic_emergency', 23 23 'fire', 24 24 'traffic_accident', 25 25 'other' 26 26 ); 27 27 28 - CREATE TYPE public.occurrence_subcategory_enum AS ENUM ( 28 + create type public.occurrence_subcategory_enum as enum ( 29 29 -- 󰋠 Medic Emergency, 30 30 'heart_stop', 31 31 'pre_hospital_care', ··· 51 51 'injured_animal' 52 52 ); 53 53 54 - CREATE TYPE occurrence_priority_enum AS ENUM ( 54 + create type occurrence_priority_enum as enum ( 55 55 'low', 56 56 'medium', 57 57 'high' ··· 59 59 60 60 -- 󰓶 TABLES ------------------------------------------------------------------- 61 61 62 - CREATE TABLE IF NOT EXISTS public.user_account ( 63 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 64 - user_role USER_ROLE_ENUM NOT NULL, 65 - full_name TEXT NOT NULL, 66 - password_hash TEXT NOT NULL, 67 - registration TEXT UNIQUE NOT NULL, 68 - phone TEXT UNIQUE DEFAULT NULL, 69 - email TEXT NOT NULL UNIQUE, 70 - is_active BOOLEAN NOT NULL DEFAULT TRUE, 71 - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 72 - updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 62 + create table if not exists public.user_account ( 63 + id uuid primary key default uuidv7(), 64 + user_role user_role_enum not null, 65 + full_name text not null, 66 + password_hash text not null, 67 + registration text unique not null, 68 + phone text unique default null, 69 + email text not null unique, 70 + is_active boolean not null default true, 71 + created_at timestamp not null default current_timestamp, 72 + updated_at timestamp not null default current_timestamp 73 73 ); 74 74 75 - CREATE INDEX IF NOT EXISTS idx_user_registration 76 - ON public.user_account (registration); 75 + create index if not exists idx_user_registration 76 + on public.user_account (registration); 77 77 78 78 79 - CREATE TABLE IF NOT EXISTS public.user_notification_preference ( 80 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 81 - user_id UUID NOT NULL REFERENCES public.user_account (id) 82 - ON UPDATE CASCADE ON DELETE CASCADE, 83 - notification_type NOTIFICATION_TYPE_ENUM NOT NULL, 84 - enabled BOOLEAN NOT NULL DEFAULT FALSE, 85 - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 86 - updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 87 - UNIQUE (user_id, notification_type) 79 + create table if not exists public.user_notification_preference ( 80 + id uuid primary key default uuidv7(), 81 + user_id uuid not null references public.user_account (id) 82 + on update cascade on delete cascade, 83 + notification_type notification_type_enum not null, 84 + enabled boolean not null default false, 85 + created_at timestamp not null default current_timestamp, 86 + updated_at timestamp not null default current_timestamp, 87 + unique (user_id, notification_type) 88 88 ); 89 89 90 90 91 - CREATE TABLE IF NOT EXISTS public.brigade ( 92 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 93 - leader_id UUID NOT NULL REFERENCES public.user_account (id) 94 - ON UPDATE CASCADE ON DELETE CASCADE, 95 - vehicle_code TEXT NOT NULL, 96 - brigade_name TEXT NOT NULL, 97 - description TEXT DEFAULT NULL, 98 - is_active BOOLEAN NOT NULL DEFAULT FALSE, 99 - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 100 - updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 91 + create table if not exists public.brigade ( 92 + id uuid primary key default uuidv7(), 93 + leader_id uuid not null references public.user_account (id) 94 + on update cascade on delete cascade, 95 + vehicle_code text not null, 96 + brigade_name text not null, 97 + description text default null, 98 + is_active boolean not null default false, 99 + created_at timestamp not null default current_timestamp, 100 + updated_at timestamp not null default current_timestamp 101 101 ); 102 102 103 - CREATE INDEX IF NOT EXISTS idx_brigade_leader_id 104 - ON public.brigade (leader_id); 103 + create index if not exists idx_brigade_leader_id 104 + on public.brigade (leader_id); 105 105 106 106 107 - CREATE TABLE IF NOT EXISTS public.brigade_membership ( 108 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 109 - brigade_id UUID NOT NULL REFERENCES public.brigade (id) 110 - ON UPDATE CASCADE ON DELETE CASCADE, 111 - user_id UUID NOT NULL REFERENCES public.user_account (id) 112 - ON UPDATE CASCADE ON DELETE CASCADE, 113 - UNIQUE (user_id, brigade_id) 107 + create table if not exists public.brigade_membership ( 108 + id uuid primary key default uuidv7(), 109 + brigade_id uuid not null references public.brigade (id) 110 + on update cascade on delete cascade, 111 + user_id uuid not null references public.user_account (id) 112 + on update cascade on delete cascade, 113 + unique (user_id, brigade_id) 114 114 ); 115 115 116 - CREATE INDEX IF NOT EXISTS idx_brigade_membership_user_id 117 - ON public.brigade_membership (user_id); 116 + create index if not exists idx_brigade_membership_user_id 117 + on public.brigade_membership (user_id); 118 118 119 - CREATE INDEX IF NOT EXISTS idx_brigade_membership_brigade_id 120 - ON public.brigade_membership (brigade_id); 119 + create index if not exists idx_brigade_membership_brigade_id 120 + on public.brigade_membership (brigade_id); 121 121 122 122 123 - CREATE TABLE IF NOT EXISTS public.occurrence ( 124 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 125 - applicant_id UUID NOT NULL REFERENCES public.user_account (id) 126 - ON UPDATE CASCADE ON DELETE CASCADE, 127 - occurrence_category OCCURRENCE_CATEGORY_ENUM NOT NULL, 128 - occurrence_subcategory OCCURRENCE_SUBCATEGORY_ENUM, 129 - priority OCCURRENCE_PRIORITY_ENUM NOT NULL, 130 - description TEXT, 131 - occurrence_location FLOAT [], 132 - reference_point TEXT, 133 - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 134 - arrived_at TIMESTAMP DEFAULT NULL, 135 - updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 136 - resolved_at TIMESTAMP DEFAULT NULL 123 + create table if not exists public.occurrence ( 124 + id uuid primary key default uuidv7(), 125 + applicant_id uuid not null references public.user_account (id) 126 + on update cascade on delete cascade, 127 + occurrence_category occurrence_category_enum not null, 128 + occurrence_subcategory occurrence_subcategory_enum, 129 + priority occurrence_priority_enum not null, 130 + description text, 131 + occurrence_location float [], 132 + reference_point text, 133 + created_at timestamp not null default current_timestamp, 134 + arrived_at timestamp default null, 135 + updated_at timestamp not null default current_timestamp, 136 + resolved_at timestamp default null 137 137 ); 138 138 139 - CREATE INDEX IF NOT EXISTS idx_occurrence_applicant_id 140 - ON public.occurrence (applicant_id); 139 + create index if not exists idx_occurrence_applicant_id 140 + on public.occurrence (applicant_id); 141 141 142 - CREATE INDEX IF NOT EXISTS idx_occurrence_created_at 143 - ON public.occurrence (created_at); 142 + create index if not exists idx_occurrence_created_at 143 + on public.occurrence (created_at); 144 144 145 145 146 - CREATE TABLE IF NOT EXISTS public.occurrence_brigade ( 147 - id UUID PRIMARY KEY DEFAULT UUIDV7(), 148 - occurrence_id UUID NOT NULL REFERENCES public.occurrence (id) 149 - ON UPDATE CASCADE ON DELETE CASCADE, 150 - brigade_id UUID NOT NULL REFERENCES public.brigade (id) 151 - ON UPDATE CASCADE ON DELETE CASCADE, 152 - UNIQUE (occurrence_id, brigade_id) 146 + create table if not exists public.occurrence_brigade ( 147 + id uuid primary key default uuidv7(), 148 + occurrence_id uuid not null references public.occurrence (id) 149 + on update cascade on delete cascade, 150 + brigade_id uuid not null references public.brigade (id) 151 + on update cascade on delete cascade, 152 + unique (occurrence_id, brigade_id) 153 153 ); 154 154 155 - CREATE INDEX IF NOT EXISTS idx_occurrence_brigade_occurrence_id 156 - ON public.occurrence_brigade (occurrence_id); 155 + create index if not exists idx_occurrence_brigade_occurrence_id 156 + on public.occurrence_brigade (occurrence_id); 157 157 158 - CREATE INDEX IF NOT EXISTS idx_occurrence_brigade_brigade_id 159 - ON public.occurrence_brigade (brigade_id); 158 + create index if not exists idx_occurrence_brigade_brigade_id 159 + on public.occurrence_brigade (brigade_id); 160 160 161 - COMMIT; 161 + commit;
+18 -18
priv/sql/create/triggers.sql
··· 1 1 --  Sets default user notification preferences when inserting a new one 2 - CREATE OR REPLACE FUNCTION public.set_default_notification_preferences() 3 - RETURNS TRIGGER 4 - LANGUAGE plpgsql 5 - AS $$ 6 - BEGIN 7 - INSERT INTO public.user_notification_preference (user_id, notification_type) 8 - VALUES 9 - (NEW.id, 'fire'), 10 - (NEW.id, 'emergency'), 11 - (NEW.id, 'traffic'), 12 - (NEW.id, 'other') 13 - ON CONFLICT (user_id, notification_type) DO NOTHING; 2 + create or replace function public.set_default_notification_preferences() 3 + returns trigger 4 + language plpgsql 5 + as $$ 6 + begin 7 + insert into public.user_notification_preference (user_id, notification_type) 8 + values 9 + (new.id, 'fire'), 10 + (new.id, 'emergency'), 11 + (new.id, 'traffic'), 12 + (new.id, 'other') 13 + on conflict (user_id, notification_type) do nothing; 14 14 15 - RETURN NEW; 16 - END; 15 + return new; 16 + end; 17 17 $$; 18 18 19 - CREATE OR REPLACE TRIGGER tgr_default_notification_preferences 20 - AFTER INSERT ON public.user_account 21 - FOR EACH ROW 22 - EXECUTE FUNCTION public.set_default_notification_preferences(); 19 + create or replace trigger tgr_default_notification_preferences 20 + after insert on public.user_account 21 + for each row 22 + execute function public.set_default_notification_preferences();
+15 -15
priv/sql/create/views.sql
··· 1 - CREATE OR REPLACE VIEW vw_count_active_occurrences AS 2 - SELECT COUNT(oc.id) AS count 3 - FROM public.occurrence AS oc 4 - WHERE oc.resolved_at IS NULL; 1 + create or replace view vw_count_active_occurrences as 2 + select count(oc.id) as count 3 + from public.occurrence as oc 4 + where oc.resolved_at is null; 5 5 6 6 ----------------------------------------------------- 7 - CREATE OR REPLACE VIEW vw_count_recent_occurrences AS 8 - SELECT COUNT(oc.id) AS count 9 - FROM public.occurrence AS oc 10 - WHERE oc.created_at >= (NOW() - '1 day'::INTERVAL); 7 + create or replace view vw_count_recent_occurrences as 8 + select count(oc.id) as count 9 + from public.occurrence as oc 10 + where oc.created_at >= (now() - '1 day'::interval); 11 11 12 12 ---------------------------------------------------- 13 - CREATE OR REPLACE VIEW vw_count_total_occurrences AS 14 - SELECT COUNT(oc.id) AS count 15 - FROM public.occurrence AS oc; 13 + create or replace view vw_count_total_occurrences as 14 + select count(oc.id) as count 15 + from public.occurrence as oc; 16 16 17 17 ------------------------------------------------------ 18 - CREATE OR REPLACE VIEW vw_count_active_brigades AS 19 - SELECT COUNT(id) 20 - FROM public.brigade 21 - WHERE is_active = TRUE; 18 + create or replace view vw_count_active_brigades as 19 + select count(id) 20 + from public.brigade 21 + where is_active = true;
+18 -18
priv/sql/drop.sql
··· 1 1 -- VIEWS ----------------------------------------------------------------------- 2 - DROP VIEW IF EXISTS vw_count_active_occurrences; 3 - DROP VIEW IF EXISTS vw_count_recent_occurrences; 4 - DROP VIEW IF EXISTS vw_count_total_occurrences; 5 - DROP VIEW IF EXISTS vw_count_active_brigades; 2 + drop view if exists vw_count_active_occurrences; 3 + drop view if exists vw_count_recent_occurrences; 4 + drop view if exists vw_count_total_occurrences; 5 + drop view if exists vw_count_active_brigades; 6 6 7 7 -- TRIGGERS -------------------------------------------------------------------- 8 - DROP TRIGGER IF EXISTS tgr_default_notification_preferences 9 - ON user_account; 10 - DROP FUNCTION IF EXISTS public.set_default_notification_preferences; 8 + drop trigger if exists tgr_default_notification_preferences 9 + on user_account; 10 + drop function if exists public.set_default_notification_preferences; 11 11 12 12 -- pgt-ignore-start lint/safety/banDropTable: We are resetting the Database 13 - DROP TABLE IF EXISTS public.occurrence_brigade; 14 - DROP TABLE IF EXISTS public.brigade_membership; 15 - DROP TABLE IF EXISTS public.occurrence; 16 - DROP TABLE IF EXISTS public.brigade; 17 - DROP TABLE IF EXISTS public.user_notification_preference; 18 - DROP TABLE IF EXISTS public.user_account; 13 + drop table if exists public.occurrence_brigade; 14 + drop table if exists public.brigade_membership; 15 + drop table if exists public.occurrence; 16 + drop table if exists public.brigade; 17 + drop table if exists public.user_notification_preference; 18 + drop table if exists public.user_account; 19 19 -- pgt-ignore-end lint/safety/banDropTable 20 20 21 21 -- TYPES ----------------------------------------------------------------------- 22 - DROP TYPE IF EXISTS public.NOTIFICATION_TYPE_ENUM; 23 - DROP TYPE IF EXISTS public.OCCURRENCE_CATEGORY_ENUM; 24 - DROP TYPE IF EXISTS public.OCCURRENCE_SUBCATEGORY_ENUM; 25 - DROP TYPE IF EXISTS public.USER_ROLE_ENUM; 26 - DROP TYPE IF EXISTS public.OCCURRENCE_PRIORITY_ENUM; 22 + drop type if exists public.notification_type_enum; 23 + drop type if exists public.occurrence_category_enum; 24 + drop type if exists public.occurrence_subcategory_enum; 25 + drop type if exists public.user_role_enum; 26 + drop type if exists public.occurrence_priority_enum;
+2 -2
priv/sql/query/dev_list_brigades.sql
··· 1 - SELECT 1 + select 2 2 b.id, 3 3 b.brigade_name, 4 4 b.description 5 - FROM public.brigade AS b; 5 + from public.brigade as b;
+2 -2
priv/sql/query/dev_list_user_accounts.sql
··· 1 - SELECT 1 + select 2 2 u.id, 3 3 u.full_name, 4 4 u.registration, 5 5 u.user_role 6 - FROM public.user_account AS u; 6 + from public.user_account as u;
+4 -4
setup.cfg
··· 2 2 dialect = postgres 3 3 4 4 [sqlfluff:rules:capitalisation.keywords] 5 - capitalisation_policy = upper 5 + capitalisation_policy = lower 6 6 7 7 [sqlfluff:rules:capitalisation.literals] 8 - capitalisation_policy = upper 8 + capitalisation_policy = lower 9 9 10 10 [sqlfluff:rules:capitalisation.types] 11 - extended_capitalisation_policy = upper 11 + extended_capitalisation_policy = lower 12 12 13 13 [sqlfluff:rules:capitalisation.functions] 14 - extended_capitalisation_policy = upper 14 + extended_capitalisation_policy = lower 15 15
+5 -5
src/app/domain/admin/sql/admin_update_user.sql
··· 1 1 --  Update an user's information as admin 2 - UPDATE public.user_account AS u 3 - SET 2 + update public.user_account as u 3 + set 4 4 full_name = $2, 5 5 email = $3, 6 6 user_role = $4, 7 7 registration = $5, 8 8 is_active = $6, 9 - updated_at = CURRENT_TIMESTAMP 10 - WHERE u.id = $1 11 - RETURNING 9 + updated_at = current_timestamp 10 + where u.id = $1 11 + returning 12 12 u.id, 13 13 u.full_name, 14 14 u.email,
+2 -2
src/app/domain/admin/sql/count_total_users.sql
··· 1 1 -- 󰆙 Count the total number of users in our system 2 - SELECT COUNT(u.id) AS total 3 - FROM public.user_account AS u; 2 + select count(u.id) as total 3 + from public.user_account as u;
+2 -2
src/app/domain/brigade/sql/assign_brigade_members.sql
··· 1 1 --  Assign a list of members to a brigade 2 - SELECT b.inserted_user_id 3 - FROM public.assign_brigade_members($1, $2) AS b; 2 + select b.inserted_user_id 3 + from public.assign_brigade_members($1, $2) as b;
+3 -3
src/app/domain/brigade/sql/delete_brigade_by_id.sql
··· 1 1 --  Remove a brigade from the DataBase 2 - DELETE FROM public.brigade AS b 3 - WHERE b.id = $1 4 - RETURNING 2 + delete from public.brigade as b 3 + where b.id = $1 4 + returning 5 5 b.id, 6 6 b.brigade_name;
+3 -3
src/app/domain/brigade/sql/insert_new_brigade.sql
··· 1 1 --  Register a new brigade into the database 2 - INSERT INTO public.brigade AS b ( 2 + insert into public.brigade as b ( 3 3 leader_id, 4 4 brigade_name, 5 5 vehicle_code, 6 6 is_active 7 - ) VALUES ( 7 + ) values ( 8 8 $1, 9 9 $2, 10 10 $3, 11 11 $4 12 - ) RETURNING 12 + ) returning 13 13 b.id, 14 14 b.created_at;
+5 -5
src/app/domain/brigade/sql/query_all_brigades.sql
··· 1 1 -- 󱉯 Find all registered brigades 2 - SELECT 2 + select 3 3 b.id, 4 4 b.brigade_name, 5 - u.full_name AS leader_name, 5 + u.full_name as leader_name, 6 6 b.is_active 7 - FROM public.brigade AS b 8 - LEFT JOIN public.user_account AS u 9 - ON b.leader_id = u.id; 7 + from public.brigade as b 8 + left join public.user_account as u 9 + on b.leader_id = u.id;
+6 -6
src/app/domain/brigade/sql/query_brigade_info.sql
··· 1 1 -- 󰡦 Find details about a specific brigade 2 - SELECT 2 + select 3 3 b.id, 4 4 b.brigade_name, 5 - u.id AS leader_name, 5 + u.id as leader_name, 6 6 b.is_active 7 - FROM public.brigade AS b 8 - INNER JOIN public.user_account AS u 9 - ON b.leader_id = u.id 10 - WHERE b.id = $1; 7 + from public.brigade as b 8 + inner join public.user_account as u 9 + on b.leader_id = u.id 10 + where b.id = $1;
+5 -5
src/app/domain/brigade/sql/query_members_id.sql
··· 1 1 --  Find the id of all members assigned a specific brigade 2 - SELECT u.id 3 - FROM public.user_account AS u 4 - INNER JOIN public.brigade_membership AS bm 5 - ON u.id = bm.user_id 6 - WHERE bm.brigade_id = $1; 2 + select u.id 3 + from public.user_account as u 4 + inner join public.brigade_membership as bm 5 + on u.id = bm.user_id 6 + where bm.brigade_id = $1;
+5 -5
src/app/domain/brigade/sql/query_members_info.sql
··· 1 1 --  Find all members of a brigade 2 - SELECT 2 + select 3 3 u.id, 4 4 u.full_name, 5 5 u.user_role 6 - FROM public.user_account AS u 7 - INNER JOIN public.brigade_membership AS bm 8 - ON u.id = bm.user_id 9 - WHERE bm.brigade_id = $1; 6 + from public.user_account as u 7 + inner join public.brigade_membership as bm 8 + on u.id = bm.user_id 9 + where bm.brigade_id = $1;
+2 -2
src/app/domain/brigade/sql/replace_brigade_members.sql
··· 1 1 --  Replace all brigade members 2 - SELECT b.inserted_user_id 3 - FROM public.replace_brigade_members($1, $2) AS b; 2 + select b.inserted_user_id 3 + from public.replace_brigade_members($1, $2) as b;
+5 -5
src/app/domain/brigade/sql/update_brigade_status.sql
··· 1 1 --  Set the brigade is_active status to ON or OFF 2 - UPDATE public.brigade AS b 3 - SET 2 + update public.brigade as b 3 + set 4 4 is_active = $2, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE b.id = $1 7 - RETURNING 5 + updated_at = current_timestamp 6 + where b.id = $1 7 + returning 8 8 b.id, 9 9 b.is_active, 10 10 b.updated_at;
+9 -9
src/app/domain/dashboard/sql/query_dashboard_stats.sql
··· 1 1 -- 󱘟 Retrieve stats for the Dashboard page 2 - SELECT 3 - (SELECT count FROM public.vw_count_active_brigades) 4 - AS active_brigades_count, 5 - (SELECT count FROM public.vw_count_total_occurrences) 6 - AS total_occurrences_count, 7 - (SELECT count FROM public.vw_count_active_occurrences) 8 - AS active_occurrences_count, 9 - (SELECT count FROM public.vw_count_recent_occurrences) 10 - AS recent_occurrences_count; 2 + select 3 + (select count from public.vw_count_active_brigades) 4 + as active_brigades_count, 5 + (select count from public.vw_count_total_occurrences) 6 + as total_occurrences_count, 7 + (select count from public.vw_count_active_occurrences) 8 + as active_occurrences_count, 9 + (select count from public.vw_count_recent_occurrences) 10 + as recent_occurrences_count;
+4 -4
src/app/domain/notification/sql/query_active_notifications.sql
··· 1 1 --  Find the active notifications from an user 2 - SELECT np.notification_type 3 - FROM public.user_notification_preference AS np 4 - WHERE 2 + select np.notification_type 3 + from public.user_notification_preference as np 4 + where 5 5 np.user_id = $1 6 - AND np.enabled = TRUE; 6 + and np.enabled = true;
+3 -3
src/app/domain/notification/sql/query_notification_preferences.sql
··· 1 1 --  Find the notification preferences for an user 2 - SELECT 2 + select 3 3 np.notification_type, 4 4 np.enabled 5 - FROM public.user_notification_preference AS np 6 - WHERE np.user_id = $1; 5 + from public.user_notification_preference as np 6 + where np.user_id = $1;
+6 -6
src/app/domain/notification/sql/update_notification_preferences.sql
··· 1 1 --  Update user notification preference 2 - UPDATE public.user_notification_preference AS np 3 - SET 2 + update public.user_notification_preference as np 3 + set 4 4 enabled = $3, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE 5 + updated_at = current_timestamp 6 + where 7 7 np.user_id = $1 8 - AND np.notification_type = $2 9 - RETURNING 8 + and np.notification_type = $2 9 + returning 10 10 new.notification_type, 11 11 new.enabled;
+2 -2
src/app/domain/occurrence/sql/assign_brigades_to_occurrence.sql
··· 1 1 --  Assign as list of brigades as participants of a occurrence 2 - SELECT ob.inserted_brigade_id 3 - FROM public.assign_occurrence_brigades($1, $2) AS ob; 2 + select ob.inserted_brigade_id 3 + from public.assign_occurrence_brigades($1, $2) as ob;
+3 -3
src/app/domain/occurrence/sql/delete_occurrence_by_id.sql
··· 1 1 --  Remove an occurrence from the database 2 - DELETE FROM public.occurrence AS o 3 - WHERE o.id = $1 4 - RETURNING o.id; 2 + delete from public.occurrence as o 3 + where o.id = $1 4 + returning o.id;
+3 -3
src/app/domain/occurrence/sql/insert_new_occurence.sql
··· 1 1 --  Inserts a new occurrence into the database 2 - INSERT INTO public.occurrence AS o ( 2 + insert into public.occurrence as o ( 3 3 applicant_id, 4 4 occurrence_category, 5 5 occurrence_subcategory, ··· 7 7 description, 8 8 occurrence_location, 9 9 reference_point 10 - ) VALUES ( 10 + ) values ( 11 11 $1, 12 12 $2, 13 13 $3, ··· 16 16 $6, 17 17 $7 18 18 ) 19 - RETURNING 19 + returning 20 20 o.id, 21 21 o.occurrence_category, 22 22 o.priority,
+16 -16
src/app/domain/occurrence/sql/query_occurences_by_applicant.sql
··· 1 1 --  Retrieves all occurrences associated with a user, 2 2 -- including detailed category information and resolution status. 3 - SELECT 3 + select 4 4 o.id, 5 5 o.resolved_at, 6 6 o.priority, 7 7 o.occurrence_category, 8 8 o.occurrence_location, 9 - o.description AS details, 10 - u.full_name AS applicant_name, 9 + o.description as details, 10 + u.full_name as applicant_name, 11 11 o.created_at, 12 12 o.arrived_at, 13 - u.registration AS applicant_registration, 13 + u.registration as applicant_registration, 14 14 o.applicant_id, 15 15 16 16 ( 17 - SELECT JSON_AGG(JSON_BUILD_OBJECT( 17 + select json_agg(json_build_object( 18 18 'id', b.id, 19 19 'brigade_name', b.brigade_name, 20 20 'leader_full_name', leader_u.full_name, 21 21 'vehicle_code', b.vehicle_code 22 - )) FROM public.occurrence_brigade AS ob 23 - INNER JOIN public.brigade AS b 24 - ON ob.brigade_id = b.id 25 - INNER JOIN public.user_account AS leader_u 26 - ON b.leader_id = leader_u.id 27 - WHERE ob.occurrence_id = o.id 28 - ) AS brigade_list 22 + )) from public.occurrence_brigade as ob 23 + inner join public.brigade as b 24 + on ob.brigade_id = b.id 25 + inner join public.user_account as leader_u 26 + on b.leader_id = leader_u.id 27 + where ob.occurrence_id = o.id 28 + ) as brigade_list 29 29 30 - FROM public.occurrence AS o 31 - INNER JOIN public.user_account AS u 32 - ON o.applicant_id = u.id 33 - WHERE o.applicant_id = $1; 30 + from public.occurrence as o 31 + inner join public.user_account as u 32 + on o.applicant_id = u.id 33 + where o.applicant_id = $1;
+6 -6
src/app/domain/occurrence/sql/query_participants.sql
··· 1 1 -- 󰀖 Find all users that participated in a occurrence 2 - SELECT DISTINCT participant.user_id 3 - FROM public.brigade_membership AS participant 4 - INNER JOIN public.occurrence_brigade AS ob 5 - ON participant.brigade_id = ob.brigade_id 6 - WHERE ob.occurrence_id = $1 7 - ORDER BY participant.user_id; 2 + select distinct participant.user_id 3 + from public.brigade_membership as participant 4 + inner join public.occurrence_brigade as ob 5 + on participant.brigade_id = ob.brigade_id 6 + where ob.occurrence_id = $1 7 + order by participant.user_id;
+3 -3
src/app/domain/occurrence/sql/query_recent_occurrences.sql
··· 1 1 --  Find all occurrences from the last 24 hours 2 - SELECT 2 + select 3 3 o.id, 4 4 o.created_at, 5 5 o.description, ··· 7 7 o.occurrence_subcategory, 8 8 o.occurrence_location, 9 9 o.reference_point 10 - FROM public.occurrence AS o 11 - WHERE o.created_at >= (NOW() - '1 day'::INTERVAL); 10 + from public.occurrence as o 11 + where o.created_at >= (now() - '1 day'::interval);
+6 -6
src/app/domain/occurrence/sql/reopen_occurrence.sql
··· 1 1 -- 󰚰 Mark a occurrence as unresolved 2 - UPDATE public.occurrence 3 - SET 4 - resolved_at = NULL, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE id = $1 7 - RETURNING 2 + update public.occurrence 3 + set 4 + resolved_at = null, 5 + updated_at = current_timestamp 6 + where id = $1 7 + returning 8 8 id, 9 9 resolved_at, 10 10 updated_at;
+2 -2
src/app/domain/occurrence/sql/replace_occurrence_brigades.sql
··· 1 1 --  Replace all assigned brigades 2 - SELECT o.inserted_brigade_id 3 - FROM public.assign_occurrence_brigades($1, $2) AS o; 2 + select o.inserted_brigade_id 3 + from public.assign_occurrence_brigades($1, $2) as o;
+6 -6
src/app/domain/occurrence/sql/resolve_occurrence.sql
··· 1 1 -- 󰚰 Mark a occurrence as resolved 2 - UPDATE public.occurrence 3 - SET 4 - resolved_at = CURRENT_TIMESTAMP, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE id = $1 7 - RETURNING 2 + update public.occurrence 3 + set 4 + resolved_at = current_timestamp, 5 + updated_at = current_timestamp 6 + where id = $1 7 + returning 8 8 id, 9 9 resolved_at, 10 10 updated_at;
+1 -1
src/app/domain/role/sql/query_available_user_roles.sql
··· 1 1 --  Find all available user roles 2 - SELECT UNNEST(ENUM_RANGE(NULL::public.USER_ROLE_ENUM)) AS available_role; 2 + select unnest(enum_range(null::public.user_role_enum)) as available_role;
+3 -3
src/app/domain/user/sql/delete_user_by_id.sql
··· 1 1 --  Remove and user from the database 2 - DELETE FROM public.user_account AS u 3 - WHERE u.id = $1 4 - RETURNING u.id, u.full_name; 2 + delete from public.user_account as u 3 + where u.id = $1 4 + returning u.id, u.full_name;
+2 -2
src/app/domain/user/sql/get_complete_user_profiles.sql
··· 1 1 -- 󰀖 Find all users on the database 2 - SELECT 2 + select 3 3 u.id, 4 4 u.full_name, 5 5 u.registration, 6 6 u.email, 7 7 u.user_role, 8 8 u.is_active 9 - FROM public.user_account AS u; 9 + from public.user_account as u;
+3 -3
src/app/domain/user/sql/insert_new_user.sql
··· 1 1 --  Inserts a new user into the database 2 - INSERT INTO public.user_account AS u 2 + insert into public.user_account as u 3 3 ( 4 4 full_name, 5 5 registration, ··· 8 8 password_hash, 9 9 user_role 10 10 ) 11 - VALUES ($1, $2, $3, $4, $5, $6) 12 - RETURNING u.id; 11 + values ($1, $2, $3, $4, $5, $6) 12 + returning u.id;
+4 -4
src/app/domain/user/sql/query_crew_members.sql
··· 1 1 -- 󰢫 Retrieves detailed information about fellow brigade members 2 2 -- for a given user, including their names and role details. 3 - SELECT 3 + select 4 4 u.id, 5 5 u.full_name, 6 6 u.user_role, 7 7 crew.brigade_id 8 - FROM public.query_crew_members($1) AS crew 9 - INNER JOIN public.user_account AS u 10 - ON crew.member_id = u.id; 8 + from public.query_crew_members($1) as crew 9 + inner join public.user_account as u 10 + on crew.member_id = u.id;
+3 -3
src/app/domain/user/sql/query_login_token.sql
··· 1 1 --  Retrieves a user's ID and password hash from their registration 2 2 -- number for authentication purposes. 3 - SELECT 3 + select 4 4 u.id, 5 5 u.password_hash, 6 6 u.user_role 7 - FROM public.user_account AS u 8 - WHERE u.registration = $1; 7 + from public.user_account as u 8 + where u.registration = $1;
+7 -7
src/app/domain/user/sql/query_occurrences_by_participant.sql
··· 1 1 -- 󰡦 Find all occurrences a user participated in 2 - SELECT u.id 3 - FROM public.user_account AS u 4 - INNER JOIN public.brigade_membership AS bm 5 - ON u.id = bm.user_id 6 - INNER JOIN public.occurrence_brigade AS ob 7 - ON bm.brigade_id = ob.brigade_id 8 - WHERE ob.occurrence_id = $1; 2 + select u.id 3 + from public.user_account as u 4 + inner join public.brigade_membership as bm 5 + on u.id = bm.user_id 6 + inner join public.occurrence_brigade as ob 7 + on bm.brigade_id = ob.brigade_id 8 + where ob.occurrence_id = $1;
+3 -3
src/app/domain/user/sql/query_user_brigades.sql
··· 1 1 --  Find all brigades an user is assigned to 2 - SELECT bm.brigade_id 3 - FROM public.brigade_membership AS bm 4 - WHERE bm.user_id = $1; 2 + select bm.brigade_id 3 + from public.brigade_membership as bm 4 + where bm.user_id = $1;
+3 -3
src/app/domain/user/sql/query_user_id_by_registration.sql
··· 1 1 --  Retrieves a user's ID from their registration number. 2 - SELECT u.id 3 - FROM public.user_account AS u 4 - WHERE u.registration = $1; 2 + select u.id 3 + from public.user_account as u 4 + where u.registration = $1;
+3 -3
src/app/domain/user/sql/query_user_name.sql
··· 1 1 --  Retrieves a user's full name by their user ID. 2 - SELECT u.full_name 3 - FROM public.user_account AS u 4 - WHERE u.id = $1; 2 + select u.full_name 3 + from public.user_account as u 4 + where u.id = $1;
+3 -3
src/app/domain/user/sql/query_user_password.sql
··· 1 1 --  Find the password hash from an user 2 - SELECT u.password_hash 3 - FROM public.user_account AS u 4 - WHERE u.id = $1; 2 + select u.password_hash 3 + from public.user_account as u 4 + where u.id = $1;
+3 -3
src/app/domain/user/sql/query_user_profile.sql
··· 1 1 -- 󰀖 Find basic information about an user account 2 - SELECT 2 + select 3 3 u.id, 4 4 u.full_name, 5 5 u.registration, 6 6 u.user_role, 7 7 u.email, 8 8 u.phone 9 - FROM public.user_account AS u 10 - WHERE u.id = $1; 9 + from public.user_account as u 10 + where u.id = $1;
+4 -4
src/app/domain/user/sql/query_user_role.sql
··· 1 1 -- 󰀖 Find user access level 2 - SELECT u.user_role 3 - FROM 4 - public.user_account AS u 5 - WHERE u.id = $1; 2 + select u.user_role 3 + from 4 + public.user_account as u 5 + where u.id = $1;
+4 -4
src/app/domain/user/sql/update_user_password.sql
··· 1 1 --  Set an new value to the password of an user 2 - UPDATE public.user_account 3 - SET 2 + update public.user_account 3 + set 4 4 password_hash = $2, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE id = $1; 5 + updated_at = current_timestamp 6 + where id = $1;
+3 -3
src/app/domain/user/sql/update_user_profile.sql
··· 1 1 --  Update an authenticated user profile 2 - UPDATE public.user_account AS u SET 2 + update public.user_account as u set 3 3 full_name = $2, 4 4 email = $3, 5 5 phone = $4 6 - WHERE u.id = $1 7 - RETURNING 6 + where u.id = $1 7 + returning 8 8 u.full_name, 9 9 u.email, 10 10 u.phone;
+5 -5
src/app/domain/user/sql/update_user_status.sql
··· 1 1 -- 󰚰 Update an user `is_active` field 2 - UPDATE public.user_account AS u 3 - SET 2 + update public.user_account as u 3 + set 4 4 is_active = $2, 5 - updated_at = CURRENT_TIMESTAMP 6 - WHERE u.id = $1 7 - RETURNING u.id, u.is_active; 5 + updated_at = current_timestamp 6 + where u.id = $1 7 + returning u.id, u.is_active;