Предварительная декомпозиция задач - kzagorulko/flower-system GitHub Wiki
Регистрировать пользователей может администратор Авторизация происходит по email и password
Модели:
UserModelRolesPermissions
Роуты для пользователей:
-
GET /users/- получить информацию о пользователях -
POST /users/- создать пользователя [Админ] -
GET /users/<user_id>- получить подробную информацию о пользователе -
PATCH /users/<user_id>- изменить информацию о пользователе [Админ] -
DELETE/users/<user_id>- удалить пользователя [Админ]
Роуты для ролей:
-
POST /roles/- создать роль [Админ] -
DELETE /roles/- удалить роль [Админ] -
POST /roles/user/<user_id>- назначить роль пользователю [Админ] -
DELETE /roles/user/<user_id>- снять роль с пользователя [Админ] -
GET /roles/- получить информацию о ролях
Для доступов необходимо создать класс действий, содержащий все возможные действия На данный момент будет:
- создание пользователей
- изменение пользователей
- создание ролей ...
Роуты для доступов:
-
POST /permissions/- создать доступ -
GET /permissions/- получить доступы -
DELETE /permissions/<permission_id>- удалить доступ -
POST /permission/role/<role_id>- назначить доступ роли -
DELETE /permission/role/<role_id>- назначить доступ роли
Для наших целей не обязательно создавать систему управления ролями (вот и бизнес-логика) - можно захардкодить роли и доступы ролей
Модели:
BranchesUser_x_Branch
Роуты:
-
POST /branches/- создать филиал [Админ] -
GET /branches/- получить филиалы -
POST /branches/user/<user_id>- привязать пользователя к филиалу [Админ] -
DELETE /branches/user/<user_id>- удалить привязку пользователя к филиалу [Админ]
Модели:
Products
Роуты:
-
GET /products/- получить продукты (с фильтрацией) -
GET /products/<product_id>- получить детальную информацию о продукте -
POST /products/- создать продукт [Админ, отдел продаж] -
PATCH /products/- изменить продукт [Админ, отдел продаж] -
DELETE /products/- удалить продукт [Админ, отдел продаж]
Модели:
Sales
Роуты:
-
POST /sales/- внести продажу (без ошибок!), раз в месяц [филиал] -
DELETE /sales/<dale_id>- удалить продажу [Админ]
Модели:
Providers
Роуты:
-
GET /providers/- получить полную информацию о всех поставщиках -
POST /providers/- создать поставщика [отдел продаж, Админ] -
PATCH /providers/- изменить поставщика [отдел продаж, юр.отдел, Админ]
Пользователь:
Филиалы:
Заявки:
Логистика: