程式碼(clone 下來接著繼續做即可,裡面也有.sql檔可以匯入DB,也有 postman 的測試集合可以直import):

https://github.com/lucashsu95/coffee-shop-springboot

1. 情境故事

你受僱於一家剛起步的文青咖啡廳 "Code & Coffee"。老闆需要一個「庫存管理系統」來追蹤店內的咖啡豆和甜點。

老闆說:「我們賣兩種東西:咖啡豆甜點。我需要你幫我管理庫存,包括進貨、出貨、查詢剩餘數量。特別注意,每次出貨時,要同時扣除庫存並記錄這筆交易,不然會計會瘋掉!」


2. 技術要求

必須使用的技術


3. 資料庫設計

Product Table (產品主檔)

欄位名稱 型別 說明 限制
id Long 主鍵 Auto Increment
name String 產品名稱 NOT NULL, 最多50字
type String 產品類型 只能是 "BEAN" 或 "DESSERT"
price Integer 單價 NOT NULL, 必須 > 0
stock Integer 庫存數量 NOT NULL, 不可為負數

Transaction Table (交易記錄)

欄位名稱 型別 說明 限制
id Long 主鍵 Auto Increment
productId Long 關聯的產品ID Foreign Key
type String 交易類型 "IN" (進貨) 或 "OUT" (出貨)
quantity Integer 數量 NOT NULL, 必須 > 0
timestamp LocalDateTime 交易時間 自動記錄

4. API規格

A. 查詢所有產品

GET /api/v1/products