1. Add latitude/longitude to GetSupplierProfile query
- Without coordinates, supplier merge overwrites geo node data
- Causes "Supplier has no coordinates" warning and no offers loading
- Affects: useCatalogInfo.ts loadSupplierInfo() and useCatalogProducts.ts fetchProducts()
2. Add bounds validation in catalog composables
- Validate bounds coordinates before passing to GraphQL or using in filters
- Prevents 400 errors when bounds contain NaN/undefined/Infinity
- Fixed in: useCatalogHubs.ts and useCatalogSuppliers.ts
Fixes:
- https://optovia.ru/catalog?info=supplier:c7f2e3f1-b16a-423d-a947-359e30858d94
- https://optovia.ru/catalog?select=hub 400 error
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replace entity-specific queries (GetProductsNearHub, GetOffersByHub, GetHubsForProduct, GetSuppliersForProduct) with unified coordinate-based endpoints (NearestHubs, NearestOffers, NearestSuppliers, RouteToCoordinate). This simplifies backend architecture from 18 to 8 core endpoints while maintaining identical UI/UX behavior.
All composables and pages now use coordinates + client-side grouping instead of specialized backend queries. For global product filtering, uses center point (0,0) with 20000km radius.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add hubCountries query and country filter for hubs page
- Add getAvailableProducts query for offers (only products with active offers)
- Add sourceLatitude/sourceLongitude to orders GraphQL
- Fix ListMapLayout with position fixed for proper map height
- GlobalSearchBar: make fields wider, remove unit selector
- Remove status/isVerified filters from suppliers/offers (backend handles this)