Yimaru-BackEnd/db/query/branch.sql

109 lines
3.4 KiB
SQL

-- -- name: CreateBranch :one
-- INSERT INTO branches (
-- name,
-- location,
-- wallet_id,
-- branch_manager_id,
-- company_id,
-- is_self_owned,
-- profit_percent
-- )
-- VALUES ($1, $2, $3, $4, $5, $6, $7)
-- RETURNING *;
-- -- name: CreateSupportedOperation :one
-- INSERT INTO supported_operations (name, description)
-- VALUES ($1, $2)
-- RETURNING *;
-- -- name: CreateBranchOperation :one
-- INSERT INTO branch_operations (operation_id, branch_id)
-- VALUES ($1, $2)
-- RETURNING *;
-- -- name: CreateBranchCashier :one
-- INSERT INTO branch_cashiers (user_id, branch_id)
-- VALUES ($1, $2)
-- RETURNING *;
-- -- name: GetAllBranches :many
-- SELECT *
-- FROM branch_details
-- WHERE (
-- company_id = sqlc.narg('company_id')
-- OR sqlc.narg('company_id') IS NULL
-- )
-- AND (
-- is_active = sqlc.narg('is_active')
-- OR sqlc.narg('is_active') IS NULL
-- )
-- AND (
-- branch_manager_id = sqlc.narg('branch_manager_id')
-- OR sqlc.narg('branch_manager_id') IS NULL
-- )
-- AND (
-- name ILIKE '%' || sqlc.narg('query') || '%'
-- OR location ILIKE '%' || sqlc.narg('query') || '%'
-- OR sqlc.narg('query') IS NULL
-- )
-- AND (
-- created_at > sqlc.narg('created_before')
-- OR sqlc.narg('created_before') IS NULL
-- )
-- AND (
-- created_at < sqlc.narg('created_after')
-- OR sqlc.narg('created_after') IS NULL
-- );
-- -- name: GetBranchByID :one
-- SELECT *
-- FROM branch_details
-- WHERE id = $1;
-- -- name: GetBranchByCompanyID :many
-- SELECT *
-- FROM branch_details
-- WHERE company_id = $1;
-- -- name: GetBranchByManagerID :many
-- SELECT *
-- FROM branch_details
-- WHERE branch_manager_id = $1;
-- -- name: SearchBranchByName :many
-- SELECT *
-- FROM branch_details
-- WHERE name ILIKE '%' || $1 || '%'
-- AND (
-- company_id = sqlc.narg('company_id')
-- OR sqlc.narg('company_id') IS NULL
-- );
-- -- name: GetAllSupportedOperations :many
-- SELECT *
-- FROM supported_operations;
-- -- name: GetBranchOperations :many
-- SELECT branch_operations.*,
-- supported_operations.name,
-- supported_operations.description
-- FROM branch_operations
-- JOIN supported_operations ON branch_operations.operation_id = supported_operations.id
-- WHERE branch_operations.branch_id = $1;
-- -- name: GetBranchByCashier :one
-- SELECT branches.*
-- FROM branch_cashiers
-- JOIN branches ON branch_cashiers.branch_id = branches.id
-- WHERE branch_cashiers.user_id = $1;
-- -- name: UpdateBranch :one
-- UPDATE branches
-- SET name = COALESCE(sqlc.narg(name), name),
-- location = COALESCE(sqlc.narg(location), location),
-- branch_manager_id = COALESCE(sqlc.narg(branch_manager_id), branch_manager_id),
-- company_id = COALESCE(sqlc.narg(company_id), company_id),
-- is_self_owned = COALESCE(sqlc.narg(is_self_owned), is_self_owned),
-- is_active = COALESCE(sqlc.narg(is_active), is_active),
-- profit_percent = COALESCE(sqlc.narg(profit_percent), profit_percent),
-- updated_at = CURRENT_TIMESTAMP
-- WHERE id = $1
-- RETURNING *;
-- -- name: DeleteBranch :exec
-- DELETE FROM branches
-- WHERE id = $1;
-- -- name: DeleteBranchOperation :exec
-- DELETE FROM branch_operations
-- WHERE operation_id = $1
-- AND branch_id = $2;
-- -- name: DeleteBranchCashier :exec
-- DELETE FROM branch_cashiers
-- WHERE user_id = $1;