-- name: CreateBranch :one INSERT INTO branches (name, location, wallet_id, branch_manager_id, company_id, is_self_owned) VALUES ($1, $2, $3, $4, $5, $6) 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: GetAllBranches :many SELECT * FROM branch_details; -- 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: 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: UpdateBranch :one UPDATE branches SET name = $1, location = $2, branch_manager_id = $3, company_id = $4, is_self_owned = $5 WHERE id = $6 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;