-- name: CreateCompany :one INSERT INTO companies ( name, admin_id, wallet_id, deducted_percentage ) VALUES ($1, $2, $3, $4) RETURNING *; -- name: GetAllCompanies :many SELECT * FROM companies_details WHERE ( name ILIKE '%' || sqlc.narg('query') || '%' OR admin_first_name ILIKE '%' || sqlc.narg('query') || '%' OR admin_last_name ILIKE '%' || sqlc.narg('query') || '%' OR admin_phone_number 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: GetCompanyByID :one SELECT * FROM companies_details WHERE id = $1; -- name: SearchCompanyByName :many SELECT * FROM companies_details WHERE name ILIKE '%' || $1 || '%'; -- name: UpdateCompany :one UPDATE companies SET name = COALESCE(sqlc.narg(name), name), admin_id = COALESCE(sqlc.narg(admin_id), admin_id), is_active = COALESCE(sqlc.narg(is_active), is_active), deducted_percentage = COALESCE( sqlc.narg(deducted_percentage), deducted_percentage ), updated_at = CURRENT_TIMESTAMP WHERE id = $1 RETURNING *; -- name: DeleteCompany :exec DELETE FROM companies WHERE id = $1;