Add a `city` column to rate_sections (NULL = default/home card) with an additive migration and CMS field. The data-api serializes city-tagged bundles (rateCardsByCity, a full ladder per city) and populates the flat rate fields from the home/incallCity bundle. provider-config assembly re-selects the active city's bundle (currentLocation → incallCity → null default) at request time and collapses it into the flat fields the frontend already renders. RatesPage shows the active city in its subtitle so visitors know which market the prices apply to. Shared types gain RateCardBundle + ProviderData.rateCardsByCity. |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| config | ||
| middleware | ||
| routes | ||
| seeds | ||
| cms-handler.js | ||
| cms-handler.ts | ||
| db.js | ||
| db.ts | ||
| logger.js | ||
| logger.ts | ||
| migrate.ts | ||
| photos.js | ||
| photos.ts | ||
| registry.js | ||
| registry.ts | ||
| seed-about.js | ||
| seed-about.ts | ||
| serializer.js | ||
| serializer.ts | ||
| server.js | ||
| server.ts | ||
| totp.js | ||
| totp.ts | ||