Combination of predefined filters and single free-text search.
Invalid Scenarios:
Multiple free-text searches.
Incorrect filter syntax.
Undefined filters treated as free-text.
Edge Cases:
Empty input.
Extremely long input strings.
Special characters in input.
Search Box Instructions:
Use the search box to find information quickly:
Predefined Filters: Enter filters in the format filter:value. Examples:
amount:100
start_date:2024-10-01
Free Text: You can include one free-text term for broader searches. Example:
successful
Note: If you enter multiple free-text terms, only the first one will be considered. Valid entries will be highlighted to help you see what you’ve entered.
General Example: To find successful payments of a specific amount, you might enter:
amount:100 successful
User will be able to select a category and then provide input against it
After entering a space they will be able to select a category again including the category already selected
User can provide multiple inputs in fashion of "category1:input category2:input category1: input2". Front end will combine the asks and send to api for filtering
All categories will be suggestions and not be enforce on the user, they will be able to do blanket search without selecting any category as well
For categories where we can handle case insensitivity, we will handle it and where we cannot(customer email, ids etc) user will be informed that this category search will only work with precise case input. For blanket search case insensitivity is already handled, it will stay as is
For categories like connector, payment method etc we will dynamically fetch the suggestions based on the data this specific user has access to. Need to evaluate the logic here, if user has access to multiple profiles and merchants we should not power suggestions based on data across multiple profiles and merchants. For v1 we can simplify this logic(to be discussed)
Expected categories for phase 1: payment method, payment method type, connector, customer email, card network, last 4
Test cases
Valid Scenarios:
Invalid Scenarios:
Edge Cases: