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'] });