================================================================================
BrightProductsController - Summary & Response Structures
File: SonWinCommonAPI/Controllers/BrightProductsController.cs
================================================================================
--------------------------------------------------------------------------------
WHAT THE CONTROLLER DOES
--------------------------------------------------------------------------------
BrightProductsController is meant to expose the price products and tariffs for a
specific customer and service within a date range, from the SonWin/Sonlinc
system, shaped into the "Bright" product contract. On any thrown exception logs the error and returns HTTP 500 with the exception message in the body.
--------------------------------------------------------------------------------
METHODS
--------------------------------------------------------------------------------
1) GetProducts
Route: GET /bright/products
Params:
Returns:
What it does:
Return the list of price products/tariffs for a given customer
and service that are valid within the requested date range.
It first validates the customer exists , then asks
the repository for the matching DbProduct rows, groups them by ServiceId,
and maps each group to a BrightProduct with a nested list of BrightPrice.
Validation that affects the result (all surface as HTTP 500 with a message):
Run claude !