Skip to content

Exemplos rápidos — Config Resolution API

GET /configs/resolve

Base apenas

{
  "config_type": "railway",
  "config_base_ref": "configs/railway/base_v0_1/base",
  "include_fields": ["values_params", "CAPEX_HIERARCHY", "CAPEX_ROWS"]
}

Base + padrão

{
  "config_type": "railway",
  "config_pattern_id": "2",
  "include_fields": ["values_params", "CAPEX_HIERARCHY"]
}

Base + padrão + usuário

{
  "user_id": "Z15G7BOL63VF7uFOtp1c34jjDkA3",
  "user_config_id": "1RQvOOJz6rTd13at27Kg",
  "include_fields": ["values_params", "CAPEX"]
}

Base + padrão + usuário + projeto

{
  "user_id": "Z15G7BOL63VF7uFOtp1c34jjDkA3",
  "project_id": "B8I95QcOz3N0azc45t3C",
  "include_fields": ["values_params", "CAPEX_ROWS"]
}

POST /configs/override

Salvar override do usuário

{
  "target": "user_config",
  "user_id": "Z15G7BOL63VF7uFOtp1c34jjDkA3",
  "user_config_id": "1RQvOOJz6rTd13at27Kg",
  "config_pattern_id": "2",
  "payload": {
    "values_params": {
      "platform": { "platform_width": 7.5 }
    },
    "capex": {
      "CAPEX": {
        "BDI": 0.25,
        "Unit Cost": { "_patch": { "37": 123.45, "43": 456.78, "52": 789.01 } }
      },
      "currency_rate": 5.75
    }
  }
}

Salvar override do projeto

{
  "target": "project_params",
  "user_id": "Z15G7BOL63VF7uFOtp1c34jjDkA3",
  "project_id": "B8I95QcOz3N0azc45t3C",
  "config_pattern_id": "2",
  "user_config_id": "1RQvOOJz6rTd13at27Kg",
  "payload": {
    "values_params": {
      "earthwork": { "max_cut": 30 }
    }
  }
}

CAPEX.Variables (base x i18n)

  • Base (/configs/railway/v0_1/base.CAPEX.Variables): cada opção contém somente { "2": valor }.
  • i18n (/configs/i18n/railway/{lang}.base.CAPEX.Variables): cada opção contém somente { "0": texto, "1": unidade }.
  • O backend mescla i18n sobre o base mantendo o índice 2 do base.

Consultar apenas patterns (duas opções)

1) Firestore REST (field mask) - PT-BR: GET https://firestore.googleapis.com/v1/projects/wwcalc-d2140/databases/(default)/documents/configs/i18n/railway/pt-br?mask.fieldPaths=patterns - EN: GET https://firestore.googleapis.com/v1/projects/wwcalc-d2140/databases/(default)/documents/configs/i18n/railway/en?mask.fieldPaths=patterns 2) SDK do Firestore

const ref = doc(db, 'configs/i18n/railway/pt-br');
const snap = await getDoc(ref, { fieldMask: ['patterns'] });