from app.models.audit import AuditLog
SENSITIVE={'password','password_hash','current_password','new_password','token','access_token','refresh_token','authorization','api_key','secret','smtp','database_url','verification_code','reset_code'}
def sanitize(value):
 if isinstance(value,dict):return {k:('[REDACTED]' if any(x in k.lower() for x in SENSITIVE) else sanitize(v)) for k,v in value.items()}
 if isinstance(value,list):return [sanitize(x) for x in value]
 return value
def record_audit(db,business_id,action,entity_type,entity_id=None,actor_user_id=None,branch_id=None,details=None):
 x=AuditLog(business_id=business_id,branch_id=branch_id,actor_user_id=actor_user_id,action=action,entity_type=entity_type,entity_id=entity_id,details=sanitize(details or {}));db.add(x);return x
