Сервис поднимается в Docker контейнерах: PostgreSQL, Redis и приложение на Go.
Для более простого запуска команд был использован Makefile
Все методы имеют префикс /api/.
Запуск сервиса
Конфиг проекта находятся configs.
Сервис работает на 8080 порту, база данных на 5436, redis на 6739
Команда для запуска:
make run
Команда для удаления:
make stop
Проблемы и решения
Фича и теги определяют баннер. Из условия и файла с API было не ясно, какой нужен вариант, поэтому для этого был немного изменен один парамерт tag_id на tag_ids
Версия баннеров реализована с помощью двух таблиц banner и banner_version. На последней таблице есть триггер, которые следит, чтобы одного баннера было не больше 3 штук. При добавлении нового, триггер затирает самый старую версию.