- Optimize HadisSyncSerializer: remove unused number, address_details, and book descriptions
- Separate sync serializers for corrections and interpretations (omitting redundant hadis_info and category_info)
- Add HadisDatabaseVersion model and migration for tracking offline SQLite DB
- Add export_hadis_sqlite management command with gzip compression and single-file overwrite
- Add GET /api/hadis/sync/database/ endpoint and enhance version serializers
- Automatically trigger background SQLite database export on version increment in admin
- Add request-level user bookmark memoization in BookmarkStatusSerializer to eliminate redundant queries across all lists
- Optimize BookReferenceSyncView and BookReference.authors caching (reduced queries from 185 to 10)
- Add multi-level prefetch_related for references and images in HadisMainListView (reduced queries from 109 to 6)
- Add incremental sync support (updated_after/since) in HadisSyncView
- Add select_related for language in BookListView (reduced queries from 35 to 18)
- Annotate episode count and cache effective_thumbnail in podcast and video playlist views (reduced queries from 22/17 to 4)
- Prefetch categories with annotated article counts in ArticleListAPIView (reduced queries from 41 to 3)
- Scale Gunicorn workers/threads to 4w/4t (16 concurrency) with gthread in docker-compose.prod.yml
- Sort narrator chains in reverse order so each branch leads from first narrator to primary narrator/hadith
- Add support for uncertain transmitters with candidate details in xmind tree
- Localize reliability titles using get_localized_text
- Disable caching on category xmind endpoint and add no-cache response headers
- Eliminate N+1 queries in hadis serializers by using in-memory prefetch cache instead of .first() and .order_by()
- Add select_related for hadis and category in HadisSyncView prefetches
- Apply cached_view (Redis 2h + Accept-Language) to HadisSyncView and public hadis endpoints
- Enable GZipMiddleware in Django settings to compress large API responses
- Add is_root query param filter defaulting to true (parent__isnull=True) in CategoriesBySectView
- Ensure pagination count returns total count of root categories for the sect
Replace direct calls to `request.build_absolute_uri` with a centralized
`absolute_https_url` utility across account and hadis modules. This
ensures consistent enforcement of HTTPS for all absolute media URLs
(avatars, thumbnails, and images) in serializers and views.rl
update corrections , interpretations and original text models to connect to new logic of our references models
made a new api for detail pages of these references