Предварительная декомпозиция задач - kzagorulko/flower-system GitHub Wiki
Регистрировать пользователей может администратор Авторизация происходит по email и password
Модели:
UserModel
Roles
Permissions
Роуты для пользователей:
-
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>
- назначить доступ роли
Для наших целей не обязательно создавать систему управления ролями (вот и бизнес-логика) - можно захардкодить роли и доступы ролей
Модели:
Branches
User_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/
- изменить поставщика [отдел продаж, юр.отдел, Админ]
Пользователь:
Филиалы:
Заявки:
Логистика: