Я столкнулся с главами, которые на которых стоят такие права доступа, что главы не под подпиской, но доступ запрещён вот так в https://tl.rulate.ru/book/15563 :
Доступ запрещён
Вы не можете скачивать готовый перевод. Это может делать только владелец.
Права доступа:
войти все видеть все версии группа скачивать никто
Проблема в том, что в этом случае глава отметилась прочитанной, что явно неправильно, ведь я её не читал.
Или ещё похожее в https://tl.rulate.ru/book/27858 . Там есть пустые главы, при открытии которых показывает только
В этой главе нет ни одного переведённого фрагмента.
, но тоже отмечаются прочитанными. Тут уж я действительно прочитал "ничего", но потом же там что-то будет. Не то чтобы я специально их открывал. Я просто попадал на них переходя на следующую главу. Конечно, я уже не смогу из-за этого отследить готовность главы в разделе обновлений с фильтрами "Только непрочитанные" и "Только готовые", ведь она уже отмечена прочитанной. Или как новые в разделе закладок. Автоматикой, например сбросом статуса прочитанности при добавлении фрагментов, решать это как-то не очень.
В общем, проще дать пользователю самому переключать статус прочитанности у любой главы. Рядом с кнопкой закладки, например. Добавить в оглавление к массовому скачиванию. Но в механизм автоматического выставления прочитанности нужно всё же предусмотреть описанные случаи, или вообще пересмотреть мехнизм так, чтобы ещё можно было крутилки в настройки добавить для переключения обработки этих случаев или групп. Например, чтобы не отмечались прочитанными скачиваемые в виде файлов.
Допустим, придёт оповещение по одной главе, а я захочу подождать, пару дней до выходных, например. Успеет накопиться еще много оповещений, а может быть оповещение о ещё одной главе. Так я могу случайно перейти на чтение по второму оповещению не прочитав ту главу. А потом ещё надо возвращаться и удалять оповещения по прочитанным главам. И если одно из них было "под рукой", то второе ещё найти надо. Так что оповещения в этом смысле не годятся, по сравнению с обновлениями. А я обновления фильтрую по открытым и непрочитанным.