// Package rates holds the Data-Source client stub for ds:per-diem-rates. // Current state: skeleton — no HTTP transport, no Session-Scope-Token // acquisition. The intent is to document the eventual signature and let // the calc package compile against it. package rates import ( "errors" "time" ) // Client exposes the one operation the calculator needs: fetch the applicable // rate for a country+date. The real implementation will call // ds:per-diem-rates /rates with a Session-Scope-Token and return the single // applicable rate (filtering by city if provided). type Client struct { // BaseURL, HTTPClient, ScopeTokenFetcher — intentionally omitted in skeleton } // RateFor is a stub that always returns a helpful error so tests that need a // real provider substitute their own. func (c *Client) RateFor(country string, day time.Time) (interface{}, error) { return nil, errors.New("rates.Client is a skeleton; substitute a test or real provider") }