function doGet(e) {
  const fn = (e.parameter.fn || '').toLowerCase();
  const rates = getRates_();

  if (fn === 'categories') {
    const cats = [...new Set(Object.values(rates).map(r => r.category).filter(Boolean))];
    return json_({ ok:true, categories: cats.sort() });
  }

  if (fn === 'subcategories') {
    const cat = e.parameter.category || '';
    const subs = [...new Set(Object.values(rates)
      .filter(r => r.category===cat)
      .map(r => r.subcategory).filter(Boolean))];
    return json_({ ok:true, subcategories: subs.sort() });
  }

  if (fn === 'services') {
    const cat = e.parameter.category || '';
    const sub = e.parameter.subcategory || '';
    const list = Object.entries(rates)
      .filter(([k,r]) => (!cat || r.category===cat) && (!sub || r.subcategory===sub))
      .map(([k,r]) => ({ service_key:k, label:r.label }));
    return json_({ ok:true, services: list.sort((a,b)=>a.label.localeCompare(b.label)) });
  }

  // existing fn === 'quote' branch stays as in our previous script
  // ...
}

Schedule a free consultation today!

call us at

(971)-363-9481

Tell us a bit about your project, and we’ll get back shortly.

or

Dayton Construction Group