Enhance customer search functionality by adding filters for full name, email, and role.

This commit is contained in:
Mazyar
2026-06-01 10:40:37 +03:30
parent cc6c0e1660
commit 1be07bcb71
3 changed files with 44 additions and 6 deletions
+7 -4
View File
@@ -170,14 +170,17 @@ func (h *Handler) DeleteCustomer(c echo.Context) error {
// ListCustomers lists customers with filters and pagination
// @Summary List customers with filters and pagination
// @Description Retrieve a paginated list of customers with advanced filtering options including search, type, status, company, industry, verification status, and compliance status. Supports sorting and pagination.
// @Description Retrieve a paginated list of customers with filtering by full name, email, company, type, status, and role. Supports sorting and pagination.
// @Tags Admin-Customers
// @Accept json
// @Produce json
// @Param search query string false "Search term to filter customers by name, email, or company name"
// @Param q query string false "Search term to filter customers by email or username"
// @Param full_name query string false "Filter by customer full name (partial match)"
// @Param email query string false "Filter by customer email (partial match)"
// @Param type query string false "Filter by customer type" Enums(individual, company, government)
// @Param status query string false "Filter by customer status" Enums(active, inactive, suspended, pending)
// @Param company_id query string false "Filter by company ID" format(uuid)
// @Param status query string false "Filter by customer status" Enums(active, inactive, suspended)
// @Param role query string false "Filter by customer role" Enums(admin, analyst)
// @Param company_id query string false "Filter by assigned company ID"
// @Param limit query integer false "Number of customers per page (1-100)" minimum(1) maximum(100) default(20)
// @Param offset query integer false "Number of customers to skip for pagination" minimum(0) default(0)
// @Param sort_by query string false "Field to sort by" Enums(email, company_name, created_at, updated_at, status) default(created_at)