-- 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;