# ✨ Принимать до десяти файлов одной загрузкой - **Тип:** feature - **Категория:** Очередь - **Зачем:** Приём берёт один файл в запросе, а с телефона выбирают пачку сразу: десять записей значат десять заходов на экран загрузки. - **Теги:** goal:upload-reliability Двигает пункт 2 «Завершения» цели: пачка файлов уходит одной загрузкой, и отказ одного не отменяет остальные. ## Затрагивает - контракт `POST /api/audio`: несколько файлов в одной форме и ответ списком; - `TranscribeService.createTranscribeJob` — заведение нескольких задач одним запросом; - экран загрузки: выбор нескольких файлов и показ их состояний; - предел числа файлов и предел размера запроса на стороне сервера; - `docs/database.md` — предел числа файлов числом. ## Критерии приёмки - Десять файлов одной формой заводят десять задач, и ответ отдаёт идентификатор каждой. Оракул — тест приёма: в ответе десять записей, в репозитории десять задач. - Негодный файл в пачке отклоняется поимённо, а годные соседи заводятся. Оракул — тест на пачке из годного и негодного: одна задача заведена, второй элемент ответа несёт причину отказа. - Одиннадцатый файл отклоняется до чтения содержимого, с названным пределом. Оракул — тест на пачке из одиннадцати: задач не заведено, в теле ответа предел числом. - Прежний вызов с одним файлом работает по-старому. Оракул — существующие тесты приёма по HTTP. ## Рамки Публичный контракт `POST /api/audio` меняется, а это необратимо — форма ответа согласуется с человеком. Загрузка частями сюда не входит: это `chunked-upload-choice`. Приём из Telegram не трогается — бот присылает файлы по одному.