Hi there, We're Crypto.Pulse Roman
-domain| |_policy| |_user| |_dto.go |_policy.go |_user| |_dao.go| | |_model.go | |_postgres.go |_model.go| | |_model.go |_service| |_service.go
Необходимо спроектировать и разработать сервис, который работает с реляционным хранилищем данных PostgreSQL. Основной упор необходимо сделать на программную архитектуру: слои, маппинги структур данных между слоями приложения.
- id
- firstname
- lastname
- fullname (firstname + lastname) age
- is_married
- password
- id
- description
- tags
- quantity
Реализовать следующий функционал:
- Регистрация пользователя (не младше 18 лет);
- Пароль не меньше 8 символов;
- Пользователь может заказать продукт;
- У пользователя может быть много заказов;
- Заказ может содержать множество продуктов;
- Если, продуктов не осталось на складе – его нельзя заказать;
- Нужна историчность заказов и продуктов в заказе (например старая цена).
Покрыть тестами несколько (2-3) функционально важных методов.
Не все из перечисленного ниже обязательно реализовывать.
- REST API
- Слоеная архитектура
- Логирование (в контексте) - middleware
- Трасировка, opentelemetry - middleware
- Sentry - ловить паники в middleware
- На каждом слое своя структура данных
- Поток данных идет как в чистой или гексогональной архитектуре
make mod
make fmt
make install-linter
make lint
make lint-fast