# review Specification ## MODIFIED Requirements ### Requirement: Инфо и предпросмотр выбранного источника В едином блоке выбора источника экран ревью SHALL показывать для **выбранного (активного)** источника две части: **инфо** — тип (read-only, movie/series), название, оригинальное название, год, режиссёра эффективного источника, разрешённого слоями (`override`/подтверждённый матч+кандидат → сохранённый при приёме контекст раздачи, `parsed_context`; когда режиссёр недоступен ни в одном слое — пусто/прочерк, не ломая вёрстку), для сериала — сводку сезонов (один сезон, диапазон/список для многосезонного пака или «Спецвыпуски»); и **предпросмотр раскладки** — целевые пути хардлинков этого источника. Обе части SHALL относиться именно к активному источнику и SHALL обновляться при смене выбора. Отрисовка блока (показ инфо и предпросмотра) MUST NOT создавать хардлинки: раскладка создаётся только явным действием «Применить». Совпадение целевых путей предпросмотра с результатом применения регулируется требованием «Превью раскладки через единую логику именования» (`web-ui`). #### Scenario: Инфо и предпросмотр относятся к активному источнику - **GIVEN** в списке активен кандидат метабазы - **WHEN** пользователь смотрит инфо-часть и предпросмотр раскладки - **THEN** показаны тип, название, ориг. название, год (и сводка сезонов для сериала) именно этого источника и предпросмотр его целевых путей #### Scenario: Просмотр блока не создаёт раскладку - **GIVEN** экран ревью с показанным блоком выбора источника - **WHEN** пользователь только просматривает инфо и предпросмотр, не нажимая «Применить» - **THEN** хардлинки не создаются, файлы под `paths.movies`/`series` не меняются #### Scenario: Режиссёр показан, когда доступен - **GIVEN** активный источник — подтверждённый матч, несущий режиссёра - **WHEN** отображается инфо-часть выбранного источника - **THEN** в ней показан режиссёр этого источника - **AND** при отсутствии режиссёра во всех слоях место остаётся пустым (или прочерком), не ломая вёрстку #### Scenario: Режиссёр берётся из контекста, когда матч его не даёт - **GIVEN** активный источник без режиссёра в плане, но с режиссёром в сохранённом контексте (`parsed_context`) - **WHEN** отображается инфо-часть выбранного источника - **THEN** в ней показан режиссёр из контекста (нижний слой разрешения)