Files
reloading-manager/backend/models/loads.sql
Ron Rise 0f915ccd82
Some checks failed
🧪 ✨ Unit Tests Workflow / 🧪 📜 JavaScript Tests (push) Successful in 1m23s
🧪 ✨ Unit Tests Workflow / 🧪 🐹 GolangCI-Lint (push) Successful in 1m32s
🧪 ✨ Unit Tests Workflow / 🔍 🐹 Go Tests (push) Successful in 3m35s
🏗️ ✨ Build Workflow / 🖼️ 🔨 Build Frontend (push) Successful in 6m11s
🏗️ ✨ Build Workflow / 🖥️ 🔨 Build Backend (push) Successful in 6m47s
🏗️ ✨ Build Workflow / 🚀 ✨ Deploy Application (push) Failing after 53s
happy monday _ bleh _ (#9)
Reviewed-on: Siteworxpro/reloading-manager#9
Co-authored-by: Ron Rise <ron@siteworxpro.com>
Co-committed-by: Ron Rise <ron@siteworxpro.com>
2025-06-11 01:43:53 +00:00

125 lines
4.2 KiB
SQL

-- name: GetCartridgeById :one
select c.id as id, c.name, c.meta
from cartridges c
where id = $1;
-- name: GetCartridges :many
select c.id as id, c.name, c.meta
from cartridges c
order by c.name;
-- name: CreateCartridge :one
insert into cartridges (name, meta)
values ($1, $2)
returning id;
-- name: DeleteCartridge :exec
delete
from cartridges
where id = $1;
-- name: DeleteLoad :exec
delete from loads
where id = $1;
-- name: UpdateLoad :exec
update loads set
cartridge_id = $1,
col = $2,
powder_id = $3,
powder_gr = $4,
primer_id = $5,
bullet_id = $6,
photo = $7,
meta = $8
where id = $9;
-- name: CreateLoad :one
insert into loads (cartridge_id, col, powder_id, powder_gr, primer_id, bullet_id, photo, meta)
values ($1, $2, $3, $4, $5, $6, $7, $8)
returning id;
-- name: GetLoadById :one
select l.id as id,
l.photo as photo,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
l.col,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
l.powder_gr,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join powders p on l.powder_id = p.id
join primers pr on l.primer_id = pr.id
where l.id = $1;
-- name: TotalLoads :one
select count(*)
from loads;
-- name: GetLoads :many
select l.id as id,
l.col,
l.powder_gr,
c.id as cartridge_id,
c.name as cartridge_name,
c.meta as cartridge_meta,
p.id as powder_id,
p.name as powder_name,
p.meta as powder_meta,
p_m.name as powder_manufacturer_name,
p_m.url as powder_manufacturer_url,
pr.id as primer_id,
pr.name as primer_name,
pr.meta as primer_meta,
pr_m.name as primer_manufacturer_name,
pr_m.url as primer_manufacturer_url,
b.id as bullet_id,
b.name as bullet_name,
b.meta as bullet_meta,
b.weight as bullet_weight,
b.diameter as bullet_diameter,
b_m.name as bullet_manufacturer_name,
b_m.url as bullet_manufacturer_url
from public.loads l
join cartridges c on l.cartridge_id = c.id
join bullets b on l.bullet_id = b.id
join manufacturers b_m on b.manufacturer_id = b_m.id
join powders p on l.powder_id = p.id
join manufacturers p_m on p.manufacturer_id = p_m.id
join primers pr on l.primer_id = pr.id
join manufacturers pr_m on pr.manufacturer_id = pr_m.id
where 1 = 1
-- Loose Search By Name
AND (CASE WHEN @search_cartridge::bool THEN lower(c.name) like lower(@cartridge) ELSE TRUE END)
AND (CASE WHEN @search_bullet::bool THEN lower(b.name) like lower(@bullet) ELSE TRUE END)
AND (CASE WHEN @search_bullet_manufacturer::bool THEN lower(b_m.name) like lower(@bullet_manufacturer) ELSE TRUE END)
AND (CASE WHEN @search_primer::bool THEN lower(pr.name) like lower(@primer) ELSE TRUE END)
AND (CASE WHEN @search_primer_manufacturer::bool THEN lower(pr_m.name) like lower(@prime_manufacturer) ELSE TRUE END)
AND (CASE WHEN @search_powder::bool THEN lower(p.name) like lower(@powder) ELSE TRUE END)
AND (CASE WHEN @search_powder_manufacturer::bool THEN lower(p_m.name) like lower(@powder_manufacturer) ELSE TRUE END)
-- Exact Search By ID
AND (CASE WHEN @search_cartridge_id::bool THEN c.id = @cartridge_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_bullet_id::bool THEN b.id = @bullet_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_primer_id::bool THEN pr.id = @primer_id::uuid ELSE TRUE END)
AND (CASE WHEN @search_powder_id::bool THEN p.id = @powder_id::uuid ELSE TRUE END)
order by (case
when @order_by = 'cartridge_name' then c.name
when @order_by = 'bullet_name' then b.name
when @order_by = 'bullet_manufacturer_name' then b_m.name
when @order_by = 'primer_manufacturer_name' then pr_m.name
when @order_by = 'powder_manufacturer_name' then p_m.name
when @order_by::text = 'powder_gr' then l.powder_gr
end)
limit $1 offset $2;