Files
kamidso-back/kamidso/native_connectors/providers/didar/money_rules.json
T
javadandCursor edbaa2acec Add native Didar connectors so chats can query CRM data reliably.
Connector calls, semantic rules, and DuckDB memory keep long runs stable, and stream retry stops chats from stalling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 19:26:47 +03:30

48 lines
2.2 KiB
JSON

{
"schema_version": "1.0",
"provider": "didar",
"source_fields": {
"deal_amount": "Price",
"deal_final_amount": "FinalAdjustmentPrice",
"currency_id": "CurrencyId",
"search_aggregate_total": [
"Response.TotalPrice",
"Response.AllDealsTotalPrice",
"Response.PendingDealsTotalPrice",
"Response.WonDealsTotalPrice",
"Response.LostDealsTotalPrice"
]
},
"didar_product_behavior": {
"multi_currency_supported": true,
"base_currency_exists": true,
"exchange_rates_are_account_configured": true,
"reports_can_be_viewed_by_currency": true
},
"safe_reporting_policy": {
"single_currency_known_mapping": "Aggregate and show amount with the known unit/code.",
"single_currency_unknown_mapping": "Aggregate only if business semantics otherwise permit, but label the unit as CurrencyId=<id>; do not say ریال/تومان/etc.",
"multiple_currency_ids": "Never sum raw Price/FinalAdjustmentPrice values across currencies.",
"server_aggregate_with_multiple_currencies": "Do not assume the API aggregate equals the Didar dashboard base-currency conversion until a golden reconciliation proves it for the account.",
"conversion": "Only convert when the connector has a verified base-currency/exchange-rate profile sourced from a trustworthy provider surface or explicit account calibration."
},
"connection_calibration_fields": {
"base_currency_id": null,
"base_currency_code": null,
"base_currency_name": null,
"display_unit": null,
"currency_map": {},
"dashboard_aggregate_currency_semantics_verified": false
},
"amount_field_policy": {
"default_record_amount": "FinalAdjustmentPrice",
"status": "provisional_until_golden_reconciliation",
"fallback": "Price",
"rule": "Do not permanently hard-code which field equals Didar's dashboard sales amount until golden tests against the panel pass."
},
"user_facing_rules": [
"When currency semantics are unverified, say so briefly rather than inventing a unit.",
"If more than one CurrencyId is present and no verified conversion exists, report separate totals per CurrencyId.",
"A successful HTTP response is not enough to call a money report accurate."
]
}