Задача на Golang: спроектировать и реализовать REST-сервис для агрегации данных об онлайн-подписках пользователей.
Требования:
1. Выставить HTTP-ручки для CRUDL-операций над записями о подписках. Каждая запись содержит:
1. Название сервиса, предоставляющего подписку;
2. Стоимость месячной подписки в рублях;
3. ID пользователя в формате UUID;
4. Дата начала подписки (месяц и год);
5. Опционально дата окончания подписки.
2. Выставить HTTP-ручку для подсчета суммарной стоимости всех подписок за выбранный период с фильтрацией по id пользователя и названию подписки.
3. СУБД – PostgreSQL. Должны быть миграции для инициализации базы данных.
4. Покрыть код логами.
5. Вынести конфигурационные данные в .env/.yaml-файл.
6. Предоставить swagger-документацию к реализованному API.
7. Запуск сервиса с помощью docker compose.
Примечания:
1 Проверка существования пользователя не требуется. Управление пользователями вне зоны ответственности вашего сервиса.
2 Стоимость любой подписки – целое число рублей, копейки не учитываются.
Пример тела запроса на создание записи о подписке:
```json
{
“service_name”: “Yandex Plus”,
“price”: 400,
“user_id”: “60601fee-2bf1-4721-ae6f-7636e79a0cba”,
“start_date”: “07-2025”
}
```
| Гарантия на работу | 1 год |
| Средний балл | 4.52 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |