| from engine.flow_router import route_message | |
| from sessions import get_session, upsert_session | |
| def process_message(bot_number: str, customer_phone: str, text: str): | |
| session = get_session(customer_phone, bot_number) | |
| if not session: | |
| session = { | |
| "current_state": "START", | |
| "flow_type": None, | |
| "flow_data": { | |
| "uid": f"{bot_number}__{customer_phone}" | |
| } | |
| } | |
| state = session.get("current_state", "START") | |
| result = route_message(state, text, session) | |
| next_state = result["next_state"] | |
| flow_data = result.get("flow_data", session.get("flow_data", {})) | |
| flow_type = flow_data.get("customer_type") | |
| upsert_session( | |
| customer_phone=customer_phone, | |
| bot_number=bot_number, | |
| current_state=next_state, | |
| flow_type=flow_type, | |
| flow_data=flow_data, | |
| last_message=text, | |
| ) | |
| return result |