POST /api/v1/vm/custom-template/price returns ApiCustomVmPrice { currency, amount, other_price } (lnvps_api/src/api/model.rs:55-62). There is no interval, and VmCustomPricing (lnvps_db/src/model.rs:1229) has no interval column either, so nothing on the wire says what period the figure buys.
The period is a fact the backend knows: lnvps_api_common/src/pricing.rs:882 says custom templates are always 1-month intervals and the renewal adds Months::new(1).
The web side needs it for the region landing pages in LNVPS/web#22. Those pages quote a custom-build price for Dublin, London and Quebec, and a recurring figure with no period reads as a total. Writing "per month" into the front end would be product data hard-coded in the client, which is the thing we stopped doing in web#73/#77.
Ask: send the period on that response, same shape as the standard templates already use — interval_amount + interval_type (ApiVmTemplate). A constant 1/month is fine; what matters is that it is on the wire.
Until then the landing pages show CPU/RAM/disk ranges and no price for custom builds.
POST /api/v1/vm/custom-template/pricereturnsApiCustomVmPrice { currency, amount, other_price }(lnvps_api/src/api/model.rs:55-62). There is no interval, andVmCustomPricing(lnvps_db/src/model.rs:1229) has no interval column either, so nothing on the wire says what period the figure buys.The period is a fact the backend knows:
lnvps_api_common/src/pricing.rs:882says custom templates are always 1-month intervals and the renewal addsMonths::new(1).The web side needs it for the region landing pages in LNVPS/web#22. Those pages quote a custom-build price for Dublin, London and Quebec, and a recurring figure with no period reads as a total. Writing "per month" into the front end would be product data hard-coded in the client, which is the thing we stopped doing in web#73/#77.
Ask: send the period on that response, same shape as the standard templates already use —
interval_amount+interval_type(ApiVmTemplate). A constant 1/month is fine; what matters is that it is on the wire.Until then the landing pages show CPU/RAM/disk ranges and no price for custom builds.