Предыстория:
Есть система, в которой есть пользователи. У каждого пользователя есть Депозит, который можно пополнять через платёжные системы. Есть Администратор, который может просматривать, списывать/пополнять депозиты пользователей. Каждая операция пополнения/списания логируется в разделе история транзакций. Реализовать такую систему
Задача:
Реализовать систему, в которой:
- Находится список пользователей с указанными ФИО, email, телефоном. Email и телефон уникальны в системе
- У каждого пользователя есть депозит. Депозит хранит текущее состояние счета пользователя в рублях. Сумма депозита не может быть отрицательной
- Каждый депозит имеет уникальный UUID и может быть пополнен через удаленный платёжный шлюз. Реализовать такой контроллер через который будут поступать средства на депозит.
- Каждый пользователь может зайти в личный кабинет и посмотреть состояние депозитного счёта.
- В системе есть раздел администрирования. Администратор может посмотреть список всех пользователей и их депозиты, а так же может списать средства или пополнить их вручную. Для этого он указывает сумму и причину пополнения/снятия.
- Все пополнения/снятия логируются в отдельной таблице с указанием суммы и причины пополнения/снятия (может быть как ручное так и автоматическое пополнение через платёжный шлюз)
UI реализовать через bootstrap. Модели, контроллеры покрыть тестами. Тесты на view и feature написать по желанию