Release v4928.1.4.2 stable
This commit is contained in:
36
app/action_mapper.py
Normal file
36
app/action_mapper.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from app.action_catalog import ACTION_CODES, get_action_config
|
||||
from app.schemas import ActionDecision, ActionResult
|
||||
|
||||
|
||||
# Apenas normalizações benignas de formato/typo. Códigos legados operacionais
|
||||
# não são convertidos: se aparecerem, a tarefa vai para revisão.
|
||||
ACTION_CODE_ALIASES = {
|
||||
"SENDO_INVOICE": "SEND_INVOICE",
|
||||
"SENDING_INVOICE": "SEND_INVOICE",
|
||||
}
|
||||
|
||||
|
||||
def normalize_action_code(value: str) -> str:
|
||||
code = str(value or "").strip().upper()
|
||||
code = ACTION_CODE_ALIASES.get(code, code)
|
||||
if code not in ACTION_CODES:
|
||||
return "REVIEW_MANUALLY"
|
||||
return code
|
||||
|
||||
|
||||
def map_action_decision(decision: ActionDecision) -> ActionResult:
|
||||
code = normalize_action_code(decision.action_code)
|
||||
config = get_action_config(code)
|
||||
|
||||
note = str(decision.note or "").strip()
|
||||
if not note:
|
||||
note = config["action"]
|
||||
|
||||
return ActionResult(
|
||||
action_code=code,
|
||||
route=config["route"],
|
||||
action_required=config["action_required"],
|
||||
action=config["action"],
|
||||
note=note,
|
||||
safe_to_post=config["safe_to_post"],
|
||||
)
|
||||
Reference in New Issue
Block a user