Spaces:
Runtime error
Runtime error
File size: 1,335 Bytes
ede4a2e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | from typing import Any
from sqlalchemy.orm import Session
from app.models.audit import RuleAuditLog
from app.models.rule import RuleMaster
def rule_to_dict(rule: RuleMaster | None) -> dict[str, Any] | None:
if not rule:
return None
return {
"id": rule.id,
"tenant_id": rule.tenant_id,
"product_type": rule.product_type,
"dealer_id": rule.dealer_id,
"rule_code": rule.rule_code,
"rule_name": rule.rule_name,
"rule_type": rule.rule_type,
"field_name": rule.field_name,
"operator": rule.operator,
"field_value": rule.field_value,
"score_value": str(rule.score_value) if rule.score_value is not None else None,
"score_component": rule.score_component,
"decision_action": rule.decision_action,
"reason_code": rule.reason_code,
"priority": rule.priority,
"version": rule.version,
"is_active": rule.is_active,
}
def write_rule_audit(
db: Session,
rule_id: int | None,
action: str,
actor: str | None,
before: dict[str, Any] | None,
after: dict[str, Any] | None,
) -> None:
db.add(
RuleAuditLog(
rule_id=rule_id,
action=action,
actor=actor,
before=before,
after=after,
)
)
|