- YouTube: https://www.youtube.com/@SachkovTech
- Tg: t.me/sachkov_blog
- Курс: sachkov-dotnet.ru
- Twitch: twitch.tv/sachkovtech
SmartDepot — это API, где логистика встречает абсурд. Склады тут ворчат, предметы капризничают, а Петрович раздаёт советы, от которых плачут даже серверы.
docker-compose.yml
services:
api:
image: bebekon/smartdepot-api:latest
ports:
- "8080:8080"
- "8081:8081"
depends_on:
- db
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ConnectionStrings__Database=Host=db;Port=5432;Database=SmartDepot;User Id=postgres;Password=123;
restart: unless-stopped
db:
image: postgres:15
container_name: smartdepot-db
environment:
POSTGRES_DB: SmartDepot
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123
ports:
- "15432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
Потом перейти по адресу: http://localhost:8080/swagger/index.html
| Метод | URL | Описание |
|---|---|---|
| GET | /api/items/get_all |
Все предметы (включая их "капризы") |
| GET | /api/items/get_by_id/{id} |
Предмет по ID. |
| GET | /api/items/mood |
Коллекция настроений предметов |
| POST | /api/items/create |
Создать предмет. |
| PUT | /api/items/update/{id} |
Обновить данные. |
| DELETE | /api/items/delete/{id} |
Удалить предмет. |
Форма добавления предмета
| Метод | URL | Описание |
|---|---|---|
| GET | /api/petrovich/advice |
Получить жизненный совет от Петровича. Пример: "Не храни арбузы в морозилке. Это не мороженое!" |
| GET | /api/petrovich/status |
Статус складов глазами Петровича: "Склад №3 сегодня в депрессии. Дайте ему печеньку." |
| POST | /api/petrovich/TestData |
Заполнить базу тестовыми данными. |
| Метод | URL | Описание |
|---|---|---|
| GET | /api/transfers/get_all |
Вся история перемещений. |
| POST | /api/transfers/create |
Запустить перемещение. |
Форма перемещения
| Метод | URL | Описание |
|---|---|---|
| GET | /api/warehouses/get_all |
Все склады. |
| GET | /api/warehouses/get_by_id/{id} |
Склад по ID. |
| GET | /api/warehouses/get_items_by_id/{id}/items |
Предметы на складе. |
| POST | /api/warehouses/create |
Создать склад. |
| PUT | /api/warehouses/update/{id} |
Обновить склад. |
| DELETE | /api/warehouses/delete/{id} |
Удалить склад. |
Форма добавление склада
Полный цикл API
Все заявленные эндпоинты реализованы:
- Управление складами, предметами, перемещениями
- Система "капризов" предметов (настроение, условия хранения)
- Интеграция с PostgreSQL + автоматические миграции Ответы петровича что-то с чем то, главное они каждый раз разные
Логика перемещений
- Проверка условий хранения
-
Глубокая аналитика от Петровича
- Планировалось добавить
/api/petrovich/analyzeс полным анализом данных и советами от Петровича, но... время кончилось.
- Планировалось добавить
-
Сложные сценарии капризов
- Предметы пока "грустят" только из-за температуры. Хотелось:
- Ревность ("Почему соседнюю коробку переместили раньше?")
- Лень ("Не хочу переезжать, тут удобно!")
- Предметы пока "грустят" только из-за температуры. Хотелось:
- .NET 9 + PostgreSQL.
- Swagger.
- Entity Framework Core.
ВАЖНО: Петрович всегда прав. Даже когда не прав. Особенно тогда.













