- Add Redis caching (2h TTL) to categories, collections, and pinned collections in video, library, article, podcast, and dobodbi_calendar (6h TTL)
- Implement conditional_cached_view (30m TTL) for list endpoints (books, podcasts, articles, videos, playlists) that caches public queries and bypasses caching when is_bookmark=true or is_bookmarked=true
- Remove bookmark/user count queries from pinned collection list views to avoid user-specific cache pollution
- Prevent user bookmark/rate leakage into public catalog cache in BookListView via AnonymousUser context wrapper
- Fix video bookmark filtering bug in VideoPlaylistListAPIView and VideoListAPIView to accept both is_bookmark and is_bookmarked, and query both VIDEO_PLAYLIST and VIDEO bookmarks
- Add assign_random_videos_to_playlists management command
- Added management commands to create podcast and video categories in Russian, ensuring a structured categorization system.
- Updated podcast and video playlist creation commands to associate playlists with the newly created categories.
- Enhanced documentation to reflect the new category creation process and its integration into the podcast and video systems.
- Introduced new models for PodcastPlaylist and VideoPlaylist, replacing the outdated PodcastInCollection and VideoInCollection models.
- Updated admin interfaces to manage playlists effectively, including new fields for slug, slogan, description, and thumbnail.
- Enhanced serializers to support playlist data and added methods for calculating total time and retrieving associated videos/podcasts.
- Implemented management commands for creating playlists and cleaning up old data, ensuring a streamlined user experience.
- Adjusted API endpoints to accommodate the new playlist structure while maintaining backward compatibility for existing video endpoints.