Add auto-release and update system

This commit is contained in:
oqba26 committed 2026-07-31 21:42:29 +03:30
1 parent 502cdacb44
commit 0557679e9c
125 files changed
+6799 -1680

No files matched your search

@@ -0,0 +1,30 @@
# گزارش نهایی: بازنگری معماری و بهبود زیرساخت (فاز ۲)
در این فاز، معماری پروژه از حالت یکپارچه و سنگین به حالتی ماژولار و تفکیک‌شده تغییر یافت. فایل `PersonViewModel` که حدود ۱۰۰۰ خط بود به چندین بخش تخصصی تقسیم شد.
## تغییرات کلیدی
### ۱. تفکیک وظایف (ViewModel Splitting)
- **AuthViewModel:** مسئولیت کامل احراز هویت (Login/Register/Logout) را بر عهده گرفت.
- **ContactViewModel:** مدیریت جستجوی مخاطبین گوشی، پیشنهادات شماره تماس و ارسال پیامک (SMS) به این کلاس منتقل شد.
- **PersonViewModel:** اکنون فقط بر روی مدیریت داده‌های افراد، پرداخت‌ها و داشبورد تمرکز دارد (حجم کد حدود ۵۰٪ کاهش یافت).
### ۲. جداسازی منطق از پلتفرم (Android Context Cleanup)
- **SmsManager:** منطق ایجاد Intentهای پیامک و مدیریت صف ارسال گروهی (Bulk SMS) به این کلاس کمکی منتقل شد.
- **ExportManager:** فرآیند تولید گزارش اکسل (CSV) و اشتراک‌گذاری رسیدها مستقل شد.
- **نتیجه:** ViewModelها اکنون مستقل از `Context` اندروید هستند که تست‌نویسی آن‌ها را بسیار آسان می‌کند.
### ۳. یکپارچه‌سازی و نظم‌دهی (Cleanup)
- **ادغام پکیج‌ها:** پکیج‌های `util` و `utils` در یک پکیج واحد ادغام شدند.
- **مدل‌های متمرکز:** تمام `Events` و `UiStates` به فایل `UiModels.kt` منتقل شدند تا دسترسی به آن‌ها یکپارچه شود.
- **رفع خطاهای UI:** تمام صفحات برنامه (`AuthScreen`, `PersonScreen`, `PaidListScreen`, `PersonDetailScreen`) برای انطباق با ViewModelهای جدید بازنویسی شدند.
## وضعیت نهایی پروژه
- **Build Status:** موفقیت‌آمیز (تایید شده با `assembleDebug`).
- **Dependency Injection:** استفاده کامل از Hilt در تمام لایه‌ها.
- **Readability:** افزایش چشمگیر خوانایی کد و سهولت در عیب‌یابی.
---
> [!TIP]
> با این ساختار جدید، افزودن ویژگی‌های جدید (مثل ارسال یادآور از طریق پیام‌رسان‌های دیگر یا افزودن فیلترهای جدید به لیست) بسیار سریع‌تر و با ریسک کمتر انجام خواهد شد.