Доработка функционала корзины: добавление загрузки файлов

Необходимо расширить стандартный процесс оформления заказа, интегрировав возможность для клиента прикреплять файлы к своему заказу.

Основные требования

1. Фронтенд (страница оформления заказа)

  • Добавить поле для загрузки файла (input type="file") с подписью, поясняющей назначение.
  • Разрешить загрузку файлов следующих форматов: JPG, PNG, PDF.
  • Реализовать валидацию на стороне клиента (проверка типа файла и, опционально, размера).
  • При попытке отправить заказ без файла должно появляться понятное уведомление об ошибке, блокирующее отправку формы.

2. Бэкенд и обработка

  • Реализовать безопасное сохранение загруженных файлов на сервере (в отдельной директории или облачном хранилище).
  • Связать загруженный файл с конкретным заказом в базе данных (сохранить путь к файлу или ссылку).
  • Обеспечить защиту от загрузки вредоносных файлов.

3. Уведомление для менеджера/администратора

  • В письме, которое автоматически отправляется после оформления заказа, должен быть прикреплен файл от клиента (как вложение).
  • Альтернативно или дополнительно: в теле письма должна быть активная ссылка для скачивания файла.
  • В письме должна быть четкая пометка о наличии прикрепленного файла от клиента.

4. Админ-панель

  • В карточке просмотра заказа в админ-панели необходимо добавить раздел с прикрепленным файлом.
  • Должна быть реализована возможность просмотра (для изображений) и скачивания файла.
  • Интерфейс должен наглядно отображать факт наличия или отсутствия файла у заказа.

Критерии приемки

  • Клиент может прикрепить файл к заказу.
  • Без файла заказ не оформляется.
  • Менеджер получает файл в письме-уведомлении.
  • Файл доступен для скачивания в админ-панели.
  • Весь процесс безопасен и устойчив к ошибкам.

Создание документа Word из фотографий билетов

Необходимо преобразовать 8 фотографий билетов (4 билета по 2 фото) в структурированный документ формата DOCX. Требуется точно сохранить форматирование и расположение текста, как на исходных изображениях.