Operation (logic layer) │ ├── handle_search_in_law(...) │ ├── دریافت ورودی خام │ ├── فراخوانی request_manager │ ├── ساخت خروجی منطقی (data) │ └── بدون وابستگی به بله │ └── return OperationResult BaleBotCore (delivery / interface layer) │ ├── دریافت user ├── صدا زدن Operation ├── تبدیل خروجی به متن + دکمه └── ارسال به بله # Logic & Flow Operation → منطق، پردازش، گرفتن دیتا، تصمیم‌گیری BaleBotCore → ورودی/خروجی، ارتباط با بله، فرمت پیام، دکمه‌ها، مدیریت state کاربر # FlowChart / └── main.py │ └── fast-api app ├── core │ └── core.py │ ├── class Formatter : فرمت دهی و مدیریت استایل ها و UI │ ├── class RequestManager : درخواست ها و داده ها را از بک اند میگیرد در دو نوع async (chunk-chunk) و ساده │ └── class ElasticHelper : مدیریت و ارتباط با الاستیک سرچ ├── router │ └── bale │ ├── bale.py │ │ ├── func webhook : دریافت داده از بله │ │ └── func initialize_webhook : شناساندن ربات به بله │ ├── bale_handle.py │ │ ├── class BaleBotBase : برای مدیریت پیام ها و دکمه ها و 3 url send, update, delet ارتباط با سرور بله │ │ ├── class BaleBotUI : مدیریت پیام های موقتی │ │ ├── class StackManager : مدیریت داده های کاربر در پشته یا stack │ │ └── class BaleBotCore : ساختار ربات و انجام state ها │ │ ├── func render_update : مسئول گرفتن داده از بله به دو صورت BaleStartMessage یا BaleCallbackQuery │ │ ├── func render_user_state : وظیفه مدیریت و پاس دادن هر ورودی به بر اساس state به تابع موردنظر │ │ ├── func handle_previous_message : دسترسی به پیام مرحله قبل (بزودی باید با stack هندل شود) │ │ ├── func handle_main : صفحه اول - حذف کننده داده ها و ریست داده ها │ │ ├── func handle_search_in_law : │ │ ├── func handle_search_in_law_rules │ │ ├── func handle_rule_making │ │ ├── func handle_chat_in_law │ │ ├── func handle_qanon_title_repeat │ │ ├── func handle_logical_chat_in_law │ │ ├── func handle_conflict_qanon_asasi │ │ ├── func handle_conflict_law_writing_policy │ │ ├── func handle_subject_unities_to_evalution │ │ ├── func show_stack_data │ │ ├── func handle_summary_conflict_all_qavanin │ │ ├── func save_to_db │ │ └── # input-flow User-Input ↓ app → initialize_webhook → Bale-Server ↓ webhook ↓ BaleBotCore └→ BaleBotBase └→ BaleBotUI └→ StackManager └→ UserManager └→ Operation ↑ ↓ ← →