You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
mortezaei a57d6b5f9d Refactor color management in admin panels by removing global color definitions from base settings and implementing specific color palettes for Formula and Dovoodi admin sites. 5 months ago
..
README.md Refactor API Documentation System and optimize Hadis data scripts 10 months ago
__init__.py Refactor API Documentation System and optimize Hadis data scripts 10 months ago
clear_chat_data.py Refactor API Documentation System and optimize Hadis data scripts 10 months ago

README.md

Chat Management Commands

clear_chat_data

این management command برای پاک کردن داده‌های چت طراحی شده است و دو حالت کاری دارد:

حالت پیش‌فرض (محافظت از روم‌های کورس)

در این حالت:

  • همه پیام‌ها (ChatMessage) حذف می‌شوند
  • همه وضعیت‌های خواندن پیام (MessageReadStatus) حذف می‌شوند
  • روم‌هایی که مربوط به کورس نیستند (course=null) حذف می‌شوند
  • روم‌هایی که مربوط به کورس هستند حفظ می‌شوند اما پیام‌هایشان حذف می‌شود
  • تعداد پیام‌های خوانده نشده روم‌های کورس صفر می‌شود

حالت حذف کامل

در این حالت همه داده‌های چت شامل روم‌های کورس نیز حذف می‌شوند.

استفاده

حالت پیش‌فرض (محافظت از روم‌های کورس)

# با تأیید کاربر
python manage.py clear_chat_data

# بدون تأیید کاربر
python manage.py clear_chat_data --force

حذف کامل همه داده‌ها

# با تأیید کاربر
python manage.py clear_chat_data --all-rooms

# بدون تأیید کاربر
python manage.py clear_chat_data --all-rooms --force

پارامترها

  • --force: اجرای دستور بدون درخواست تأیید از کاربر
  • --all-rooms: حذف همه روم‌ها شامل روم‌های مربوط به کورس

نکات مهم

  1. ایمنی: دستور در یک transaction اجرا می‌شود تا در صورت خطا، تغییرات rollback شوند
  2. گزارش‌دهی: دستور تعداد رکوردهای حذف شده را نمایش می‌دهد
  3. محافظت از داده‌های کورس: در حالت پیش‌فرض، روم‌های مربوط به کورس حفظ می‌شوند
  4. بازنشانی شمارنده: تعداد پیام‌های خوانده نشده روم‌های کورس به صفر تنظیم می‌شود

مثال خروجی

Found:
  - 150 messages
  - 75 read statuses
  - 10 total rooms (3 course rooms, 7 non-course rooms)
✓ Deleted 75 MessageReadStatus records
✓ Deleted 150 ChatMessage records
✓ Deleted 7 non-course RoomMessage records
✓ Reset unread_messages_count for 3 course rooms
Chat data clearing completed successfully!