這幾天都在外,沒有帶硬體出門,就先繼續開發一些 API 晚點再來實測
當前面的進出都已經做好之後,再來應該就要利用資料庫,來解決記性不好常常把食物放到過期的問題了
GET /api/alerts/expiration
{
"count": 3,
"items": [
{
"name": "豆腐",
"remaining_days": 1
},
{
"name": "光泉鮮乳",
"remaining_days": 2
},
{
"name": "優格",
"remaining_days": 3
}
]
}
from datetime import date
def get_expiration_status(
expiration_date: date | None,
warning_days: int = 3,
):
if expiration_date is None:
return {
"remaining_days": None,
"status": "UNKNOWN",
}
today = date.today()
remaining_days = (
expiration_date - today
).days
if remaining_days < 0:
status = "EXPIRED"
elif remaining_days == 0:
status = "TODAY"
elif remaining_days <= warning_days:
status = "SOON"
else:
status = "NORMAL"
return {
"remaining_days": remaining_days,
"status": status,
}
InventoryItem
│
├── expiration_date
├── status
└── product_id
│
▼
Product
│
└── warning_days
│
▼
ExpirationService
│
┌────┼────┐
▼ ▼ ▼
NORMAL SOON EXPIRED
│
▼
NotificationService
│
▼
Alert API
│
▼
Dashboard