projectx/internal/db/query/customer.sql
2025-03-21 11:05:42 +08:00

42 lines
1.1 KiB
SQL

-- name: CreateCustomer :one
INSERT INTO customers (id, name, category, source, address, contact_name, contact_phone, created_by)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING *;
-- name: UpdateCustomer :one
UPDATE customers
SET
name = COALESCE(sqlc.narg(name), name),
category = COALESCE(sqlc.narg(category), category),
source = COALESCE(sqlc.narg(source), source),
address = COALESCE(sqlc.narg(address), address),
contact_name = COALESCE(sqlc.narg(contact_name), contact_name),
contact_phone = COALESCE(sqlc.narg(contact_phone), contact_phone),
status = COALESCE(sqlc.narg(status), status),
updated_by = COALESCE(sqlc.narg(updated_by), updated_by),
updated_at = NOW()
WHERE id = $1
RETURNING *;
-- name: GetCustomer :one
SELECT *
FROM customers
WHERE id = $1
LIMIT 1;
-- name: AllCustomers :many
SELECT * FROM customers
WHERE status = 0
ORDER BY id DESC;
-- name: CountCustomers :one
SELECT COUNT(1)
FROM customers
WHERE status = 0;
-- name: ListCustomers :many
SELECT *
FROM customers
WHERE status = 0
ORDER BY id DESC
LIMIT $1 OFFSET $2;