Files
we_pro_dock/BACKEND/GOODS.md
2024-05-14 16:58:27 +03:00

118 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Модель имущества
1. **GoodsType:**
- `name`(CharField): Название типа имущества.
2. **ConsumableType:**
- `name`(CharField): Название типа расходуемых ТМЦ.
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. **GoodsTypeSerializer:**
- `id` (IntegerField): Идентификатор типа имущества.
- `goodsTypeName` (CharField): Название типа имущества.
- `author` (SerializerMethodField): Автор типа имущества (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания типа имущества.
- `updatedAt` (DateTimeField): Дата и время последнего обновления типа имущества.
2. **ConsumableTypeSerializer:**
- `id` (IntegerField): Идентификатор типа расходуемых ТМЦ.
- `consumableTypeName` (CharField): Название типа расходуемых ТМЦ.
- `author` (SerializerMethodField): Автор типа расходуемых ТМЦ (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания типа расходуемых ТМЦ.
- `updatedAt` (DateTimeField): Дата и время последнего обновления типа расходуемых ТМЦ.
3. **GoodsSerializer:**
- `id` (IntegerField): Идентификатор имущества.
- `goods_type` (GoodsTypeSerializer): Тип имущества.
- `goodsName` (CharField): Название имущества.
- `goodsInventoryNumber` (CharField): Инвентарный номер имущества.
- `goodsDescription` (TextField): Описание имущества.
- `goodsPhoto` (ManyToManyField): Фотография имущества.
- `goodsConditionDescription` (TextField): Описание состояния имущества.
- `goodsDamageDateTime` (DateTimeField): Дата и время обнаружения повреждения имущества.
- `goodsRelatedObject` (ForeignKey): Объект, к которому относится имущество.
- `goodsResponsiblePerson` (CharField): Ответственное лицо за имущество.
- `goodsStatus` (CharField): Статус имущества.
- `author` (SerializerMethodField): Автор имущества (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания имущества.
- `updatedAt` (DateTimeField): Дата и время последнего обновления имущества.
4. **ConsumableSerializer:**
- `id` (IntegerField): Идентификатор расходуемого товара.
- `consumable_type` (ConsumableTypeSerializer): Тип расходуемого товара.
- `consumableName` (CharField): Название расходуемого товара.
- `consumableDescription` (TextField): Описание расходуемого товара.
- `consumablePhoto` (ManyToManyField): Фотография расходуемого товара.
- `consumableQuantity` (PositiveIntegerField): Количество расходуемого товара.
- `consumableQuantityUnit` (CharField): Единица измерения количества товара.
- `consumableRelatedObject` (ForeignKey): Объект, к которому относится товар.
- `consumableResponsiblePerson` (CharField): Ответственное лицо за товар.
- `author` (SerializerMethodField): Автор расходуемого товара (сериализатор `AuthorSerializer`).
- `createdAt` (DateTimeField): Дата и время создания расходуемого товара.
- `updatedAt` (DateTimeField): Дата и время последнего обновления расходуемого товара.
## Маршрутизатор
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`:** Удаляет расходуемый товар.
- **Права доступа:** Только аутентифицированные пользователи могут управлять расходуемыми товарами.