# TASKS / FEATURES
## Gift Card Solutions
- List Available Stocks with each of its secure Data Per Batch and Per Internal Product
- This is regarding from requests given by the Stock management team to know the current available stocks for either a Batch or an Internal Product.
- Ability to remove stocks from the Available List - update status to "returned"
- This is regarding from requests given by the Stock management team where they need to remove the ingested Available stock from the system and should not be allocated to any Order.
- BHN as Primary Vendor
- Reference: https://eonx.atlassian.net/wiki/spaces/GCS/pages/2616165015/GCS+Switch+to+Blackhawk+to+be+Primary+Vendor
- Add Vendor API Client logs search in EasyAdmin
- Common use case is to use the order_item_id to list all vendor api client logs initiated for that item
- Useful in debugging and data for stock controllers to determine if we have a problem in requesting vendor APIs
- Ability to Manage Product tree properly in EasyAdmin
- Ability to add/edit vendor product
- Ability to add/edit vendor product configuration
- "payload" should not be editable for synced products
- Ability to add/edit external product
- ability to manage link between vendor and external product
- The pivot entity (ExternalVendorProduct) will be part of BHN as Primary vendor update - currently table exist but entity for the pivot does not exist
- Ability to add/edit internal product
- Ability to disable a product tree in Easy Admin
- We have some cases where we need to disable specific products due to multiple reasons such as not being used or not being supported already.
- We do have the ability right now but can only be done one at time
- This feature will allow us to disable bulk of products instead of 1 product at a time
- Easy Admin Dashboard
- Ask business what they want to see - could be different per role
- Enhance error displays for Batch Ingestion
- We have some errors that are currently vague and is hard to understand as a User which are usually the Stock Management team from the Easy Admin UI.
- Ability to set Ingestion Validation rules against a Pre Purchased Product in Easy Admin
- We have had some requests where we needed to change ingestion rules against a product.
- Currently they are set from the code and always need a new deployement for the new rule to take effect.
- Ability to define what secure data to display for different providers
- We have had some requests where a specific product must not display a specific secure data (example: Pin) from different Providers, recently from Rewards.
- Currently they are set from the code and always need a new deployement for the changes to take effect.
- Easy Admin background jobs notification
- Start for batch ingestion - sometimes user wants to know
## Mastercard Loyalty Services
- MLS Automation
- Reference: https://eonx.atlassian.net/wiki/spaces/MLS/pages/2608595048/MLS-Automation+Business+Requirements+Document+Draft
- Easy Admin Message Translations
- Some messages (informational and error messages) are not translated to be understood by a User.
## Gift Card Kiosk
- Refunding process when cancelling orders (closed loop & non-closed loop)
- Making the EasyAdmin interface provider aware
- Reports & stats in the dashboard (e.g. total gift cards this month, emails with most # of cards bought, etc.)
## Gift Card Issuing
- Configurable rules & criteria for GCI products when generating gift card numbers (e.g. must have X prefix, etc.)
- Making the EasyAdmin interface provider aware
- Ability to search gift cards by secure data - restricted by role
- Ability to have more secure data types for gift cards (e.g. PIN, bar code, etc.)
- Reports & stats in the dashboard (e.g. total gift cards per denomination, total gift cards value in the application, no. of voided gift cards, etc.)
- Introduction of new roles; current application only has one role -- gci:super_admin
## Online Offers
- Ability to send email/slack notifications - the current issue is that Julian has to manually check the OO UI daily to see if merchants & orders are created/updated in the system - so that admin can review changes and approve them:
- When a new merchant gets synced
- When an existing merchant gets updated
- When a new order gets synced
- When a new order gets funded
- When a bank payment has been reconciled with an aggregator's provider float.
- Error notifications (e.g. not enough balance in provider float, etc.)
- Enhance merchant reviewing and approval process
- The current merchant review process is too complicated to understand. We can simplify the logic first in BE and have the FE update the UI to better streamline the process for admins.
- Ability to extract a list of available retailers in the UI
- Ability to extract a list of orders in the UI
- Continuation of the marketing features (promotions, coupons, campaigns)
- Current implementation is incomplete as the work was halted when the previous PO left the company. Additionally, this isn't used yet anywhere so we can continue and/or rework some of the current implementations.
- Integration of a new aggregator 'Ignite' - in progress
- Transitioning to the new Rakuten v2 endpoints - v1 support ends in 2022
- Might improve the integration with Rakuten as some of the current endpoints we utilize require special logic in the BE to circumvent their limitations (e.g. throttling, incomplete response properties, etc.)
- Upgrade packages to latest versions, and potentially transition to symfony framework which will allow the implementation of an EasyAdmin UI.
- Add payments reconciliation logs
- Resolving the Commission Factory orders as stated [here](https://eonx.slack.com/archives/CFLCXKGLS/p1664852863385559).
## Commhub
- Implementation of EasyAdmin OR improvement in the current UI as it's currently lacking fields, filters, etc.
- Symfony update and package updates
- Ability for admins to ingest a coupon code file via the UI - in progress
- Ability to view file ingestion status (like GCS batch ingestion) in Coupon Ingestion to
- know the status of file ingestion if success or errors
- know how many coupons are ingested
- Introduction of catalogs
- Will allow more control in terms of publishing
- Ability to manage API keys in the UI - Easy admin or FE
- As part of "Choice Of rewards" from BUPA, ability for the system to restrict coupon redemption on certain group of offers in a timeline period.
## eStore
- Make Manage Admin UI work - 2 approaches
- Update search endpoints
- Backend to implement endpoints to replace elasticsearch endpoints
- Front end to update elastic search usages to new endpoints
- Use Easy Admin to recreate Admin - preffered 😛 with a good challenge - symfony inside laravel
- Ability to cancel a Publishing status in order to make a new one
- Context - Sometimes a publishing status is stuck in `in progress` status with really no idea why since easy async batch items does not indicate any issue but can't confirm since no bugsnag reported that is related to publishing. Propably due to memory issue. But the only way for now is to go into database and update the record to "canceleld" or "failed" then trigger a new publishing
## Recroom
- Better and faster notifications integration
- Current implementation is too slow and inefficient.
- 1 example but not limited to:
- An update to a post sends notifications to all members related to it. It's inneficient because 1 member = 1 notification - causes a lot of queue messages. Notifications api allows 1 notification to send to multiple recepient in a single request
## Other tasks for projects where applicable
- Easy Admin
- include in EasyAdmin controllers in unit tests to assert permissions, actions configured, fields configured etc.
- Context is sometimes an update caused a field to be removed from the list/detail view.
- Improve messaging feedback to user when an action is performed
- Context is deleting/updating/creating a record in easy admin does not display any messages like: "Successfully created record", "Record deleted", "Record updated" etc.
- Basically any actions performed by a user should have a message feedback
- Realtime notifications to users - mostly from background jobs
## Just a Concept - Centralized Email Microservice
- Currently each project has to configure AWS emails integration. What if we have a centralized API for products to allow sending of emails - just like notifications api - maybe extend this product.
- Rest API for sending emails
- Configuration in AWS will be done in a centralized service
- From email address verification will be done via this centralized service
- Centralized view of "blocked/suppresed destinations" email addresses by provider/product