# `src.program_version_select` Список версий программы (без тела — крупный jsonb читается отдельным get). | Параметр | Тип | Обяз. | Описание | |---|---|---|---| | `p_athlete_id` | int | да | атлет (🛡) | | `p_program_id` | int | нет | NULL = фильтр не применяется | | `p_status` | text | нет | NULL = фильтр не применяется | | `p_author` | text | нет | NULL = фильтр не применяется | **Возвращает** `TABLE` — колонки сущности `program_version` **без `body`**: `id uuid`, `program_id int`, `version int`, `based_on_version int`, `status text`, `author text`, `rationale text`, `created_at timestamptz`. Порядок — по `version` (возрастание). ## Пример вызова ```sql SELECT * FROM src.program_version_select(1, 1, 'draft', NULL); ``` ## Тесты | № | Тип | Условие | Ожидаемый результат | |---|---|---|---| | 1 | основной сценарий | 3 версии, фильтр по статусу | только версии статуса; `body` в колонках нет | | 2 | граничный случай | все фильтры NULL | все версии атлета, порядок по version | | 3 | граничный случай | версии чужой программы | 0 строк (изоляция 🛡) |