การออกแบบระบบ (System Design)

Data model · Architecture · Feature roadmap — เอกสารอ้างอิงของแอปนี้

🗄 Entity Relationship Diagram

usersid · PKname · emailcurrency · localenotify_before_daysitemsid · PK · user_id · FKname · type (product/service)category · brand · modelpurchase_date (DATE)price (DECIMAL) · currencyvendor · receipt_noserial_number · notestags[] · statusidx(user_id, purchase_date)item_photosid · item_id · FKurl · sort_order · is_coverwarrantiesid · item_id · FKtype · providerstart_date · end_date (คำนวณ)service_recordsid · item_id · FKservice_date · type (ซ่อม/บำรุงรักษา)description · cost (DECIMAL)provider · under_warranty (BOOL)next_due_date · attachments[]categories (lookup)id · name_th · icondefault_warranty_months1:N มีหลายรายการ1:N หลายรูป1:11:N ประวัติซ่อม/บริการ

• ในเวอร์ชันนี้ warranty ถูกฝังในตาราง items (warranty_months) และ end_date คำนวณจาก purchase_date + months ณ runtime · • ลบรายการแบบ soft-delete · • รูปเก็บใน data/uploads/ เข้าถึงผ่าน /api/files/

✨ Features ที่ใช้งานได้แล้ว

✓
บันทึกการซื้อสินค้า/บริการ วันที่ซื้อ ราคา ร้านค้า ใบเสร็จ — บันทึกลง SQLite จริง
✓
ระบบประกันคำนวณวันหมดอายุ + สถานะ 3 ระดับ อัตโนมัติ
✓
ประวัติบริการเพิ่ม/แสดง timeline ซ่อม·บำรุงรักษา + ยอดค่าใช้จ่ายสะสม
✓
รูปหลายรูปอัปโหลดจริง ลาก-วางได้ ลบรูปได้ รองรับ PDF ใบเสร็จ
✓
ค้นหา + กรองค้นหาข้อความ กรองสถานะ เรียงตามราคา/วันที่
✓
แดชบอร์ดสถิติภาพรวม + กราฟค่าใช้จ่าย 6 เดือน

🚀 Features เสริมที่วางแผนไว้

+
แจ้งเตือนอัตโนมัติLine/Telegram ก่อนประกันหมด 30/7/1 วัน (cron รายวัน)
+
รายงาน + Exportสรุปค่าใช้จ่ายรายหมวด export CSV/PDF
+
ใบเสร็จ + OCRถ่ายใบเสร็จ → ดึงราคา/วันที่อัตโนมัติ
+
เตือนเปลี่ยนเครื่องค่าซ่อมสะสม > 50% ของราคา → แนะนำเปลี่ยน
+
Barcode / ค้นหารุ่นสแกนบาร์โค้ดดึงข้อมูลรุ่น + ประกันมาตรฐาน
+
แชร์ให้ครอบครัวหลาย user ต่อ 1 household + สิทธิ์ read/write

🏗 สถาปัตยกรรมที่ใช้ PWA-ready · SQLite

  • Frontend: Next.js 16 (App Router, Turbopack) + Tailwind v4 — Server Components ดึงข้อมูลตรงจาก DB
  • Database: SQLite ผ่าน node:sqlite (built-in ไม่ต้องติดตั้ง engine) ไฟล์เดียวที่ data/assetbook.db
  • รูปภาพ: เก็บไฟล์ที่ data/uploads/<itemId>/ โดยตรง + serve ผ่าน route /api/files/ (ขยายระบบ → S3/B2 + CDN)
  • แจ้งเตือน: วางแผน cron รายวันเช็ก warranty ใกล้หมด → LINE / Telegram
  • Auth: โหมดส่วนตัวตอนนี้ไม่มี login — เพิ่ม PIN/magic link ได้ภายหลัง

🔌 API ทั้งหมดของระบบ

MethodEndpointคำอธิบาย
GET/api/items?q=&status=&sort=ค้นหา/กรอง/เรียงรายการ
POST/api/items/createเพิ่มสินค้า/บริการใหม่
GET/api/items/:idรายละเอียด + ประกัน + ประวัติ
PATCH/api/items/:idแก้ไขรายการ
DELETE/api/items/:idลบ (soft-delete)
POST/api/items/:id/photosอัปโหลดรูป (หลายไฟล์)
DELETE/api/photos/:photoIdลบรูป + ไฟล์จริง
POST/api/items/:id/servicesเพิ่มประวัติการรับบริการ
GET/api/statsตัวเลข dashboard + กราฟ
GET/api/files/…serve ไฟล์รูป/เอกสาร
← กลับไปใช้งาน: แดชบอร์ด · รายการสินค้า