This commit is contained in:
2024-05-14 11:39:33 +03:00
commit 2762ac794a
26 changed files with 1506 additions and 0 deletions

115
BACKEND/GOODS.md Normal file
View File

@@ -0,0 +1,115 @@
## Модель имущества
1. **GoodsType:**
- `name`: Название типа имущества.
2. **ConsumableType:**
- `name`: Название типа расходуемых ТМЦ.
3. **Goods:**
- `goods_type`: (ForeignKey) Связь с типом имущества (`GoodsType`).
- `goods_name`: (CharField) Название имущества.
- `inventory_number`: (CharField) Инвентарный номер имущества.
- `description`: (TextField) Описание имущества.
- `goods_photo`: (ManyToManyField) Фотографии имущества (связь с моделью `ImageGoods`).
- `condition_description`: (TextField) Описание состояния имущества.
- `damage_date_time`: (DateTimeField) Дата и время обнаружения порчи.
- `related_object`: (ForeignKey) Связь с объектом (`Object`), к которому относится имущество.
- `responsible_person`: (CharField) Ответственное лицо за имущество.
- `status`: (CharField) Статус состояния имущества (`good` - хорошее, `damaged` - поврежденное).
4. **Consumable:**
- `consumable_type`: (ForeignKey) Связь с типом расходуемых ТМЦ (`ConsumableType`).
- `name`: (CharField) Название расходуемого товара.
- `description`: (TextField) Описание товара.
- `consumable_photo`: (ManyToManyField) Фотографии товара (связь с моделью `ImageGoods`).
- `quantity`: (PositiveIntegerField) Количество товара.
- `quantity_unit`: (CharField) Единица измерения количества (выбор из предопределенных вариантов, например, шт., кг, л и т. д.).
- `related_object`: (ForeignKey) Связь с объектом (`Object`), к которому относится товар.
- `responsible_person`: (CharField) Ответственное лицо за товар.
## Сериализатор
1. **AuthorSerializer:**
- `username`: Имя пользователя.
- `bio`: Биография пользователя.
- `image`: Изображение пользователя.
- `following`: Подписка пользователя (булево значение).
2. **GoodsTypeSerializer:**
- `id`: Идентификатор типа имущества.
- `goodsTypeName`: Название типа имущества.
- `author`: Автор типа имущества (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания типа имущества.
- `updatedAt`: Дата и время последнего обновления типа имущества.
3. **ConsumableTypeSerializer:**
- `id`: Идентификатор типа расходуемых ТМЦ.
- `consumableTypeName`: Название типа расходуемых ТМЦ.
- `author`: Автор типа расходуемых ТМЦ (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания типа расходуемых ТМЦ.
- `updatedAt`: Дата и время последнего обновления типа расходуемых ТМЦ.
4. **GoodsSerializer:**
- `id`: Идентификатор имущества.
- `goods_type`: Тип имущества.
- `goodsName`: Название имущества.
- `goodsInventoryNumber`: Инвентарный номер имущества.
- `goodsDescription`: Описание имущества.
- `goodsPhoto`: Фотография имущества.
- `goodsConditionDescription`: Описание состояния имущества.
- `goodsDamageDateTime`: Дата и время обнаружения повреждения имущества.
- `goodsRelatedObject`: Объект, к которому относится имущество.
- `goodsResponsiblePerson`: Ответственное лицо за имущество.
- `goodsStatus`: Статус имущества.
- `author`: Автор имущества (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания имущества.
- `updatedAt`: Дата и время последнего обновления имущества.
5. **ConsumableSerializer:**
- `id`: Идентификатор расходуемого товара.
- `consumable_type`: Тип расходуемого товара.
- `consumableName`: Название расходуемого товара.
- `consumableDescription`: Описание расходуемого товара.
- `consumablePhoto`: Фотография расходуемого товара.
- `consumableQuantity`: Количество расходуемого товара.
- `consumableQuantityUnit`: Единица измерения количества товара.
- `consumableRelatedObject`: Объект, к которому относится товар.
- `consumableResponsiblePerson`: Ответственное лицо за товар.
- `author`: Автор расходуемого товара (сериализатор `AuthorSerializer`).
- `createdAt`: Дата и время создания расходуемого товара.
- `updatedAt`: Дата и время последнего обновления расходуемого товара.
## Маршрутизатор
1. `router.register('goods', GoodsView, basename='goods')`: Регистрация представления `GoodsView` в маршрутизаторе под именем `'goods'`, с указанием базового имени `'goods'`. Это создаст URL-адреса для операций CRUD (создание, чтение, обновление, удаление) имущества.
2. `router.register('goods-types', GoodsTypeView, basename='goods-types')`: Регистрация представления `GoodsTypeView` в маршрутизаторе под именем `'goods-types'`, с указанием базового имени `'goods-types'`. Это создаст URL-адреса для операций CRUD (создание, чтение, обновление, удаление) типов имущества.
3. `router.register('consumable-types', ConsumableTypeView, basename='consumable-types')`: Регистрация представления `ConsumableTypeView` в маршрутизаторе под именем `'consumable-types'`, с указанием базового имени `'consumable-types'`. Это создаст URL-адреса для операций CRUD (создание, чтение, обновление, удаление) типов расходуемых товаров.
4. `router.register('consumable', ConsumableView, basename='consumable')`: Регистрация представления `ConsumableView` в маршрутизаторе под именем `'consumable'`, с указанием базового имени `'consumable'`. Это создаст URL-адреса для операций CRUD (создание, чтение, обновление, удаление) расходуемых товаров.
## Контроллер
1. **GoodsView:**
- **Описание:** Это представление, использующее `ModelViewSet`, обрабатывает операции CRUD для имущества.
- **Методы:**
- **list:** Возвращает список имущества.
- **create:** Создает новое имущество.
- **retrieve:** Возвращает конкретное имущество по его идентификатору.
- **update:** Обновляет существующее имущество.
- **destroy:** Удаляет имущество.
- **Права доступа:** Только аутентифицированные пользователи имеют доступ к этим методам.
2. **GoodsTypeView:**
- **Описание:** Это представление, также использующее `ModelViewSet`, для операций CRUD с типами имущества.
- **Методы:**
- **list:** Возвращает список типов имущества.
- **create:** Создает новый тип имущества.
- **destroy:** Удаляет тип имущества.
- **Права доступа:** Только аутентифицированные пользователи могут выполнять действия с типами имущества.
3. **ConsumableTypeView:**
- **Описание:** Представление для операций CRUD с типами расходуемых товаров.
- **Методы:**
- **list:** Возвращает список типов расходуемых товаров.
- **create:** Создает новый тип расходуемого товара.
- **destroy:** Удаляет тип расходуемого товара.
- **Права доступа:** Только аутентифицированные пользователи имеют доступ к этим методам.
4. **ConsumableView:**
- **Описание:** Представление для операций CRUD с расходуемыми товарами.
- **Методы:**
- **list:** Возвращает список расходуемых товаров.
- **create:** Создает новый расходуемый товар.
- **destroy:** Удаляет расходуемый товар.
- **Права доступа:** Только аутентифицированные пользователи могут управлять расходуемыми товарами.