Ознакомиться с migrations, seeds, Eloquent ORM & models.
Установка показана в рабочем окружении OS Linux:
git clone git@github.com:BinaryStudioAcademy/bsa-2018-php-7.git
cd project-dir
composer install
cp .env.example .env
php artisan key:generate
Создать миграции которые создадут таблицы currency, money, wallet, user. Создать классы сиды(seeds) для таблиц currency, user, wallet, money используя factories и пакет Faker.
Схема:
currency | |
---|---|
id | int |
name | string(unique) |
money | |
---|---|
id | int |
currency_id | int |
amount | float |
wallet_id | int |
deleted | eloquent soft delete flag |
wallet | |
---|---|
id | int |
user_id | int |
deleted | eloquent soft delete flag |
user | |
---|---|
id | int |
name | varchar (100) |
varchar (100) |
Реализовать классы - Eloquent модели в папке app/Entity, которые будут описывать соответствующие таблицы и связи между ними(hasOne, hasMany, etc).
Реализовать интерфейс CurrencyServiceInterface.
create - создает currency модель.
Реализовать интерфейс UserServiceInterface.
findAll - возвращает коллекцию всех пользователей
findById - возвращает пользователя по ID, если пользователя с таким идентификатором не существует - возвращает NULL
save - создает/обновляет запись пользователя
delete - удаляет запись пользователя по ID из таблицы, при удалении должен также удаляться кошелек(wallet), привязанный к этому пользователю
Реализовать интерфейс WalletServiceInterface.
findByUser - возвращает запись кошелька конкретного польователя
create - создает кошелек для пользователя. Не может существовать больше 1 записи с тем же user_id.
findCurrencies - возвращает коллекцию currency с которыми связан кошелек.
Реализовать интерфейс MoneyServiceInterface.
create - создает money модель.
maxAmount - возвращает float значение, наибольшее кол-во валюты в хранилище.
./vendor/bin/phpunit