# Proposal ## Why Наполнить приложение тестовыми данными можно только вручную: сейчас в локальной базе один пользователь, один альбом и 15 фото, появившихся через UI. Чтобы проверять сетку, лайтбокс, cursor-пагинацию, асинхронную генерацию трёх превью, извлечение EXIF, share-ссылки и SSE-события, нужны повторяемые объёмы данных. Нужен dev-инструмент, который наполняет систему через публичный API, не трогая БД и хранилище напрямую. ## What Changes - Новый standalone-скрипт `scripts/seed.py` на Python: ввод через переменные окружения (базовый URL, email, пароль владельца) и параметры командной строки. - Создание заданного числа альбомов и фотографий от одной учётки-владельца через существующие эндпоинты (`POST /api/albums`, `POST /api/albums/:id/photos`). - Изображения генерируются на лету: при доступной Pillow — JPEG с EXIF (`DateTimeOriginal`, опционально GPS); при отсутствии Pillow — PNG без EXIF на stdlib. - HTTP-клиент — только стандартная библиотека (`urllib`), без обязательных pip-зависимостей. - Опциональные сопутствующие сущности (по флагам, по умолчанию выключены): теги, комментарии, лайки, share-ссылки, инвайты. - Опциональное ожидание генерации вариантов (опрос `GET /api/photos/:id` до `thumb_url`). - Режим только-добавления: скрипт ничего не удаляет и не изменяет; повторные запуски добавляют данные, различимые по метке прогона в названии альбома. Есть `--dry-run`. - Секреты читаются только из окружения и не принимаются аргументами и не логируются. ## Capabilities ### New Capabilities - `dev-seed-data`: dev-инструмент наполнения приложения тестовыми данными через публичный API. ### Modified Capabilities ## Impact - Новый файл `scripts/seed.py`; новый раздел в `README.md` с запуском и параметрами. - Backend, frontend, API и хранилище не меняются — используются только существующие эндпоинты. - Опциональная внешняя зависимость Pillow (для JPEG+EXIF); ядро работает на стандартной библиотеке. Требуется запущенный инстанс с существующим пользователем-владельцем.