Base Project
This commit is contained in:
29
db/queries/cabinet.sql
Normal file
29
db/queries/cabinet.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- name: GetCabinetByID :one
|
||||
SELECT * FROM cabinets
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListCabinets :many
|
||||
SELECT * FROM cabinets
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: CreateCabinet :one
|
||||
INSERT INTO cabinets (room_id,name, description, created_at)
|
||||
VALUES (
|
||||
sqlc.arg(room_id),
|
||||
sqlc.arg(name),
|
||||
sqlc.arg(description),
|
||||
sqlc.arg(created_at)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateCabinet :one
|
||||
UPDATE cabinets
|
||||
SET name = coalesce(sqlc.arg(name), name),
|
||||
description = coalesce(sqlc.arg(description), description),
|
||||
updated_at = sqlc.arg(updated_at)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteCabinet :exec
|
||||
DELETE FROM cabinets
|
||||
WHERE id = sqlc.arg(id);
|
||||
0
db/queries/permission.sql
Normal file
0
db/queries/permission.sql
Normal file
26
db/queries/roles.sql
Normal file
26
db/queries/roles.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- name: GetRoleByID :one
|
||||
SELECT * FROM roles
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListRoles :many
|
||||
SELECT * FROM roles
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: CreateRole :one
|
||||
INSERT INTO roles (name, description, created_by)
|
||||
VALUES (
|
||||
sqlc.arg(name),
|
||||
sqlc.arg(description),
|
||||
sqlc.arg(created_by))
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateRole :one
|
||||
UPDATE roles
|
||||
SET name = sqlc.arg(name),
|
||||
description = sqlc.arg(description)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteRole :exec
|
||||
DELETE FROM roles
|
||||
WHERE id = sqlc.arg(id);
|
||||
29
db/queries/room.sql
Normal file
29
db/queries/room.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- name: GetRoomByID :one
|
||||
SELECT * FROM rooms
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListRooms :many
|
||||
SELECT * FROM rooms
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: CreateRoom :one
|
||||
INSERT INTO rooms (warehouse_id,name, description, created_at)
|
||||
VALUES (
|
||||
sqlc.arg(warehouse_id),
|
||||
sqlc.arg(name),
|
||||
sqlc.arg(description),
|
||||
sqlc.arg(created_at)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateRoom :one
|
||||
UPDATE rooms
|
||||
SET name = coalesce(sqlc.arg(name), name),
|
||||
description = coalesce(sqlc.arg(description), description),
|
||||
updated_at = sqlc.arg(updated_at)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteRoom :exec
|
||||
DELETE FROM rooms
|
||||
WHERE id = sqlc.arg(id);
|
||||
36
db/queries/user_roles.sql
Normal file
36
db/queries/user_roles.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- name: GetUserRolesByUserID :many
|
||||
SELECT ur.*, r.name AS role_name, r.description AS role_description
|
||||
FROM user_roles ur
|
||||
JOIN roles r ON r.id = ur.role_id
|
||||
WHERE ur.user_id = sqlc.arg(user_id)
|
||||
ORDER BY ur.assigned_at DESC;
|
||||
|
||||
-- name: GetUserRolesByRoleID :many
|
||||
SELECT ur.*, u.username, u.email, u.full_name
|
||||
FROM user_roles ur
|
||||
JOIN users u ON u.id = ur.user_id
|
||||
WHERE ur.role_id = sqlc.arg(role_id)
|
||||
ORDER BY ur.assigned_at DESC;
|
||||
|
||||
-- name: GetUserRole :one
|
||||
SELECT * FROM user_roles
|
||||
WHERE user_id = sqlc.arg(user_id) AND role_id = sqlc.arg(role_id);
|
||||
|
||||
-- name: AssignRoleToUser :one
|
||||
INSERT INTO user_roles (user_id, role_id)
|
||||
VALUES (
|
||||
sqlc.arg(user_id),
|
||||
sqlc.arg(role_id))
|
||||
RETURNING *;
|
||||
|
||||
-- name: RemoveRoleFromUser :exec
|
||||
DELETE FROM user_roles
|
||||
WHERE user_id = sqlc.arg(user_id) AND role_id = sqlc.arg(role_id);
|
||||
|
||||
-- name: RemoveAllRolesFromUser :exec
|
||||
DELETE FROM user_roles
|
||||
WHERE user_id = sqlc.arg(user_id);
|
||||
|
||||
-- name: CountUsersByRoleID :one
|
||||
SELECT COUNT(*) FROM user_roles
|
||||
WHERE role_id = sqlc.arg(role_id);
|
||||
23
db/queries/users.sql
Normal file
23
db/queries/users.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- name: GetUserByID :one
|
||||
SELECT * FROM users
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: GetUserByEmail :one
|
||||
SELECT * FROM users
|
||||
WHERE email = sqlc.arg(email)
|
||||
LIMIT 1;
|
||||
|
||||
-- name: GetUserByUsername :one
|
||||
SELECT * FROM users
|
||||
WHERE username = sqlc.arg(username)
|
||||
LIMIT 1;
|
||||
|
||||
-- name: CreateUser :one
|
||||
INSERT INTO users (username, email, password_hash, full_name, created_by)
|
||||
VALUES (
|
||||
sqlc.arg(username),
|
||||
sqlc.arg(email),
|
||||
sqlc.arg(password_hash),
|
||||
sqlc.arg(full_name),
|
||||
sqlc.arg(created_by))
|
||||
RETURNING id;
|
||||
30
db/queries/warehouse.sql
Normal file
30
db/queries/warehouse.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- name: GetWarehouseByID :one
|
||||
SELECT * FROM warehouses
|
||||
WHERE id = sqlc.arg(id);
|
||||
|
||||
-- name: ListWarehouses :many
|
||||
SELECT * FROM warehouses
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: CreateWarehouse :one
|
||||
INSERT INTO warehouses (name, description, address, created_at)
|
||||
VALUES (
|
||||
sqlc.arg(name),
|
||||
sqlc.arg(description),
|
||||
sqlc.arg(address),
|
||||
sqlc.arg(created_at)
|
||||
)
|
||||
RETURNING *;
|
||||
|
||||
-- name: UpdateWarehouse :one
|
||||
UPDATE warehouses
|
||||
SET name = CASE WHEN sqlc.arg(name) = '' THEN name ELSE sqlc.arg(name) END,
|
||||
description = coalesce(sqlc.arg(description), description),
|
||||
address = coalesce(sqlc.arg(address), address),
|
||||
updated_at = sqlc.arg(updated_at)
|
||||
WHERE id = sqlc.arg(id)
|
||||
RETURNING *;
|
||||
|
||||
-- name: DeleteWarehouse :exec
|
||||
DELETE FROM warehouses
|
||||
WHERE id = sqlc.arg(id);
|
||||
Reference in New Issue
Block a user