┌──────────────────────────────────────────────────────┐
│ 🧊 beggarFridge 9/28 │
│ │
│ 庫存 12 項 即將到期 3 項 已到期 1 項 │
├──────────────────────────────────────────────────────┤
│ │
│ 優先處理 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 豆腐 │ │ 光泉鮮乳 │ │
│ │ │ │ │ │
│ │ 距到期 1 天 │ │ 距到期 3 天 │ │
│ │ 已存放 4 天 │ │ 已存放 3 天 │ │
│ │ 9/29 到期 │ │ 10/1 到期 │ │
│ └──────────────────┘ └──────────────────┘ │
│ │
│ 其他庫存 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 雞蛋 │ │ 優格 │ │
│ │ 距到期 8 天 │ │ 距到期 5 天 │ │
│ │ 已存放 2 天 │ │ 已存放 1 天 │ │
│ └──────────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────────┘
from datetime import date
def calculate_inventory_status(
added_at: date,
expiration_date: date | None,
):
today = date.today()
stored_days = (
today - added_at
).days
if expiration_date is None:
return {
"stored_days": stored_days,
"remaining_days": None,
"freshness_status": "UNKNOWN",
}
remaining_days = (
expiration_date - today
).days
if remaining_days < 0:
status = "EXPIRED"
elif remaining_days == 0:
status = "TODAY"
elif remaining_days <= 3:
status = "SOON"
else:
status = "NORMAL"
return {
"stored_days": stored_days,
"remaining_days": remaining_days,
"freshness_status": status,
}