-- name: CreateCompany :one INSERT INTO companies ( name, slug, admin_id, wallet_id, deducted_percentage, is_active ) VALUES ($1, $2, $3, $4, $5, $6) 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: GetCompanyUsingSlug :one SELECT * FROM companies WHERE slug = $1; -- name: SearchCompanyByName :many SELECT * FROM companies_details WHERE name ILIKE '%' || $1 || '%'; -- name: UpdateCompany :exec 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 ), slug = COALESCE(sqlc.narg(slug), slug), updated_at = CURRENT_TIMESTAMP WHERE id = $1; -- name: DeleteCompany :exec DELETE FROM companies WHERE id = $1;