fix(photos): главное фото записи не дублируется в общей галерее
На /photos.html одно фото показывалось дважды — как «Главное фото записи» и как «Фото записи». Причина в модели данных: entries.photo_path физически совпадает с одной из строк entry_photos той же записи (при создании записи server.js пишет первый файл и туда, и туда), а /api/photos склеивал обе ветки через UNION ALL без дедупликации. Фильтр добавлен внутри подзапроса, поэтому чинит и total в пагинации. Дубль в самой БД не убираем: модель «главное фото = один из фото галереи» сквозная — на неё завязаны journal.js (isMain/mainPhotoPath) и синхронные UPDATE entry_photos ... WHERE photo_path = $3 при ИИ-обработке фото.
This commit is contained in:
@@ -5042,7 +5042,7 @@ app.get('/api/photos', requireAuth, async (req, res) => {
|
|||||||
FROM entry_photos ep
|
FROM entry_photos ep
|
||||||
JOIN entries e ON e.id = ep.entry_id
|
JOIN entries e ON e.id = ep.entry_id
|
||||||
JOIN groups g ON g.id = e.group_id
|
JOIN groups g ON g.id = e.group_id
|
||||||
WHERE e.deleted_at IS NULL
|
WHERE e.deleted_at IS NULL AND ep.photo_path IS DISTINCT FROM e.photo_path
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 'group_photo', 'Фотохроника группы', gp.photo_path, gp.group_id, NULL::varchar, gp.group_id,
|
SELECT 'group_photo', 'Фотохроника группы', gp.photo_path, gp.group_id, NULL::varchar, gp.group_id,
|
||||||
g.branch_id, g.name, gp.created_at,
|
g.branch_id, g.name, gp.created_at,
|
||||||
|
|||||||
Reference in New Issue
Block a user