VEU.WathBody/1-docs/2-db/src/func_specs/athlete_insert.md

1.2 KiB

src.athlete_insert

Регистрация атлета (владелец/AdminWeb; ключ атлета хранится только хэшем).

Параметр Тип Обяз. Описание
p_name text да отображаемое имя (Ф-9.1)
p_api_key_hash text да SHA-256 ключа; открытый ключ не хранится

Возвращает int — id атлета (src.athlete.id).

Логика/особенности: дубликат хэша — исключение UNIQUE (один ключ = один атлет); _delete нет — отключение блокировкой (athlete_update, 🛡).

Пример вызова

SELECT src.athlete_insert('TEST-Атлет', 'TEST-hash-1');

Тесты

№ Тип Условие Ожидаемый результат
1 основной сценарий валидные имя и хэш id > 0; is_blocked = false, created_at ≈ now()
2 исключение повтор p_api_key_hash (фикстура TEST-hash-1) исключение UNIQUE
3 исключение p_name = NULL исключение NOT NULL