Доработка проекта на Laravel (парсинг из csv в mysql)

Цена договорная
30 января 2023, 11:27 • 6 откликов • 90 просмотров
Здравствуйте, есть скрипт, который преобразовывает csv файл в таблицы бд mysql. Сделан на Laravel (artisan) в пакете nWidart/laravel-modules.
Как в общем работает скрипт, записал видео https://www.youtube.com/watch?v=phfX4547Y4s (смотрите на скорости 2).
Нужно сделать: (записал видео с описанием - https://youtu.be/X6P-yvoD6Hs )
- чтоб сначала создавало временные таблицы, работало с ними (возможно, скопировать из некоторых инфу), всё заполняем, потом переименовываем существующие на префикс old, а эти называем рабочими именами.
- Добавить artisan команду возврата на предыдущие версии таблиц с помощью команды.
- чтоб файлы скачивались в модуль/Resources/abcdef_csv_files (из https://opendata.digital.gov.ru/registry/numeric/downloads) и обрабатывались оттуда. Причём проверить, что всё, что надо скачалось (по именам файлов и содержимому (что все заголовки, которые должны быть, есть, что они в том порядке, в котором надо, что файл не меньше определённого размера)) и только тогда начинать работать. Если все проверки не прошли, возвращаем ошибку (если запускали через терминал), а если запускали по крону - отправляем на почту сообщение с точной причиной остановки, дальше не продолжаем (используем имеющуюся функцию My::msgToAdmin() для отправки сообщения).
- чтоб скрипт запускался по крону раз в сутки, проверял, есть ли новые файлы для скачки, если есть, запускался, а о результате обработки сообщалось на почту.
- чтоб lostlocations locstree и другие показывало только, если вошли в админку, т.е. через миддлварэ
- Сейчас в скрипте, если есть ооо (либо локации), нуждающиеся в ручной обработке, скрипт ОСТАНАВЛИВАЕТСЯ и предлагает перейти на веб страницу обработки (указан конкретный Url), и там обработать. Нужно, чтоб, после того как перешли и сделали обработку, на той веб-странице появилась кнопка - "продолжить работу скрипта" - после нажатия скрипт должен идти на указанный шаг, проверить, что всё обработали и продолжить работу.
- тут есть момент. Скрипт может быть запущен через терминал или через крон.
- Если через терминал, то скрипт должен перейти в режим паузы и ждать, когда мы в вебе нажмём кнопку.
- Если через крон, то скрипт должен заново запуститься с того шага, который требуется после того, как обработали ооо или локации
- при запуске, чтоб можно было указать параметр, с которым в командной строке будет показываться, с какой функции начать обработку, т.е. если хотим не сначала начать, а с определённого шага

Если что-то непонятно, смогу объяснить.
Оцените, сколько займёт времени и сколько будет по стоимости.
Ещё было бы неплохо, чтоб ответили на такие вопросы:
1. Есть ли сейчас другой проект или работа?
2. Есть ли отвлекающие факторы, которые мешают работе, например, отключение света
3. Сколько занимаетесь laravel/php?
4. Какого уровня программистом себя считаете? (junior, middle, senior)