repository
0.0.0-20230910204426-a4a11c618046
Repository: https://github.com/amore14rn/888starz_test.git
Documentation: pkg.go.dev
# README
Hi there, We're Crypto.Pulse Roman
888Starz
Golang, SQL
Описание
Необходимо спроектировать и разработать сервис, который работает с реляционным хранилищем данных PostgreSQL. Основной упор необходимо сделать на программную архитектуру: слои, маппинги структур данных между слоями приложения.
Основные сущности
User
- id
- firstname
- lastname
- fullname (firstname + lastname) age
- is_married
- password
Product
- id
- description
- tags
- quantity
Что надо сделать
Реализовать следующий функционал:
- Регистрация пользователя (не младше 18 лет);
- Пароль не меньше 8 символов;
- Пользователь может заказать продукт;
- У пользователя может быть много заказов;
- Заказ может содержать множество продуктов;
- Если, продуктов не осталось на складе – его нельзя заказать;
- Нужна историчность заказов и продуктов в заказе (например старая цена).
Тесты
Покрыть тестами несколько (2-3) функционально важных методов.
Тезисно
Не все из перечисленного ниже обязательно реализовывать.
- REST API
- Слоеная архитектура
- Логирование (в контексте) - middleware
- Трасировка, opentelemetry - middleware
- Sentry - ловить паники в middleware
- На каждом слое своя структура данных
- Поток данных идет как в чистой или гексогональной архитектуре
Запуск
=== mod ===
make mod
=== fmt ===
make fmt
=== Linter ===
make install-linter
make lint
make lint-fast