ระเบียบวิธีและข้อจำกัดของระบบ (Methodology)
เอกสารฉบับนี้จัดทำขึ้นเพื่ออธิบายหลักการออกแบบ อัลกอริทึมในการคำนวณ โครงสร้างข้อมูล และข้อจำกัดในเชิงวิศวกรรมของ Responsible Play Control Center เพื่อความโปร่งใสสูงสุดต่อผู้ใช้งาน
1. สถาปัตยกรรมความเป็นส่วนตัว (Local-Only Architecture)
ระบบถูกออกแบบภายใต้ปรัชญา “Localhost / Client-Side First” โดยไม่มีการติดตั้งฐานข้อมูลบนเซิร์ฟเวอร์ (Server Database), ไม่มีการเชื่อมต่อ Advertising Tracking Pixels, และไม่มีระบบเก็บ Log พฤติกรรมของผู้ใช้
- ข้อมูลการตั้งค่างบประมาณและประวัติเซสชันถูกบันทึกใน
localStorageของเบราว์เซอร์ผู้ใช้เท่านั้น - ไม่มี Network Request ใด ๆ เกิดขึ้นระหว่างการใช้งานเครื่องมือจับเวลาหรือการประเมินตนเอง
- ผู้ใช้สามารถสั่งส่งออก (Export) หรือล้างข้อมูล (Purge) ได้ตลอดเวลาจากหน้า จัดการข้อมูล
2. หลักการคำนวณงบประมาณ (Budget Math & Financial Safety)
ในการจัดการตัวเลขทางการเงิน ระบบใช้การแปลงค่าเป็นหน่วยจำนวนเต็มย่อย (Cent/Satang Integer Math) เพื่อป้องกันข้อผิดพลาดจาก Floating-point Arithmetic ของภาษา JavaScript (เช่น ปัญหา 0.1 + 0.2 ≠ 0.3):
limitCents = Math.round(limitAmount * 100);
spentCents = Math.round(spentAmount * 100);
remainingCents = limitCents - spentCents;
remainingAmount = remainingCents / 100;
percentageSpent = Math.round((spentCents / limitCents) * 100);
ระดับการแจ้งเตือนงบประมาณ:
safe (ปกติ):ยอดใช้จ่ายน้อยกว่า 80% ของงบประมาณที่กำหนดwarning (เตือน):ยอดใช้จ่ายตั้งแต่ 80% ถึง 99% ของงบประมาณreached / exceeded (ถึง/เกินเพดาน):ยอดใช้จ่ายครบ 100% หรือเกินกว่างบประมาณ
3. กลไกการจับเวลาที่แม่นยำ (Timestamp-based Timer)
ตัวจับเวลาไม่ได้พึ่งพาการนับรอบของ setInterval เพียงอย่างเดียว เนื่องจากเบราว์เซอร์จะลดความถี่ในการทำงานของ Background Tab (Tab Throttling) ระบบจึงใช้การคำนวณผลต่างของเวลาจริง (Timestamp Difference) จาก Date.now():
activeElapsedMs = currentTime - session.startedAt - session.totalPausedMs;
elapsedSeconds = Math.floor(activeElapsedMs / 1000);
สิ่งนี้ทำให้แม้ผู้ใช้จะสลับไปใช้งานแท็บอื่น ย่อหน้าจอ หรือเปิดเครื่องใหม่หลังจาก Refresh ตัวเลขเวลายังคงสะท้อนเวลาตามจริงได้อย่างแม่นยำ 100%
4. หลักการแบบประเมินตนเอง (Non-Diagnostic Assessment)
แบบประเมินตนเอง 9 ข้อออกแบบโดยอ้างอิงหลักการสะท้อนพฤติกรรม (Reflective Inquiry) โดย:
- ไม่ใช้คำศัพท์เชิงคลินิกหรือการวินิจฉัยโรค (Non-clinical labeling)
- แบ่งผลลัพธ์เป็น 3 ระดับคำแนะนำ (Tier 1: ปกติ, Tier 2: ทบทวนขอบเขต, Tier 3: หยุดพักและปรึกษาผู้เชี่ยวชาญ)
- แสดงข้อความ Disclaimer ชัดเจนว่าไม่ใช่การตรวจทางการแพทย์
5. Data Dictionary & Storage Schema
| Key Name | Storage Type | คำอธิบาย |
|---|---|---|
| h259_settings_v1 | localStorage | เก็บค่าการตั้งค่างบประมาณ, ระยะเวลาเซสชัน, และสถานะล็อก |
| h259_sessions_v1 | localStorage | Array ของประวัติเซสชันที่ผู้ใช้บันทึก (ID, เวลาเริ่ม, จบ, ยอดเงิน, บันทึก) |
| h259_active_session_v1 | localStorage | สถานะเซสชันที่กำลังจับเวลาอยู่แบบเรียลไทม์ |
| h259_selfcheck_v1 | localStorage | ผลการประเมินตนเองล่าสุด (เฉพาะเมื่อผู้ใช้เลือกบันทึก) |
6. ข้อจำกัดทางเทคนิค (Known Limitations)
- การล้างแคชเบราว์เซอร์: หากผู้ใช้สั่ง Clear Browsing Data หรือเปิดในโหมด Incognito/Private ข้อมูลที่บันทึกไว้ในอุปกรณ์จะสูญหาย
- การใช้งานข้ามอุปกรณ์: ข้อมูลจะไม่ Sync ข้ามอุปกรณ์ (เช่น มือถือกับคอมพิวเตอร์) เนื่องจากไม่มีระบบคลาวด์หรือการล็อกอิน
- การบล็อกในระดับเบราว์เซอร์: ระบบ Cooling-off lock เป็นการล็อกในระดับหน้าเว็บ ไม่สามารถป้องกันการเข้าถึงเว็บไซต์ภายนอกโดยตรงได้
7. นโยบายการแก้ไขข้อมูล (Correction Policy & History)
ข้อมูลสายด่วน หน่วยงานให้ความช่วยเหลือ และสูตรการคำนวณจะได้รับการตรวจสอบความถูกต้องเป็นประจำทุกไตรมาส หากพบข้อผิดพลาดสามารถแจ้งแก้ไขได้ผ่านช่องทางที่ระบุไว้ในหน้าเกี่ยวกับเรา
ประวัติการปรับปรุง:
- 19 สิงหาคม 2026: เผยแพร่เวอร์ชัน 1.0.0 ตรวจสอบความถูกต้องของสายด่วน 1323 และสมาคมสะมาริตันส์