{ "version": "1.0.0", "project": { "name": "lcbp3-frontend", "languages": [ "typescript", "javascript", "markdown", "json" ], "frameworks": [ "nextjs", "react", "tailwindcss" ], "description": "Next.js frontend for LCBP3 project", "analyzedAt": "2026-06-13T13:24:06.067Z", "gitCommitHash": "190b9a3af5f505e9ec59ba8d447c4720b2cb7dae" }, "nodes": [ { "id": "file:lib/api/client.ts", "type": "file", "name": "client.ts", "filePath": "lib/api/client.ts", "summary": "คลาสหรือออบเจกต์ที่ใช้จัดการการเรียกดู API จากแหล่งข้อมูลภายนอก โดยมีหน้าที่เป็นตัวกลางในการสื่อสารระหว่างแอปพลิเคชันและเซิร์ฟเวอร์", "tags": [ "api-client", "http-client" ], "complexity": "simple" }, { "id": "file:lib/services/admin-ai.service.ts", "type": "file", "name": "admin-ai.service.ts", "filePath": "lib/services/admin-ai.service.ts", "summary": "บริการสำหรับจัดการข้อมูล AI และสถานะโมเดล โดยมีฟังก์ชันหลักคือ extractData, normalizeLoadedModels และ normalizeVramStatus เพื่อเตรียมข้อมูลให้พร้อมใช้งานในระบบ", "tags": [ "service", "ai-management", "data-normalization" ], "complexity": "moderate" }, { "id": "file:types/ai.ts", "type": "file", "name": "ai.ts", "filePath": "types/ai.ts", "summary": "ไฟล์โค้ดหน้าบ้าน ai.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/services/ai-intent.service.ts", "type": "file", "name": "ai-intent.service.ts", "filePath": "lib/services/ai-intent.service.ts", "summary": "บริการสำหรับดึงข้อมูลจาก AI โดยใช้ client API เพื่อวิเคราะห์เจตนาของผู้ใช้งาน ฟังก์ชัน extractData มีหน้าที่รับข้อความและส่งไปยัง backend เพื่อดำเนินการประมวลผล", "tags": [ "service", "ai-intent", "api-client" ], "complexity": "moderate" }, { "id": "file:lib/services/ai-prompts.service.ts", "type": "file", "name": "ai-prompts.service.ts", "filePath": "lib/services/ai-prompts.service.ts", "summary": "บริการสำหรับจัดการคำขอ AI prompts โดยมีฟังก์ชัน extractData และ unwrapResponse ที่ใช้ในการดึงข้อมูลและแปลงรูปแบบคำตอบจาก API ส่งกลับมาให้เหมาะสมกับโครงสร้างของระบบ", "tags": [ "service", "ai-prompts", "api-client" ], "complexity": "moderate" }, { "id": "file:lib/services/ai.service.ts", "type": "file", "name": "ai.service.ts", "filePath": "lib/services/ai.service.ts", "summary": "ไฟล์นี้เป็นบริการสำหรับจัดการการทำงานของ AI โดยมีฟังก์ชัน extractData และ normalizePaginated ที่ใช้ในการดึงข้อมูลและปรับรูปแบบผลลัพธ์ให้อยู่ในรูปแบบมาตรฐานตามความต้องการ", "tags": [ "service", "ai", "data-processing" ], "complexity": "moderate" }, { "id": "file:lib/services/migration.service.ts", "type": "file", "name": "migration.service.ts", "filePath": "lib/services/migration.service.ts", "summary": "บริการสำหรับจัดการข้อมูลย้ายฐานข้อมูล โดยมีฟังก์ชัน extractNestedData ใช้ดึงข้อมูลที่ซ้อนอยู่ในโครงสร้างหลายระดับ และ normalizePaginatedResponse เปลี่ยนรูปแบบคำตอบจาก API เพื่อให้ง่ายต่อการประมวลผล", "tags": [ "service", "migration", "data-processing" ], "complexity": "moderate" }, { "id": "file:types/ai-prompts.ts", "type": "file", "name": "ai-prompts.ts", "filePath": "types/ai-prompts.ts", "summary": "ไฟล์โค้ดหน้าบ้าน ai-prompts.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/layout/global-search.tsx", "type": "file", "name": "global-search.tsx", "filePath": "components/layout/global-search.tsx", "summary": "คอมโพเนนต์ค้นหาทั่วไปสำหรับผู้ใช้งาน โดยแสดงปุ่มค้นหาและช่องกรอกข้อมูลเพื่อค้นหารายการในระบบ", "tags": [ "search", "global" ], "complexity": "simple" }, { "id": "file:components/layout/header.tsx", "type": "file", "name": "header.tsx", "filePath": "components/layout/header.tsx", "summary": "คอมโพเนนต์หัวข้อ (Header) ที่ใช้แสดงแถบเมนูหลักและองค์ประกอบการจัดการโปรเจกต์ เช่น การค้นหาทั่วไป ส่วนย่อยของระบบแจ้งเตือน และปุ่มสลับธีม โดยเชื่อมโยงเข้ากับคอมโพเนนต์อื่นๆ ในโครงสร้าง layout", "tags": [ "header", "layout", "navigation" ], "complexity": "moderate" }, { "id": "file:components/layout/notifications-dropdown.tsx", "type": "file", "name": "notifications-dropdown.tsx", "filePath": "components/layout/notifications-dropdown.tsx", "summary": "คอมโพเนนต์สำหรับแสดงเมนูแจ้งเตือนในส่วนหัวหน้าเว็บไซต์ โดยมีฟังก์ชัน NotificationsDropdown ที่ใช้จัดวางและควบคุมการแสดงผลของรายการแจ้งเตือน", "tags": [ "component", "layout", "notifications-dropdown" ], "complexity": "moderate" }, { "id": "file:components/layout/project-switcher.tsx", "type": "file", "name": "project-switcher.tsx", "filePath": "components/layout/project-switcher.tsx", "summary": "คอมโพเนนต์สำหรับสลับโครงการ โดยมีฟังก์ชัน ProjectSwitcher ที่ใช้ในการแสดงรายการโครงการและให้ผู้ใช้งานเลือกได้ เหมาะสำหรับการจัดการหลายโครงการในแอปพลิเคชัน", "tags": [ "component", "layout", "project-switch" ], "complexity": "moderate" }, { "id": "file:components/layout/sidebar.tsx", "type": "file", "name": "sidebar.tsx", "filePath": "components/layout/sidebar.tsx", "summary": "ไฟล์นี้เป็นส่วนประกอบหลักสำหรับการแสดงเมนูด้านซ้ายของระบบ โดยมีฟังก์ชัน Sidebar และ MobileSidebar ที่ใช้จัดวางโครงสร้างเมนูตามหน้าจอและอุปกรณ์ต่าง ๆ", "tags": [ "layout", "sidebar", "navigation" ], "complexity": "moderate" }, { "id": "file:components/layout/theme-toggle.tsx", "type": "file", "name": "theme-toggle.tsx", "filePath": "components/layout/theme-toggle.tsx", "summary": "คอมโพเนนต์ ThemeToggle เป็นส่วนหนึ-่งของระบบการจัดรูปแบบธีม โดยให้ผู้ใช้งานสามารถสลับระหว่างโหมดสว่างและมืดได้อย่างยืดหยุ่น", "tags": [ "component", "theme-toggle", "layout" ], "complexity": "simple" }, { "id": "file:components/layout/user-menu.tsx", "type": "file", "name": "user-menu.tsx", "filePath": "components/layout/user-menu.tsx", "summary": "คอมโพเนนต์เมนูผู้ใช้งานที่แสดงข้อมูลโปรไฟล์และฟังก์ชันการจัดการบัญชี เช่น การเข้าสู่ระบบหรือออกจากระบบ โดยมีโครงสร้างภายในประกอบด้วยปุ่มย่อยต่างๆ และเชื่อมโยงไปยังหน้าต่างบริหารจัดการผู้ใช้งาน", "tags": [ "component", "layout", "user-interface" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/rag/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/rag/page.tsx", "summary": "หน้าแดชบอร์ดสำหรับการใช้งาน AI Chat Widget โดยมีฟังก์ชัน RagPage ที่จัดการการแสดงผลและเชื่อมโยงกับส่วนประกอบต่าง ๆ เช่น RagChatWidget และข้อมูลจาก project-store", "tags": [ "dashboard", "ai-chat-widget", "rag-page", "component" ], "complexity": "moderate" }, { "id": "file:components/ai/RagChatWidget.tsx", "type": "file", "name": "RagChat", "filePath": "components/ai/RagChatWidget.tsx", "summary": "คอมโพเนนต์แชทบอท AI แบบใช้ Retrieval-Augmented Generation (RAG) โดยมีฟังก์ชันแสดงสถานะการทำงานของระบบ และรายการคำอ้างอิงจากเอกสารที่ใช้อ้างอิงในการตอบสนอง", "tags": [ "ai-chatbot", "rag-component", "citation-list", "status-badge" ], "complexity": "moderate" }, { "id": "file:lib/stores/project-store.ts", "type": "file", "name": "project-store.ts", "filePath": "lib/stores/project-store.ts", "summary": "ไฟล์โค้ดหน้าบ้าน project-store.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "service:.dockerignore", "type": "service", "name": ".dockerignore", "filePath": ".dockerignore", "summary": "ไฟล์บริการเสริม/คอนเทนเนอร์ .dockerignore", "tags": [ "infrastructure" ], "complexity": "simple" }, { "id": "config:.env.example", "type": "config", "name": ".env.example", "filePath": ".env.example", "summary": "ไฟล์ตั้งค่าฝั่งหน้าบ้าน .env.example", "tags": [ "configuration" ], "complexity": "simple" }, { "id": "document:README.md", "type": "document", "name": "README.md", "filePath": "README.md", "summary": "เอกสาร README.md", "tags": [ "documentation" ], "complexity": "simple" }, { "id": "config:components.json", "type": "config", "name": "components.json", "filePath": "components.json", "summary": "ไฟล์ตั้งค่าฝั่งหน้าบ้าน components.json", "tags": [ "configuration", "component" ], "complexity": "simple" }, { "id": "config:tsconfig.json", "type": "config", "name": "tsconfig.json", "filePath": "tsconfig.json", "summary": "ไฟล์ตั้งค่าฝั่งหน้าบ้าน tsconfig.json", "tags": [ "configuration" ], "complexity": "simple" }, { "id": "file:app/(admin)/admin/access-control/organizations/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/access-control/organizations/page.tsx", "summary": "หน้าจัดการองค์กรสำหรับผู้ดูแลระบบ โดยมีฟังก์ชัน OrganizationsPage ที่ใช้จัดแสดงข้อมูลองค์กรและรองรับการทำงานของระบบรักษาความปลอดภัยระดับสูง", "tags": [ "admin", "access-control", "organizations", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/access-control/roles/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/access-control/roles/page.tsx", "summary": "หน้าจัดการบทบาท (Roles) สำหรับระบบบริหารจัดการ โดยมีฟังก์ชัน RolesPage เป็นหลักที่ใช้ในการแสดงผลข้อมูลบทบาทต่าง ๆ และจัดการสิทธิ์ผู้ใช้งาน", "tags": [ "admin", "access-control", "roles" ], "complexity": "moderate" }, { "id": "file:/app/(admin)/admin/access-control/users/page.tsx", "type": "file", "name": "users/page.tsx", "filePath": "/app/(admin)/admin/access-control/users/page.tsx", "summary": "หน้าจัดการผู้ใช้งาน (Users Page) สำหรับระบบบริหารจัดการภายใน โดยมีฟังก์ชัน UsersPage เป็นหลักที่ดูแลการแสดงผลและตรรกะการทำงานของหน้านี้ มีโค้ดรวมทั้งหมด 214 บรรทัด", "tags": [ "admin", "access-control", "users-management", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/ai/intent-classification/analytics/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/ai/intent-classification/analytics/page.tsx", "summary": "หน้าแดชบอร์ดวิเคราะห์ข้อมูลการจำแนกประเภทเจตนา (Intent Classification Analytics) สำหรับผู้ดูแลระบบ โดยมีฟังก์ชันหลักคือ IntentAnalyticsPage ที่จัดแสดงสถิติด้านประสิทธิภาพของโมเดล AI และพฤติกรรมข้อมูลการใช้งาน", "tags": [ "analytics", "intent-classification", "admin-dashboard" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/ai/intent-classification/[intentCode]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/ai/intent-classification/[intentCode]/page.tsx", "summary": "หน้าแสดงรายละเอียดการจัดประเภทเจตนา (Intent) โดยใช้ระบบ AI สำหรับบริษัท lcbp3-frontend มีฟังก์ชันหลักคือ IntentDetailPage ซึ่งทำงานร่วมกับโครงสร้าง routing และ context เพื่อแสดงข้อมูลเจตนาเฉพาะตามรหัส intentCode", "tags": [ "intent-classification", "admin-panel", "ai-service", "dynamic-routing" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/ai/intent-classification/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/ai/intent-classification/page.tsx", "summary": "หน้าเว็บไซต์สำหรับการจำแนกเจตนาของผู้ใช้ด้วยปัญญาประดิษฐ์ โดยมีฟังก์ชันหลักคือ IntentClassificationPage ที่จัดการการแสดงผลและตรรกะการทำงาน", "tags": [ "page", "intent-classification", "ai" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/ai/intent-classification/test-console/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/ai/intent-classification/test-console/page.tsx", "summary": "หน้าเว็บสำหรับทดสอบระบบจำแนกเจตนาของผู้ใช้ โดยมีฟังก์ชันหลักคือ TestConsolePage ที่จัดการการแสดงผลและโต้ตอบกับผู้ใช้งานในบริบทของการพัฒนาระบบ AI", "tags": [ "page", "admin", "ai", "intent-classification", "test-console" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/ai/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/ai/page.tsx", "summary": "หน้าจัดการ AI เป็นไปตามโครงสร้างของระบบบริหารจัดการ โดยมีฟังก์ชันหลักคือ AiAdminConsolePage ที่ใช้ในการแสดงผลและควบคุมโมเดลต่าง ๆ เนื้อหาภายในประกอบด้วยการแปลงข้อมูลแบบ canonical และ normalizeLoadedModels เพื่อกำหนดรูปแบบการแสดงผล", "tags": [ "admin", "ai-console", "page-component" ], "complexity": "complex" }, { "id": "file:app/(admin)/admin/audit-logs/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/audit-logs/page.tsx", "summary": "หน้าแสดงรายการบันทึกการตรวจสอบ (Audit Logs) สำหรับผู้ดูแลระบบ โดยมีฟังก์ชันหลักชื่อ AuditLogsPage ซึ่งจัดวางโครงสร้างการแสดงข้อมูลอย่างเป็นระเบียบ", "tags": [ "admin", "audit-logs", "page" ], "complexity": "simple" }, { "id": "file:app/(admin)/admin/doc-control/contracts/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc-control/contracts/page.tsx", "summary": "หน้าจัดการสัญญา (ContractsPage) ใช้ hook useContracts และ useProjectsList เพื่อดึงข้อมูลจาก backend โดยมีโครงสร้างหลักเป็นการแสดงผลรายการสัญญาและโปรเจกต์ที่เกี่ยวข้อง มีการจัดวางองค์ประกอบ UI เรียบร้อยพร้อมใช้งานในระบบบริหารเอกสาร", "tags": [ "admin-dashboard", "contracts-management", "hook-based-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/contract/categories/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/drawings/contract/categories/page.tsx", "summary": "หน้าจัดการหมวดหมู่สัญญา โดยมีฟังก์ชันหลักคือ ContractCategoriesPage ที่แสดงข้อมูลและควบคุมการแสดงผลของแต่ละหมวดหมู่ ส่วน ManageMappings เป็นคอมโพเนนต์สำหรับจัดการ mapping และ CategoryMappingSection เป็นส่วนย่อยที่แสดงรายละเอียดการแมป โดยใช้ ErrorBoundary เพื่อจัดการข้อผิดพลาดในกระบวนการ render", "tags": [ "admin", "contract", "category-management", "mapping-controller" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/contract/sub-categories/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/drawings/contract/sub-categories/page.tsx", "summary": "หน้าจัดการหมวดหมู่สัญญาในระบบบริหารเอกสารแบบดีบุ๊ก โดยใช้ Component ContractSubCategoriesPage เพื่อแสดงข้อมูลรายละเอียดของแต่ละหมวดหมู่ และรองรับการทำงานตามโครงสร้างของระบบบริหารงานภายใน", "tags": [ "admin", "contract", "sub-categories", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/contract/volumes/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/drawings/contract/volumes/page.tsx", "summary": "หน้าแสดงรายการปริมาตรสัญญา โดยมีฟังก์ชันหลักชื่อ ContractVolumesPage ที่ใช้จัดการการแสดงผลข้อมูลและปฏิสัมพันธ์ผู้ใช้งานในระดับหน่วยงานบริหาร", "tags": [ "admin", "contract", "volume-management", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc- control/drawings/page.tsx", "summary": "หน้าจัดการร่างแบบดีไซน์สำหรับผู้ดูแลระบบ โดยมีฟังก์ชัน DrawingsAdminPage ที่ใช้ในการแสดงข้อมูลและควบคุมการทำงานของเอกสารการออกแบบ", "tags": [ "admin", "doc-control", "drawings", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/shop/main-categories/page.tsx", "type": "file", "name": "main-categories/page.tsx", "filePath": "/app/(admin)/admin/doc-control/drawings/shop/main-categories/page.tsx", "summary": "หน้าแสดงรายการหมวดหมู่สินค้าสำหรับร้านค้า โดยมีฟังก์ชัน ShopMainCategoriesPage ที่จัดการการแสดงผลและตรรกะหลักของหน้าเว็บไซต์นี้ มีโค้ดรวมทั้งหมด 115 บรรทัด", "tags": [ "page", "admin", "shop", "main-categories" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/drawings/shop/sub-categories/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/drawings/shop/sub-categories/page.tsx", "summary": "หน้าแสดงรายการหมวดหมู่ย่อยของร้านค้าในระบบบริหารจัดการเอกสาร การเขียนโค้ดมีโครงสร้างชัดเจน โดยใช้งานฟังก์ชัน ShopSubCategoriesPage ซึ่งทำงานเป็นหน้าเว็บไซต์สำหรับแสดงข้อมูลหมวดหมู่ย่อยของร้านค้า", "tags": [ "page", "admin", "shop", "sub-categories" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/numbering/[id]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/numbering/[id]/edit/page.tsx", "summary": "หน้าจัดการแก้ไขระบบตัวเลขเอกสารสำหรับผู้ดูแลระบบ โดยมีฟังก์ชันหลักคือ EditTemplatePage ที่ใช้ในการแสดงและปรับแต่งข้อมูลตัวเลขเอกสารตาม ID เอกสาร", "tags": [ "admin", "doc-control", "numbering", "edit" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/numbering/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/numbering/new/page.tsx", "summary": "หน้าจัดการเลขที่เอกสารใหม่ โดยมีฟังก์ชันหลักคือ NewTemplatePage ซึ่งใช้ในการสร้างหรือกำหนดรูปแบบเลขที่เอกสารต่าง ๆ เนื้อหาภายในยังไม่มีรายละเอียดเพิ่มเติม", "tags": [ "admin", "doc-control", "numbering" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/numbering/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/numbering/page.tsx", "summary": "หน้าจัดการเลขที่เอกสาร โดยมีฟังก์ชัน NumberingPage ซึ่งทำงานร่วมกับระบบบริหารจัดการเอกสารภายในโครงการ lcbp3-frontend", "tags": [ "page", "admin", "doc-control" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/projects/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc-ctrl/projects/page.tsx", "summary": "หน้าจัดการโครงการสำหรับผู้ดูแลระบบ โดยมีฟังก์ชัน ProjectsPage ที่ใช้ในการแสดงข้อมูลและจัดการรายการโครงการต่าง ๆ มีโค้ดรวมทั้งหมด 231 บรรทัด", "tags": [ "admin-page", "projects-management", "document-control" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/correspondence-types/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc- control/reference/correspondence-types/page.tsx", "summary": "หน้าแสดงรายการประเภทจดหมายภายในระบบบริหารเอกสาร โดยมีฟังก์ชันหลักคือ CorrespondenceTypesPage ที่ใช้ในการจัดการและนำเสนอข้อมูลเกี่ยวกับประเภทจดหมายต่าง ๆ ในระบบทั้งหมด", "tags": [ "admin", "doc-control", "reference", "correspondence-types", "page" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/disciplines/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc-control/reference/disciplines/page.tsx", "summary": "หน้าแสดงรายละเอียดของสาขาต่าง ๆ ในระบบบริหารเอกสาร โดยมีฟังก์ชันหลักคือ DisciplinesPage ที่จัดการการแสดงผลข้อมูลสาขาตามโครงสร้างของระบบ และรองรับการทำงานร่วมกับโมดูลอื่น ๆ เช่น การจัดเก็บข้อมูลและการแสดงผลในหน้าเว็บ", "tags": [ "admin", "doc-control", "discipline-management", "reference-page" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/drawing-categories/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/reference/drawing-categories/page.tsx", "summary": "หน้าจัดการหมวดหมู่ภาพวาด โดยมีฟังก์ชัน DrawingCategoriesPage ที่ใช้ในการแสดงข้อมูลและจัดการรายการหมวดหมู่ต่าง ๆ เน้นการแสดงผลแบบ responsive และรองรับการทำงานภายใต้ระบบทั่วไป", "tags": [ "page", "admin", "drawing-categories" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-ctrl/reference/page.tsx", "summary": "หน้าจัดการข้อมูลอ้างอิงสำหรับระบบบริหารเอกสาร โดยมีฟังก์ชันหลักคือ ReferenceDataPage ที่ใช้ในการแสดงผลและจัดการข้อมูลต่าง ๆ เช่น การดูรายละเอียดและการปรับแต่งข้อมูล", "tags": [ "admin", "doc-control", "reference-data" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/rfa-types/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc-control/reference/rfa-types/page.tsx", "summary": "หน้าแสดงข้อมูลประเภทเอกสาร RFA โดยมีฟังก์ชันหลักคือ RfaTypesPage ที่จัดการการแสดงผลและตรรกะการทำงานของหน้านี้ มีโค้ดรวมทั้งหมด 136 บรรทัด", "tags": [ "page", "admin", "doc-control", "rfa-types" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/reference/tags/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/doc", "summary": "หน้าจัดการแท็กสำหรับระบบเอกสารภายในบริษัท โดยมีฟังก์ชันหลักคือ TagsPage ซึ่งใช้ในการแสดงและจัดการข้อมูลแท็กต่าง ๆ เน้นความเรียบง่ายและรองรับการทำงานร่วมกับระบบที่เกี่ยวข้อง", "tags": [ "admin", "doc-control", "reference", "tag-management" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/workflows/[id]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-ctrl/workflows/[id]/edit/page.tsx", "summary": "หน้าจัดการแก้ไขกระบวนการ (workflow) โดยใช้งานระบบ routing แบบ dynamic parameter [id] เพื่อแสดงข้อมูลเฉพาะรายตาม ID เก็บไว้ใน state และเชื่อมโยงกับ component อื่น ๆ เช่น form, preview, และ action buttons", "tags": [ "admin", "workflow-edit", "dynamic-routing", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/workflows/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/workflows/new/page.tsx", "summary": "หน้าจัดการสร้างงานใหม่สำหรับระบบบริหารเอกสาร โดยมีฟังก์ชันหลักคือ NewWorkflowPage ที่ใช้ในการแสดงผลและจัดการข้อมูลแบบเรียลไทม์", "tags": [ "admin", "workflow", "document-control" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/doc-control/workflows/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/doc-control/workflows/page.tsx", "summary": "หน้าแสดงรายการ workflow โดยมีฟังก์ชัน WorkflowsPage ที่ใช้จัดการการแสดงผลและตรรกะการทำงานของแต่ละ workflow เน้นความเรียบง่ายในการเข้าถึงข้อมูลจาก backend และแสดงผลผ่าน UI", "tags": [ "page", "admin", "workflow" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/migration/errors/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/migration/errors/page.tsx", "summary": "หน้าแสดงข้อผิดพลาดในการย้ายข้อมูล โดยมีฟังก์ชัน MigrationErrorsPage ที่ใช้จัดการการแสดงผลข้อความและสถานะของข้อผิดพลาดต่าง ๆ เน้นการออกแบบให้มีความเข้าใจง่ายสำหรับผู้ใช้งานระดับบริหาร", "tags": [ "page", "admin", "migration-error" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/migration/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/migration/page.tsx", "summary": "หน้าจัดการย้ายข้อมูล (Migration Management Page) สำหรับระบบบริหารจัดการผู้ใช้งาน โดยมีแท็บต่าง ๆ เช่น AiMigrationTab และ LegacyQueueTab เพื่อให้ผู้ดูแลระบบสามารถตรวจสอบและดำเนินการย้ายข้อมูลได้อย่างเป็นระบบ", "tags": [ "migration-management", "admin-dashboard", "ai-migration-tab", "legacy-queue-tab" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/migration/review/[id]/page.tsx", "type": "file", "name": "MigrationReviewPage", "filePath": "/app/(admin)/admin/migration/review/[id]/page.tsx", "summary": "หน้าแสดงผลการตรวจสอบการย้ายข้อมูล (migration review) โดยมีฟังก์ชันหลักชื่อ MigrationReviewPage ที่ใช้จัดรูปแบบการแสดงผลข้อมูลตาม ID จาก URL และรองรับการทำงานในสภาพแวดล้อมบริหารจัดการระบบ", "tags": [ "admin", "migration-review", "page-component", "dynamic-route" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/monitoring/audit-logs/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/monitoring/audit-logs/page.tsx", "summary": "หน้าแสดงรายการบันทึกการตรวจสอบสิทธิ์ (Audit Logs) สำหรับผู้ดูแลระบบ โดยมีฟังก์ชันหลักคือ AuditLogsPage ซึ่งจัดวางโครงสร้างการแสดงผลตามมาตรฐานของแอปพลิเคชัน และรองรับการทำงานภายใต้ระบบที่ต้องการความปลอดภัยสูง", "tags": [ "audit-logs", "admin-dashboard", "monitoring" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/monitoring/sessions/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/monitoring/sessions/page.tsx", "summary": "หน้าจัดการเซสชันสำหรับผู้ดูแลระบบ โดยมีฟังก์ชัน SessionManagementPage ที่ใช้จัดแสดงข้อมูลและควบคุมการทำงานของเซสชันต่าง ๆ มีโค้ดรวมทั้งหมด 115 บรรทัด", "tags": [ "admin", "monitoring", "session-management", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/monitoring/system-logs/numbering/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/monitoring/system-logs/numbering/page.tsx", "summary": "หน้าแสดงรายการบันทึกเลขลำดับระบบ โดยมีฟังก์ชัน NumberingLogsPage รับค่าจาก component และจัดการการแสดงผลข้อมูลตามเงื่อนไขต่าง ๆ เช่น การกรองหรือเรียงลำดับ", "tags": [ "page", "admin", "monitoring", "system-logs", "numbering" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/numbering/[id]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/numbering/[id]/edit/page.tsx", "summary": "หน้าแก้ไขเลขลำดับสำหรับระบบบริหารจัดการหมายเลข โดยใช้งานเฉพาะผู้มีสิทธิ์เข้าถึงระดับ admin เท่านั้น มีโครงสร้างเป็นหน้าเว็บไซต์แบบ single-page application ซึ่งเชื่อมโยงกับระบบบริหารจัดการหมายเลขโดยตรง", "tags": [ "admin", "edit", "numbering" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/numbering/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/numbering/new/page.tsx", "summary": "หน้าจัดทำเลขที่ใหม่สำหรับระบบบริหารจัดการเอกสาร โดยมีฟังก์ชันหลักคือ NumberingNewPage ซึ่งใช้ในการสร้างและจัดเก็บเลขที่ตามลำดับอัตโนมัติ", "tags": [ "admin", "numbering", "new-page" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/numbering/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/numbering/page.tsx", "summary": "หน้าจัดเรียงเลข (Numbering Page) สำหรับระบบบริหารจัดการภายใน โดยมีฟังก์ชันหลักคือ NumberingPage เน้นการแสดงผลและจัดการลำดับเลขตามต้องการ", "tags": [ "page", "admin", "numbering" ], "complexity": "simple" }, { "id": "file:app/(admin)/admin/organizations/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/organizations/page.tsx", "summary": "หน้าจัดการองค์กรสำหรับผู้ดูแลระบบ โดยมีฟังก์ชัน OrganizationsPage ที่ใช้แสดงข้อมูลองค์กรและจัดการรายการต่าง ๆ เน้นความเรียบง่ายและประสิทธิภาพในการทำงาน", "tags": [ "admin", "organizations", "page" ], "complexity": "simple" }, { "id": "file:app/(admin)/admin/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/page.tsx", "summary": "หน้าจัดการระบบ (Admin Page) โดยมีฟังก์ชันหลักคือ AdminPage ซึ่งใช้สำหรับแสดงข้อมูลและควบคุมการทำงานภายในระบบทั้งหมด มีโครงสร้างโค้ดยาวถึง 159 บรรทัด", "tags": [ "admin", "page", "dashboard" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/settings/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/settings/page.tsx", "summary": "หน้าตั้งค่าของระบบบริหารจัดการ โดยมีฟังก์ชัน SettingsPage ที่ใช้งานรวมถึงการจัดวางโครงสร้าง UI และการแสดงผลข้อมูลต่าง ๆ เน้นความเรียบง่ายและเข้าใจได้ง่าย", "tags": [ "admin", "settings", "page" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/users/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(admin)/admin/users/page.tsx", "summary": "หน้าจัดการผู้ใช้งาน (Users Page) สำหรับระบบบริหารจัดการภายใน โดยมีฟังก์ชัน UsersPage ที่สร้างขึ้นเพื่อแสดงรายการผู้ใช้งานและจัดการข้อมูลได้อย่างเป็นระเบียบ", "tags": [ "admin", "user-management", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/workflows/[id]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/workflows/[id]/edit/page.tsx", "summary": "หน้าจัดการแก้ไขกระบวนการ (Workflow) โดยใช้งานระบบ routing แบบ dynamic เพื่อแสดงข้อมูลตาม id และเชื่อมโยงกับ component WorkflowEditPage เน้นการแสดงผลและการควบคุมการทำงานของ workflow ในระบบที่มีโครงสร้าง admin", "tags": [ "admin", "workflow-edit", "dynamic-routing" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/workflows/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/workflows/new/page.tsx", "summary": "หน้าสร้างงานใหม่สำหรับระบบบริหารจัดการ workflow โดยมีฟังก์ชัน WorkflowNewPage ที่ใช้ในการแสดงผลและจัดการข้อมูลการทำงาน", "tags": [ "page", "workflow", "admin" ], "complexity": "moderate" }, { "id": "file:app/(admin)/admin/workflows/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(admin)/admin/workflows/page.tsx", "summary": "หน้าจัดการกระบวนการ (workflows) โดยมีฟังก์ชัน WorkflowsPage ที่ใช้แสดงข้อมูลและควบคุมการทำงานของระบบตามความต้องการของผู้ใช้งาน", "tags": [ "page", "admin", "workflow" ], "complexity": "moderate" }, { "id": "file:app/(admin)/error.tsx", "type": "file", "name": "error.tsx", "filePath": "app/(admin)/error.tsx", "summary": "ไฟล์นี้เป็นหน้าข้อผิดพลาดสำหรับระบบบริหารจัดการ โดยมีฟังก์ชัน AdminError ที่ใช้ในการแสดงผลข้อความผิดพลาดเมื่อเกิดเหตุการณ์ข้อผิดพลาดในส่วนของ admin", "tags": [ "error-handler", "admin-module" ], "complexity": "simple" }, { "id": "file:app/(admin)/layout.tsx", "type": "file", "name": "layout.tsx", "filePath": "/app/(admin)/layout.tsx", "summary": "ไฟล์นี้เป็นโครงสร้างหลักสำหรับหน้าแดชบอร์ดผู้ดูแลระบบ โดยมีฟังก์ชัน AdminLayout ที่ใช้จัดวางองค์ประกอบต่าง ๆ เช่น header, sidebar และ content area เข้าด้วยกัน", "tags": [ "layout", "admin-dashboard" ], "complexity": "moderate" }, { "id": "file:app/api/ai/chat/route.ts", "type": "file", "name": "route.ts", "filePath": "/app/api/ai/chat/route.ts", "summary": "ไฟล์นี้เป็น route handler สำหรับ API endpoint เกี่ยวกับการสนทนาด้วย AI โดยรองรับคำขอ POST เพื่อรับข้อมูลจากผู้ใช้งานและส่งคำตอบกลับคืนมาในรูปแบบ JSON", "tags": [ "api-handler", "ai-chat" ], "complexity": "moderate" }, { "id": "file:app/api/auth/[...nextauth]/route.ts", "type": "file", "name": "route.ts", "filePath": "app/api/auth/[...nextauth]/route.ts", "summary": "ไฟล์โค้ดหน้าบ้าน route.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:app/(auth)/layout.tsx", "type": "file", "name": "layout.tsx", "filePath": "/app/(auth)/layout.tsx", "summary": "ไฟล์นี้เป็นโครงสร้างหลักสำหรับหน้าเข้าสู่ระบบ โดยมีการประกาศฟังก์ชัน AuthLayout ที่ใช้จัดวางองค์ประกอบการแสดงผล และนำเข้า dynamic เพื่อใช้งานในบริบทของ Next.js", "tags": [ "auth-layout", "layout-component" ], "complexity": "moderate" }, { "id": "file:app/(auth)/login/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(auth)/login/page.tsx", "summary": "หน้าเข้าสู่ระบบของแอปพลิเคชัน โดยมีฟังก์ชัน LoginPage ที่ใช้จัดการกระบวนการล็อกอินผู้ใช้งาน มีโค้ดรวมทั้งหมดประมาณ 124 บรรทัด และเป็นหนึ-าหลักสำหรับการเข้าสู่ระบบ", "tags": [ "auth", "login", "authentication" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/ai-staging/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/ai-staging/page.tsx", "summary": "หน้าเว็บไซต์สำหรับการแสดงผลข้อมูล AI Staging โดยมีการจัดวางโครงสร้างโค้ดอย่างชัดเจน มีฟังก์ชันสนับสนุน เช่น getMetadataText และ getStatusVariant ที่ใช้ในการกำหนด metadata และสถานะของหน้าเว็บ ส่วนหลัก ๆ เป็นคอมโพเนนต์ AiStagingPage ซึ่งมีขนาดใหญ่มากถึง 518 line โดยรวมแล้วเป็นหน้าจอแสดงผลข้อมูล AI Staging", "tags": [ "page-component", "ai-dashboard", "dashboard-page" ], "complexity": "complex" }, { "id": "file:app/(dashboard)/circulation/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/circulation/new/page.tsx", "summary": "หน้าสร้างรายการการส่งต่อ (Circulation) โดยใช้ฟังก์ชัน CreateCirculationPage ซึ่งมีขนาดโค้ดรวมทั้งหมดประมาณ 251 บรรทัด มีการนำเข้า dynamic และ fetchCache มาใช้งานเพื่อจัดการข้อมูลและโหลดหน้าเว็บอย่างเหมาะสม", "tags": [ "page", "dashboard", "circulation", "create-form" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/circulation/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/circulation/page.tsx", "summary": "หน้าแสดงข้อมูลการเคลื่อนย้ายสินค้า โดยมีฟังก์ชัน CirculationPage ที่จัดวางโครงสร้าง UI และควบคุมการแสดงผลตามความต้องการของระบบ", "tags": [ "page", "dashboard" ], "complexity": "moderate" }, { "id": "file:/app/(dashboard)/circulation/[uuid]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/circulation/[uuid]/page.tsx", "summary": "หน้าแสดงรายละเอียดการส่งต่อเอกสาร โดยมีฟังก์ชันตรวจสอบสถานะการล่าช้า (isOverdue), คำนำหน้าชื่อผู้ใช้งาน (getInitials) และแปลงสถานะเป็นโทนสีหรือรูปแบบการแสดงผล (getStatusVariant) เต็มไปด้วยโค้ดหลักสำหรับการจัดแสดงข้อมูลในหน้านี้", "tags": [ "page", "dashboard", "circulation", "detail-page" ], "complexity": "complex" }, { "id": "file:app/(dashboard)/correspondences/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/correspondences/new/page.tsx", "summary": "หน้าสร้างเอกสารสื่อสารใหม่ โดยมีฟังก์ชัน NewCorrespondencePage ที่ใช้จัดการการแสดงผลและตรรกะของหน้านี้ มีการนำเข้า dynamic และ fetchCache เพื่อเพิ่มประสิทธิภาพการทำงาน", "tags": [ "page", "dashboard", "correspondences" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/correspondences/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/correspondences/page.tsx", "summary": "หน้าจัดการเอกสารสื่อสารภายในองค์กร โดยมีฟังก์ชันหลักเป็น CorrespondencesPage ที่ใช้ในการแสดงรายการและจัดการข้อมูลเอกสารต่าง ๆ เน้นความเรียบง่ายและรองรับการทำงานแบบ responsive", "tags": [ "dashboard", "correspondence", "page-component", "dynamic-import" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/correspondences/[uuid]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/correspondences/[uuid]/edit/page.tsx", "summary": "หน้าแก้ไขข้อมูลการสื่อสาร โดยมีฟังก์ชัน EditCorrespondencePage ที่จัดการการแสดงผลและตรรกะการทำงานของหน้านี้ มีโค้ดรวมทั้งหมด 48 บรรทัด", "tags": [ "page", "edit", "correspondence" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/correspondences/[uuid]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/correspondences/[uuid]/page.tsx", "summary": "หน้าแสดงรายละเอียดการสื่อสาร (Correspondence) โดยใช้ UUID เป็นตัวระบุรายการเดียว มีฟังก์ชันหลักชื่อ CorrespondenceDetailPage ที่มีขนาดโค้ดประมาณ 104 บรรทัด และเปิดเผยให้ใช้งานผ่านการ export", "tags": [ "page", "dashboard", "correspondence-detail" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/dashboard/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/dashboard/page.tsx", "summary": "หน้าแดชบอร์ดหลักของระบบ โดยมีฟังก์ชัน DashboardPage ที่จัดวางองค์ประกอบต่าง ๆ เช่น เมนูนำทาง และส่วนแสดงข้อมูลสำคัญ เรียงตามลำดับการใช้งานจริง", "tags": [ "dashboard", "main-page", "layout" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/delegation/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/delegation/page.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน page.tsx", "tags": [ "utility", "entry-point" ], "complexity": "simple" }, { "id": "file:app/(dashboard)/distribution-matrices/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/distribution-matrices/page.tsx", "summary": "หน้าจัดแสดงข้อมูลตารางการกระจายตัวของรหัส โดยมีฟังก์ชัน splitCodes สำหรับแยกรหัสออกเป็นส่วนย่อย และ Component DistributionMatricesPage เป็นหลักการทำงานทั้งหมด มีความซับซ้อนปานกลางเนื่องจากรวมถึงการจัดวางหน้าเว็บและการประมวลผลข้อมูล", "tags": [ "dashboard", "distribution-matrix", "code-splitting", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/drawings/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/drawings/page.tsx", "summary": "หน้าจัดแสดงภาพวาด (Drawings) โดยมีการสร้างคอมโพเนนต์ DrawingsPage และ DrawingTabs เพื่อจัดวางแท็บสำหรับการแสดงข้อมูลภาพวาดในระบบบริหารงานออกแบบกราฟิก", "tags": [ "dashboard", "drawings", "page-component", "tabs" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/drawings/upload/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/drawings/upload/page.tsx", "summary": "หน้าแสดงผลการอัปโหลดภาพวาด โดยมีฟังก์ชัน DrawingUploadPage ที่จัดการกระบวนการอัปโหลดไฟล์จากผู้ใช้งาน และรองรับการทำงานแบบ dynamic เนื่องจากรายงานข้อมูลจาก backend", "tags": [ "page", "upload", "drawing" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/drawings/[uuid]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/drawings/[uuid]/page.tsx", "summary": "หน้าแสดงรายละเอียดการวาดแบบ โดยใช้ UUID เป็นตัวระบุแต่ละรายการ การเรียกข้อมูลจากเซิร์ฟเวอร์ผ่าน fetchDrawingByUuid เพื่อโหลดข้อมูลเฉพาะรายการที่เลือก เน้นการแสดงผลและจัดการฟอร์มสำหรับแก้ไขรายละเอียดและการอัปโหลดฉบับปรับปรุง", "tags": [ "dashboard", "drawing-detail", "uuid-based-routing", "api-handler" ], "complexity": "moderate" }, { "id": "function:fetchDrawingByUuid", "type": "function", "name": "fetchDrawingByUuid", "filePath": "app/(dashboard)/drawings/[uuid]/page.tsx", "summary": "ฟังก์ชันสำหรับดึงข้อมูลแบบวาดรายละเอียดจากเซิร์ฟเวอร์โดยใช้ UUID เป็นพารามิเตอร์ เรียก API เพื่อให้ได้ข้อมูลเฉพาะรายการที่ต้องการ", "tags": [ "api-fetch", "uuid" ], "complexity": "simple" }, { "id": "file:component:DrawingDetailPage", "type": ", ", "complexity": "moderate", "name": "DrawingDetailPage", "summary": "ส่วนติดต่อผู้ใช้ DrawingDetailPage", "tags": [ "utility" ] }, { "id": "file:app/(dashboard)/error.tsx", "type": "file", "name": "error.tsx", "filePath": "app/(dashboard)/error.tsx", "summary": "ไฟล์นี้เป็นหน้าแสดงข้อผิดพลาดสำหรับแดชบอร์ด โดยมีฟังก์ชัน DashboardError ที่ใช้ในการจัดการสถานะข้อผิดพลาดของระบบ และส่งกลับผลลัพธ์ให้ผู้ใช้งานได้อย่างเหมาะสม", "tags": [ "error-handling", "dashboard", "component" ], "complexity": "simple" }, { "id": "file:app/(dashboard)/layout.tsx", "type": "file", "name": "layout.tsx", "filePath": "app/(dashboard)/layout.tsx", "summary": "ไฟล์นี้เป็นโครงสร้างหลักของหน้าแดชบอร์ด โดยมีฟังก์ชัน DashboardLayout ที่ใช้จัดวางองค์ประกอบต่าง ๆ เช่น เห็นได้ว่ามีการนำเข้า dynamic และ export DashboardLayout มาใช้งาน", "tags": [ "layout", "dashboard" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/migration/review/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/migration/review/page.tsx", "summary": "หน้าแสดงผลการตรวจสอบข้อมูลย้ายระบบ โดยมีฟังก์ชัน MigrationReviewPage ที่จัดการการแสดงผลและตรรกะการทำงานของหน้านี้ มีโค้ดรวมทั้งหมด 152 บรรทัด และเป็นส่วนหนึ่งของระบบที่เกี่ยวข้องกับการย้ายระบบฐานข้อมูล", "tags": [ "page", "dashboard", "migration" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/profile/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/profile/page.tsx", "summary": "หน้าโปรไฟล์ผู้ใช้งานที่แสดงข้อมูลส่วนตัวและสามารถจัดการได้ เช่น การอัปเดตข้อมูล หรือการเปลี่ยนแปลงรหัสผ่าน โดยมีโครงสร้างเป็น React Component เดียวที่เก็บหน้าที่แสดงผลลัพธ์ไว้ในตัว", "tags": [ "profile", "dashboard", "user-profile" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/projects/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/projects/new/page.tsx", "summary": "หน้าสร้างโครงการใหม่ในระบบบริหารจัดการโปรเจกต์ โดยมีฟังก์ชัน CreateProjectPage ที่ใช้ในการจัดการข้อมูลและแสดงผลลัพธ์บนหน้าเว็บไซต์", "tags": [ "page", "dashboard", "project-management" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/projects/page_backup.tsx", "type": "file", "name": "page_backup.tsx", "filePath": "app/(dashboard)/projects/page_backup.tsx", "summary": "หน้าแสดงรายการโครงการในระบบ โดยมีฟังก์ชัน ProjectsPage ที่จัดการการแสดงผลและตรรกะหลักของหน้านี้ มีโค้ดรวมทั้งหมดประมาณ 191 บรรทัด และเป็นหนึ", "tags": [ "page", "dashboard", "projects" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/projects/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/projects/page.tsx", "summary": "หน้าแสดงรายการโครงการ โดยมีฟังก์ชัน ProjectsPage ที่จัดการการแสดงผลและตรรกะหลักของหน้านี้ มีโค้ดรวมทั้งหมด 191 บรรทัด และเป็นหน้าหลักสำหรับผู้ใช้งานเข้าชมโครงการ", "tags": [ "page", "dashboard" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/response-codes/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/response-codes/page.tsx", "summary": "หน้าแสดงรหัสคำตอบ (response codes) โดยมีฟังก์ชัน ResponseCodesPage ที่จัดการการแสดงผลข้อมูลรหัสคำตอบในระบบ เน้นความเรียบง่ายและใช้งานได้จริงสำหรับผู้ดูแลระบบ", "tags": [ "dashboard", "response-codes", "page" ], "complexity": "simple" }, { "id": "file:app/(dashboard)/rfa/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/rfa/page.tsx", "summary": "หน้าแสดงผลการจัดการ RFA โดยใช้คอมโพเนนต์ RfaLegacyPage ซึ่งมีขนาดเล็กและเรียบง่าย มุ่งเน้นการแสดงข้อมูลพื้นฐานเท่านั้น", "tags": [ "dashboard", "rfa", "legacy" ], "complexity": "simple" }, { "id": "file:app/(dashboard)/rfas/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/rfas/new/page.tsx", "summary": "หน้าสร้างรายการ RFA โดยใช้โครงสร้าง Next.js และแสดงผลผ่านคอมโพเนนต์ NewRFAPage ซึ่งมีการจัดการโค้ดแบบ dynamic และ fetchCache เพื่อเพิ่มประสิทธิภาพการทำงาน", "tags": [ "page", "dashboard", "rfas", "new" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/rfas/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/rfas/page.tsx", "summary": "หน้าแสดงผลรวมรายการ RFAs โดยมีฟังก์ชันหลักคือ RFAsPage ที่ใช้จัดการการแสดงผลข้อมูลและโครงสร้างหน้าเว็บ", "tags": [ "page", "dashboard" ], "complexity": "simple" }, { "id": "file:app/(dashboard)/rfas/[uuid]/edit/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/rfas/[uuid]/edit/page.tsx", "summary": "หน้าแก้ไขข้อมูล RFA โดยใช้งานคอมโพเนนต์ RFAEditPage ซึ่งมีความยาวโค้ดรวมทั้งหมด 167 บรรษา มีการจัดวางโครงสร้างเพื่อให้สามารถแสดงและปรับแต่งข้อมูลได้อย่างเหมาะสม", "tags": [ "page", "edit", "rfa" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/rfas/[uuid]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/rfas/[uuid]/page.tsx", "summary": "หน้าแสดงรายละเอียดของรายการ RFAs โดยใช้ชื่อฟังก์ชัน RFADetailPage ซึ่งมีขนาดโค้ดประมาณ 101 บรรทัด มีการส่งออกเฉพาะตัวแปรหรือฟังก์ชันนี้เพื่อนำไปใช้งานในระบบ", "tags": [ "page", "rfas", "dashboard", "detail-page" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/search/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/search/page.tsx", "summary": "หน้าแสดงผลการค้นหาข้อมูล โดยมีองค์ประกอบหลักเป็น SearchContent ที่จัดวางเนื้อหาและฟังก์ชันการค้นหา และ SearchPage เป็นตัวรวมของหน้าเว็บไซต์", "tags": [ "search-page", "dashboard-component" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/settings/delegation/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/settings/delegation/page.tsx", "summary": "หน้าจัดการสิทธิ์การมอบหมาย (Delegation) สำหรับระบบบริหารจัดการภายใน โดยมีฟังก์ชันหลักคือ DelegationPage เน้นการแสดงผลข้อมูลและควบคุมการทำงานตามบทบาทของผู้ใช้งาน", "tags": [ "dashboard", "settings", "delegation", "page" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/settings/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/settings/page.tsx", "summary": "หน้าตั้งค่าของระบบ โดยมีฟังก์ชัน SettingsPage ที่ใช้งานรวมถึงการจัดวางโครงสร้าง UI และการเชื่อมโยงกับบริการต่าง ๆ เพื่อให้ผู้ใช้งานสามารถปรับแต่งได้อย่างเหมาะสม", "tags": [ "page", "dashboard", "settings" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/settings/reminder-rules/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/settings/reminder-rules/page.tsx", "summary": "หน้าจัดการกฎเตือน (Reminder Rules) สำหรับระบบบริหารงาน โดยมีฟังก์ชันหลักคือ ReminderRulesPage เน้นการแสดงผลและจัดการข้อมูลกฎเตือนได้อย่างเป็นระเบียบ มีโครงสร้างโค้ดยาวถึง 182 บรรทัด", "tags": [ "dashboard", "settings", "reminder-rules", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/settings/review-teams/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/(dashboard)/settings/review-teams/page.tsx", "summary": "หน้าจัดการทีมตรวจสอบ (Review Teams) สำหรับระบบบริหารงานภายใน โดยใช้คอมโพเนนต์ ReviewTeamsPage เพื่อแสดงข้อมูลและให้ผู้ใช้งานสามารถดูรายละเอียดของแต่ละทีมได้อย่างชัดเจน", "tags": [ "dashboard", "settings", "review-teams", "page-component" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/transmittals/new/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/transmittals/new/page.tsx", "summary": "หน้าสร้างเอกสารส่งมอบใหม่ โดยมีฟังก์ชัน CreateTransmittalPage ที่จัดการการแสดงผลและตรรกะการทำงานของหน้านี้ มีการใช้ dynamic และ fetchCache เพื่อจัดการ caching และโหลดข้อมูลอย่างเหมาะสม", "tags": [ "dashboard", "transmittals", "create-page", "api-handler" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/transmittals/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/transmittals/page.tsx", "summary": "หน้าแสดงรายการเอกสารส่งต่อ โดยมีฟังก์ชัน TransmittalPage ที่จัดการการแสดงผลและตรรกะหลักของหน้านี้ มีโค้ดรวมประมาณ 91 บรรทัด และเป็นหนึ", "tags": [ "page", "dashboard", "transmittals" ], "complexity": "moderate" }, { "id": "file:app/(dashboard)/transmittals/[uuid]/page.tsx", "type": "file", "name": "page.tsx", "filePath": "app/(dashboard)/transmittals/[uuid]/page.tsx", "summary": "หน้าแสดงรายละเอียดการส่งเอกสาร (Transmittal) โดยใช้ UUID เป็นตัวระบุรายการเดียว มีฟังก์ชันหลักชื่อ TransmittalDetailPage ที่มีขนาดใหญ่ถึง 172 บรรทัด และเป็นจุดออกทาง API เพื่อดึงข้อมูลจาก backend", "tags": [ "transmittal-detail-page", "dashboard-component", "uuid-router" ], "complexity": "moderate" }, { "id": "file:app/error.tsx", "type": "file", "name": "error.tsx", "filePath": "/src/app/error.tsx", "summary": "ไฟล์นี้จัดการหน้าข้อผิดพลาดของระบบ โดยมีฟังก์ชัน Error ที่ใช้แสดงผลข้อความหรือสถานะข้อผิดพลาดต่าง ๆ เมื่อเกิดเหตุการณ์ผิดพลาดในแอปพลิเคชัน", "tags": [ "error-handling", "page" ], "complexity": "moderate" }, { "id": "file:app/global-error.tsx", "type": "file", "name": "global-error.tsx", "filePath": "/app/global-error.tsx", "summary": "ไฟล์นี้จัดการข้อผิดพลาดระดับโลกของแอปพลิเคชัน โดยมีฟังก์ชัน GlobalError ที่ใช้แสดงผลข้อความหรือหน้าแจ้งเตือนเมื่อเกิดข้อผิดพลาดในระหว่างการทำงานของระบบ", "tags": [ "global-error", "error-handling" ], "complexity": "moderate" }, { "id": "file:app/globals.css", "type": "file", "name": "globals.css", "filePath": "app/globals.css", "summary": "ไฟล์โค้ดหน้าบ้าน globals.css", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:app/layout.tsx", "type": "file", "name": "layout.tsx", "filePath": "app/layout.tsx", "summary": "ไฟล์นี้เป็นโครงสร้างหลักของแอปพลิเคชัน โดยมีหน้าที่จัดการ layout ร่วมสำหรับหน้าเว็บไซต์ทั้งหมด มีฟังก์ชัน RootLayout ซึ่งใช้กำหนดโครงสร้างพื้นฐาน เช่น การแสดงผล header, footer และการรวม CSS โดยอ้างอิงจาก globals.css", "tags": [ "layout", "root-layout", "app-structure" ], "complexity": "moderate" }, { "id": "file:app/page.tsx", "type": "file", "name": "page.tsx", "filePath": "/app/page.tsx", "summary": "หน้าหลักของแอปพลิเคชัน โดยมีฟังก์ชัน RootPage เป็นตัวกลางในการจัดการการแสดงผลและโครงสร้างพื้นฐานของหน้าเว็บไซต์", "tags": [ "root-layout", "main-page" ], "complexity": "moderate" }, { "id": "file:build-map.js", "type": "file", "name": "build-map.js", "filePath": "build-map.js", "summary": "ไฟล์นี้มีหน้าที่สร้างแผนผังโครงสร้างของโค้ด โดยใช้งานฟังก์ชันต่าง ๆ เช่น generateSimpleNode, callOllama และ runAnalysis เพื่อจัดการข้อมูลและผลลัพธ์จากโมเดล Ollama อย่างมีประสิทธิภาพ", "tags": [ "map-generation", "ollama-integration", "code-analysis" ], "complexity": "moderate" }, { "id": "function:generateSimpleNode", "type": "function", "name": "generateSimpleNode", "filePath": "build-map.js", "summary": "ฟังก์ชันนี้ใช้สร้างโหนดพื้นฐานในแผนผัง โดยรับข้อมูลเข้ามาแล้วแปลงเป็นโครงสร้างที่เหมาะสมสำหรับการจัดวางในระบบ", "tags": [ "node-generation", "structure-building" ], "complexity": "simple" }, { "id": "function:callOllama", "type": ", ", "complexity": "moderate", "name": "callOllama", "summary": "ส่วนติดต่อผู้ใช้ callOllama", "tags": [ "utility" ] }, { "id": "file:components/admin/ai/OcrEngineSelector.tsx", "type": "file", "name": "OcrEngineSelector.tsx", "filePath": "components/admin/ai/Ocr0CrEngineSelector.tsx", "summary": "คอมโพเนนต์สำหรับเลือกเครื่องมือ OCR ใช้งานได้หลากหลาย โดยมีฟังก์ชันหลักคือ OcrEngineSelector ที่จัดการการแสดงผลและพฤติกรรมของแต่ละตัวเลือกอย่างเป็นระบบ", "tags": [ "component", "admin", "ai", "ocr-engine-selector" ], "complexity": "moderate" }, { "id": "file:components/admin/ai/OcrSandboxPromptManager.tsx", "type": "file", "name": "OcrSandboxPromptTmanager.tsx", "filePath": "components/admin/ai/OcrSandboxPromptManager.tsx", "summary": "คอมโพเนนต์สำหรับจัดการคำขอ (prompt) ในการใช้งาน OCR Sandbox โดยมีหน้าที่แสดงผลและจัดการประวัติเวอร์ชันของ prompt เหมือนกับระบบบริหารจัดการ prompt อื่น ๆ ในระบบทั้งหมด", "tags": [ "component", "admin", "ai", "ocr-sandbox", "prompt-manager" ], "complexity": "moderate" }, { "id": "file:components/admin/ai/PromptVersionHistory.tsx", "type": "file", "name": "PromptVersionHistory.tsx", "filePath": "components/admin/ai/PromptVersionHistory.tsx", "summary": "คอมโพเนนต์แสดงประวัติเวอร์ชันของ Prompt สำหรับผู้ดูแลระบบ โดยมีฟังก์ชันหลักคือการจัดรูปแบบข้อมูลเวอร์ชันพร็อโมทและแสดงผลลัพธ์ในหน้าแดชบอร์ด", "tags": [ "component", "admin", "ai", "prompt-history" ], "complexity": "moderate" }, { "id": "file:components/admin/organization-dialog.tsx", "type": "file", "name": "organization-dialog.tsx", "filePath": "components/admin/organization-dialog.tsx", "summary": "องค์ประกอบสำหรับการแสดงรายละเอียดและจัดการองค์กรในระบบบริหารจัดการ โดยมีฟังก์ชัน OrganizationDialog ที่ใช้ในการสร้าง Dialog เพื่อแสดงข้อมูลองค์กรและการดำเนินการต่าง ๆ เช่น การแก้ไขหรือลบองค์กร", "tags": [ "dialog", "organization-management", "admin-component" ], "complexity": "moderate" }, { "id": "file:components/admin/reference/generic-crud-table.tsx", "type": "file", "name": "generic-crud-table.tsx", "filePath": "components/admin/reference/generic-crud- crud-table.tsx", "summary": "คอมโพเนนต์ทั่วไปสำหรับการแสดงข้อมูลแบบ CRUD (Create, Read, Update, Delete) โดยมีฟังก์ชันหลักชื่อ GenericCrudTable ซึ่งใช้ในการจัดการตารางข้อมูลอย่างยืดหยุ่น", "tags": [ "crud", "table-component", "admin-interface" ], "complexity": "moderate" }, { "id": "file:components/admin/security/rbac-matrix.tsx", "type": "file", "name": "rbac-matrix.tsx", "filePath": "components/admin/security/rbac-matrix.tsx", "summary": "ไฟล์นี้สร้างคอมโพเนนต์ RbacMatrix สำหรับแสดงตารางการควบคุมสิทธิ์ (Role-Based Access Control) โดยใช้ฟังก์ชัน extractArrayData เพื่อดึงข้อมูลจากอาร์เรย์และจัดรูปแบบการแสดงผลตามโครงสร้างของสิทธิ์แต่ละระดับ", "tags": [ "rbac", "access-control", "component", "table" ], "complexity": "moderate" }, { "id": "file:components/admin/sidebar.tsx", "type": "file", "name": "sidebar.tsx", "filePath": "components/admin/sidebar.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์สำหรับแสดงเมนูด้านซ้ายของหน้าแดชบอร์ดผู้ดูแลระบบ โดยมีฟังก์ชันหลักคือ AdminSidebar และ AdminMobileSidebar ที่ใช้จัดวางรายการเมนูลงไว้ในรูปแบบ responsive layout เพื่อรองรับการแสดงผลบนอุปกรณ์ต่าง ๆ", "tags": [ "admin-panel", "sidebar-component", "responsive-layout" ], "complexity": "moderate" }, { "id": "file:components/admin/user-dialog.tsx", "type": "file", "name": "user-dialog.tsx", "filePath": "components/admin/user-dialog.tsx", "summary": "องค์ประกอบ (component) สำหรับการแสดงรายละเอียดผู้ใช้งานในระบบบริหารจัดการ โดยมีฟังก์ชันหลักชื่อ UserDialog ที่ครอบคลุมการทำงานครบถ้วนจาก line 1 ถึง line 291", "tags": [ "component", "admin", "user-dialog" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-chat-input.tsx", "type": "file", "name": "ai-chat-input.tsx", "filePath": "components/ai/ai-chat-input.tsx", "summary": "คอมโพเนนต์สำหรับการแสดงผลและจัดการข้อมูลจากช่องป้อนคำสั่งผ่าน AI โดยมีฟังก์ชันหลักคือ AiChatInput ที่ใช้ร่วมกับระบบแชทบอทในแอปพลิเคชัน", "tags": [ "component", "ai-chat", "input" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-chat-messages.tsx", "type": "file", "name": "ai-chat-messages.tsx", "filePath": "components/ai/ai-chat-messages.tsx", "summary": "คอมโพเนนต์แสดงข้อความสนทนาด้วยปัญญาประดิษฐ์ โดยมีฟังก์ชันหลักชื่อ AiChatMessages ซึ่งจัดการการแสดงผลข้อความจากผู้ใช้งานและระบบอย่างเป็นระเบียบ มีโค้ดรวมทั้งหมด 159 บรรทัด", "tags": [ "ai-chat-messages", "component", "chat-interface" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-chat-panel.tsx", "type": "file", "name": "ai-chat-panel.tsx", "filePath": "components/ai/ai-chat-panel.tsx", "summary": "คอมโพเนนต์แสดงหน้าจอสนทนาด้วยปัญญาประดิษฐ์ โดยมีฟังก์ชันหลักคือ AiChatPanel ซึ่งใช้งานร่วมกับระบบ AI เพื่อให้ผู้ใช้สามารถพูดคุยกับเครื่องจักรได้อย่างโต้ตอบ", "tags": [ "ai-chat-panel", "component", "chat-interface" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-chat-toggle.tsx", "type": "file", "name": "ai-chat-toggle.tsx", "filePath": "components/ai/ai-chat-toggle.tsx", "summary": "คอมโพเนนต์ที่ใช้แสดงปุ่มสลับการสนทนาด้วย AI โดยมีฟังก์ชันหลักคือ AiChatToggle ซึ่งทำงานร่วมกับระบบ UI เพื่อให้ผู้ใช้งานสามารถเปิด-ปิดโหมดการสนทนาได้อย่างสะดวก", "tags": [ "component", "ai-chat-toggle", "toggle-button" ], "complexity": "simple" }, { "id": "file:components/ai/ai-status-banner-host.tsx", "type": "file", "name": "AiStatusBannerHost", "filePath": "components/ai/ai-status-banner-host.tsx", "summary": "คอมโพเนนต์โฮสต์สำหรับแสดงสถานะ AI โดยใช้ AiStatusBanner เป็นองค์ประกอบหลัก มีหน้าที่จัดวางและควบคุมการแสดงผลของสถานะ AI ผ่านการนำเข้าจาก components/ai/AiStatusBanner.tsx", "tags": [ "component", "ai-status-banner-host", "middleware" ], "complexity": "simple" }, { "id": "file:components/ai/AiStatusBanner.tsx", "type": "file", "name": "AiStatusBanner.tsx", "filePath": "components/ai/AiStatusBanner.tsx", "summary": "องค์ประกอบแสดงสถานะของระบบ AI โดยมีฟังก์ชันหลักชื่อ AiStatusBanner ที่ใช้ในการจัดวางข้อมูลสถานะ เช่น การทำงานหรือความพร้อมใช้งานของโมเดล AI เน้นการแสดงผลอย่างชัดเจนและเข้าใจง่าย", "tags": [ "component", "ai-status-banner" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-suggestion-button.tsx", "type": "file", "name": "ai-suggestion-button.tsx", "filePath": "components/ai/ai-suggestion-button.tsx", "summary": "คอมโพเนนต์ปุ่มแนะนำ AI ที่ใช้ในการเรียกใช้งานฟีเจอร์คำแนะนำจากโมเดล AI โดยมีการจัดวาง UI และเชื่อมโยงกับระบบหลักผ่าน event handler", "tags": [ "ai-button", "suggestion-component", "interactive-element" ], "complexity": "moderate" }, { "id": "file:components/ai/ai-suggestion-field.tsx", "type": "file", "name": "ai-suggestion-field.tsx", "filePath": "components/ai/ai-suggestion-field.tsx", "summary": "คอมโพเนนต์สำหรับแสดงผลการแนะนำจาก AI โดยมีฟังก์ชันสนับสนุนในการจัดรูปแบบความเชื่อมั่นของคำตอบ เช่น การกำหนดคลาส CSS และคำอธิบายความเชื่อมั่นตามระดับต่าง ๆ", "tags": [ "ai-component", "suggestion-field", "confidence-indicator" ], "complexity": "moderate" }, { "id": "file:components/ai/document-comparison-view.tsx", "type": "file", "name": "document-comparison-view.tsx", "filePath": "components/ai/document-comparison-view.tsx", "summary": "คอมโพเนนต์แสดงผลการเปรียบเทียบเอกสาร โดยใช้ฟังก์ชัน DocumentComparisonView ที่จัดวางโครงสร้างการแสดงข้อมูลอย่างมีระเบียบ มีการนำเข้า AI suggestion field เพื่อสนับสนุนการทำงาน", "tags": [ "component", "ai-suggestion-field", "document-comparison" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/analytics/analytics-summary-cards.tsx", "type": "file", "name": "analytics-summary-cards.tsx", "filePath": "components/ai/intent-classification/analytics/analytics-summary-cards.tsx", "summary": "คอมโพเนนต์แสดงผลสรุปข้อมูลการจำแนกเจตนาจาก AI โดยมีฟังก์ชันหลักคือ AnalyticsSummaryCards ที่จัดเรียงข้อมูลเป็นบล็อกย่อยๆ เพื่อให้ผู้ใช้งานเข้าใจสถานะและแนวโน้มของระบบได้อย่างรวดเร็ว", "tags": [ "component", "analytics", "intent-classification" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/analytics/intent-breakdown-table.tsx", "type": "file", "name": "intent-breakdown-table.tsx", "filePath": "components/ai/intent-classification/analytics/intent-breakdown-table.tsx", "summary": "คอมโพเนนต์ตารางแสดงผลการจำแนกประเภทเจตนาของระบบปัญญาประดิษฐ์ โดยมีหน้าที่จัดรูปแบบข้อมูลและนำเสนอผลลัพธ์ในรูปแบบตารางให้ผู้ใช้งานเห็นภาพรวมได้อย่างชัดเจน", "tags": [ "table", "ai-intent-classification", "analytics" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/analytics/method-breakdown-table.tsx", "type": "file", "name": "method-breakdown-table.tsx", "filePath": "components/ai/intent-classification/analytics/method-breakdown-table.tsx", "summary": "คอมโพเนนต์แสดงข้อมูลการแบ่งประเภทวิธีการทำงานของระบบ AI โดยมีฟังก์ชัน methodBadge สำหรับการแสดงป้ายสถานะแต่ละวิธี และ Component MethodBreakdownTable เป็นหลักที่จัดเรียงและแสดงผลรวมตามกลุ่มวิธีต่าง ๆ", "tags": [ "ai-intent-classification", "analytics", "table-component", "method-breakdown" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/analytics/recalibration-panel.tsx", "type": "file", "name": "recalibration-panel.tsx", "filePath": "components/ai/intent-classification/analytics/recalibration-panel.tsx", "summary": "ส่วนประกอบหน้าแดชบอร์ดสำหรับการปรับค่าโมเดลจำแนกเจตนาอัตโนมัติ โดยแสดงข้อมูลวัดผลและให้ผู้ใช้งานสามารถเรียกร้องการปรับแต่งใหม่ได้อย่างยืดหยุ่น", "tags": [ "component", "analytics", "intent-classification" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/classification-result-card.tsx", "type": "file", "name": "classification-result-card.tsx", "filePath": "components/ai/intent- classification/classification-result-card.tsx", "summary": "คอมโพเนนต์แสดงผลลัพธ์การจำแนกเจตนาของข้อความ โดยจัดรูปแบบข้อมูลให้เข้าใจง่ายและสื่อสารได้อย่างชัดเจน", "tags": [ "component", "ai-intent-classification", "result-display" ], "complexity": "simple" }, { "id": "file:components/ai/intent-classification/intent-form.tsx", "type": "file", "name": "intent-form.tsx", "filePath": "components/ai/intent-classification/intent-form.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการจัดประเภทเจตนาของผู้ใช้ โดยมีหน้าที่รับข้อมูลจากผู้ใช้และส่งไปยังระบบประมวลผลเพื่อจำแนกเจตนา", "tags": [ "form-component", "intent-classification", "ai-module" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/pattern-form.tsx", "type": "file", "name": "pattern-form.tsx", "filePath": "components/ai/intent-classification/pattern-form.tsx", "summary": "คอมโพเนนต์ PatternForm เป็นหน่วยงานหลักสำหรับการจัดประเภทเจตนาของระบบ AI โดยมีฟังก์ชันหลักคือการสร้างแบบฟอร์มเพื่อให้ผู้ใช้งานสามารถป้อนข้อมูลและกำหนดรูปแบบพฤติกรรมที่ต้องการตรวจจับได้อย่างแม่นยำ", "tags": [ "component", "ai-intent-classification", "pattern-form" ], "complexity": "moderate" }, { "id": "file:components/ai/intent-classification/test-console-panel.tsx", "type": "file", "name": "test-console-panel.tsx", "filePath": "components/ai/intent-classification/test-console-panel.tsx", "summary": "คอมโพเนนต์สำหรับแสดงผลการทดสอบระบบจำแนกเจตนาของ AI โดยมีหน้าที่จัดวางองค์ประกอบการแสดงผล เช่น ผลลัพธ์การจำแนก และช่องทางส่งข้อมูลไปยังโมเดล", "tags": [ "component", "ai-intent-classification", "test-console" ], "complexity": "moderate" }, { "id": "file:components/ai/processing-indicator.tsx", "type": "file", "name": "processing-indicator.tsx", "filePath": "components/ai/processing-indicator.tsx", "summary": "คอมโพเนนต์แสดงสถานะการประมวลผล AI โดยมีฟังก์ชัน AiProcessingIndicator ที่ใช้ในการจัดรูปแบบการแสดงข้อมูล เช่น สัญลักษณ์กำลังทำงานหรือข้อความแจ้งเตือน", "tags": [ "ai", "processing-indicator", "component" ], "complexity": "simple" }, { "id": "file:components/auth/auth-sync.tsx", "type": "file", "name": "auth-sync.tsx", "filePath": "components/auth/auth-sync.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์สำหรับจัดการการทำงานของระบบตรวจสอบสิทธิ์ (Authentication) โดยมีฟังก์ชันหลักชื่อ AuthSync ที่ทำงานร่วมกับบริการอื่น ๆ เพื่อรักษาระดับความปลอดภัยและสถานะการเข้าสู่ระบบทั้งหมด", "tags": [ "auth", "middleware", "sync-handler" ], "complexity": "moderate" }, { "id": "file:components/circulation/circulation-list.tsx", "type": "file", "name": "circulation-list.tsx", "filePath": "components/circ-ulation/circulation-list.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์แสดงรายการการเคลื่อนย้ายสินค้า โดยมีฟังก์ชันสนับสนุนหลายอย่าง เช่น การคำนวณความคืบหน้า (getProgress) และแปลงสถานะเป็นรูปแบบที่ใช้งานได้ (getStatusVariant) เพื่อให้การแสดงผลสอดคล้องกับข้อมูลจริง", "tags": [ "component", "circulation-list", "status-variant", "progress-calculation" ], "complexity": "moderate" }, { "id": "file:components/common/can.tsx", "type": "file", "name": "can.tsx", "filePath": "components/common/can.tsx", "summary": "คอมโพเนนต์ Can เป็นองค์ประกอบที่ใช้ตรวจสอบสิทธิ์การเข้าถึงหน้าเว็บ โดยมีฟังก์ชันหลักชื่อว่า Can ซึ่งทำงานร่วมกับระบบ middleware เพื่อกำหนดพฤติกรรมการแสดงผลตามบทบาทผู้ใช้งาน", "tags": [ "component", "authorization", "middleware" ], "complexity": "moderate" }, { "id": "file:components/common/confirm-dialog.tsx", "type": "file", "name": "confirm-dialog.tsx", "filePath": "components/common/confirm-dialog.tsx", "summary": "องค์ประกอบ (component) สำหรับแสดงกล่องยืนยันการกระทำ เช่น การลบข้อมูล โดยมีฟังก์ชันหลักชื่อ ConfirmDialog ที่ใช้ในการจัดวางและควบคุมการแสดงผลของกล่องยืนยัน", "tags": [ "component", "dialog", "confirmation" ], "complexity": "moderate" }, { "id": "file:components/common/data-table.tsx", "type": "file", "name": "data-table.tsx", "filePath": "components/common/data-table.tsx", "summary": "คอมโพเนนต์ DataTable เป็นองค์ประกอบหลักสำหรับการแสดงข้อมูลในรูปแบบตาราง โดยมีฟังก์ชันสร้างตาราง (DataTable) ที่ใช้งานได้หลากหลาย เช่น การจัดเรียงแถว, กรองข้อมูล และการควบคุมการแสดงผลตามเงื่อนไขต่าง ๆ", "tags": [ "component", "table", "data-display" ], "complexity": "moderate" }, { "id": "file:components/common/error-display.tsx", "type": "file", "name": "error-display.tsx", "filePath": "components/common/error-display.tsx", "summary": "ไฟล์นี้จัดการการแสดงข้อผิดพลาดต่าง ๆ ในแอปพลิเคชัน โดยมีฟังก์ชันสนับสนุนหลายอย่าง เช่น การแยกข้อมูลจาก payload ข้อผิดพลาด API, การแปลงระดับความรุนแรงของข้อผิดพลาดเป็นสไตล์การแสดงผล และการสร้างคอมโพเนนต์แสดงข้อผิดพลาด โดยมีการส่งออกฟังก์ชัน ErrorDisplay และ parseApiError ให้ใช้งานได้ในที่อื่น ๆ", "tags": [ "error-handling", "api-error-parser", "component" ], "complexity": "moderate" }, { "id": "file:components/common/file-preview-modal.tsx", "type": "file", "name": "file-preview-modal.tsx", "filePath": "components/common/file-preview-modal.tsx", "summary": "ไฟล์นี้สร้าง modal สำหรับแสดงข้อมูลไฟล์ต่าง ๆ โดยมีฟังก์ชันช่วยในการแปลงขนาดหน่วยไบต์ และระบุประเภทไฟล์เพื่อการแสดงผลใน modal เหมาะใช้ร่วมกับการดูไฟล์แบบออนไลน์หรือดาวน์โหลดได้อย่างเหมาะสม", "tags": [ "modal", "file-preview", "utility-functions" ], "complexity": "moderate" }, { "id": "file:components/common/pagination.tsx", "type": "file", "name": "pagination.tsx", "filePath": "components/common/pagination.tsx", "summary": "คอมโพเนนต์สำหรับการแสดงผลการpaginate โดยมีฟังก์ชัน Pagination ที่ใช้จัดเรียงข้อมูลตามหน้า และแสดงปุ่มควบคุมหน้าถัดไป/หน้าก่อนหน้า เหมาะสำหรับใช้งานในหน้ารายการข้อมูลจำนวนมาก", "tags": [ "pagination", "component" ], "complexity": "moderate" }, { "id": "file:components/common/status-badge.tsx", "type": "file", "name": "status-badge.tsx", "filePath": "components/common/status-badge.tsx", "summary": "คอมโพเนนต์แสดงสถานะในรูปแบบ badge โดยมีฟังก์ชัน StatusBadge ที่ใช้ในการสร้าง UI ตามค่าสถานะต่าง ๆ เช่น active, pending, completed เป็นต้น มีการจัดวางโครงสร้างให้มีความยืดหยุ่นและสามารถนำไปใช้งานซ้ำได้อย่างมีประสิทธิภาพ", "tags": [ "component", "badge", "status-indicator" ], "complexity": "simple" }, { "id": "file:components/common/workflow-error-boundary.tsx", "type": "file", "name": "workflow-error-boundary.tsx", "filePath": "components/common/workflow-error-boundary.tsx", "summary": "คอมโพเนนต์ WorkflowErrorBoundary เป็นค่าป้องกันข้อผิดพลาด (error boundary) สำหรับจัดการข้อผิดพลาดในกระบวนการ workflow โดยมีเมธอดหลัก ๆ เช่น constructor, getDerivedStateFromError และ render เพื่อแสดงผลข้อผิดพลาดและรักษาความต่อเนื่องของหน้าเว็บ", "tags": [ "error-boundary", "workflow", "component" ], "complexity": "moderate" }, { "id": "file:components/correspondences/circulation-status-card.tsx", "type": "file", "name": "circulation-status-card.tsx", "filePath": "components/correspondences/circulation-status-card.tsx", "summary": "คอมโพเนนต์แสดงสถานะการส่งเอกสาร โดยมีฟังก์ชัน RoutingStep และ CirculationItem รองรับขั้นตอนการไหลของเอกสาร ส่วนหลัก ๆ เป็น CirculationStatusCard ที่จัดวางองค์ประกอบและควบคุมการแสดงผลตามสถานะ", "tags": [ "component", "correspondences", "circulation-status", "status-card" ], "complexity": "moderate" }, { "id": "file:components/correspondences/correspondences-content.tsx", "type": "file", "name": "correspondences-content.tsx", "filePath": "components/correspondsents/correspondences-content.tsx", "summary": "ไฟล์นี้เป็นหน่วยงานหลักสำหรับการแสดงข้อมูลการสื่อสารระหว่างฝ่ายต่าง ๆ โดยมีฟังก์ชัน extractArrayData ใช้ในการจัดรูปแบบข้อมูล และ Component CorrespondencesContent เป็นองค์ประกอบหลักที่แสดงผลข้อมูลตามโครงสร้างที่กำหนดไว้", "tags": [ "component", "correspondence", "data-display" ], "complexity": "moderate" }, { "id": "file:components/correspondences/detail.tsx", "type": "file", "name": "detail.tsx", "filePath": "components/correspondences/detail.tsx", "summary": "ไฟล์นี้เป็นหน้าแสดงรายละเอียดการสื่อสารระหว่างบุคคล โดยมีฟังก์ชัน normalizeRecipientType ที่ใช้ปรับรูปแบบข้อมูลผู้รับ และ Component CorrespondenceDetail หลัก ๆ เป็นโครงสร้างการแสดงผลตามตัวอย่างในระบบ", "tags": [ "component", "correspondence-detail", "recipient-type-normalizer" ], "complexity": "moderate" }, { "id": "file:components/correspondences/form.tsx", "type": "file", "name": "form.tsx", "filePath": "components/correspondences/form.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ-่งของระบบจัดการเอกสารทางราชการ โดยมีหน้าที่สร้างฟอร์มสำหรับกรอกข้อมูลเกี่ยวกับความสัมพันธ์ระหว่างบุคคลต่าง ๆ ประกอบด้วยฟังก์ชันช่วยเหลือหลายตัว เช่น normalizePublicId, normalizeUuid และ extractArrayData เพื่อจัดรูปแบบข้อมูลให้เหมาะสม ก่อนนำไปใช้งานในส่วนของคอมโพเนนต์หลักคือ CorrespondenceForm ซึ่งมีขนาดใหญ่มากถึง 586 line โดยเป็นโครงสร้างหลักที่ผู้ใช้งานโต้ตอบกับระบบ", "tags": [ "form-component", "correspondence-management", "data-normalization" ], "complexity": "complex" }, { "id": "file:components/correspondences/list.tsx", "type": "file", "name": "list.tsx", "filePath": "components/correspondences/list.tsx", "summary": "คอมโพเนนต์รายการเอกสารส่ง-รับระหว่างหน่วยงาน โดยมีฟังก์ชันหลักชื่อ CorrespondenceList ที่จัดแสดงข้อมูลตามโครงสร้างของระบบบริหารจัดการเอกสาร ส่งผลให้ผู้ใช้งานสามารถดูและจัดการรายการได้อย่างเป็นระเบียบ", "tags": [ "component", "list", "correspondence" ], "complexity": "moderate" }, { "id": "file:components/correspondences/reference-selector.tsx", "type": "file", "name": "reference-selector.tsx", "filePath": "components/correspondences/reference-selector.tsx", "summary": "คอมโพเนนต์สำหรับเลือกอ้างอิงข้อมูล โดยมีฟังก์ชันหลักคือ ReferenceSelector ที่ใช้ในการจัดการการแสดงผลและพฤติกรรมของรายการเลือกได้อ้างอิง", "tags": [ "component", "reference-selector" ], "complexity": "moderate" }, { "id": "file:components/correspondences/revision-history.tsx", "type": "file", "name": "revision-history.tsx", "filePath": "components/correspondences/revision-history.tsx", "summary": "คอมโพเนนต์แสดงประวัติการแก้ไข (Revision History) สำหรับเอกสารส่งออก โดยมีฟังก์ชันหลักชื่อ RevisionHistory ที่ใช้งานจริงในหน้าเว็บไซต์ และมีขนาดโค้ดรวมประมาณ 71 บรรทัด", "tags": [ "component", "revision-history", "correspondence" ], "complexity": "moderate" }, { "id": "file:components/correspondences/tag-manager.tsx", "type": "file", "name": "tag-manager.tsx", "filePath": "components/correspondences/tag-manager.tsx", "summary": "ไฟล์นี้มีหน้าที่จัดการกับแท็ก (tags) โดยมีฟังก์ชันหลักชื่อ TagManager ซึ่งใช้ในการสร้างหรือจัดการข้อมูลแท็กต่าง ๆ ในระบบ", "tags": [ "tag-manager", "component" ], "complexity": "moderate" }, { "id": "file:components/correspondences/ux-flow-dialog.tsx", "type": "file", "name": "ux-flow-dialog.tsx", "filePath": "components/correspondences/ux-flow-dialog.tsx", "summary": "คอมโพเนนต์สำหรับแสดงการไหลของข้อมูลในระบบจดหมายส่งกลับ โดยมีหน้าที่ควบคุมการแสดงผลและการโต้ตอบกับผู้ใช้งาน เช่น การยืนยันการดำเนินการ หรือเปลี่ยนแปลงสถานะรายการจดหมาย", "tags": [ "dialog", "ux-flow", "correspondence" ], "complexity": "moderate" }, { "id": "file:components/custom/file-upload-zone.tsx", "type": "file", "name": "file-upload-zone.tsx", "filePath": "components/custom/file-upload-zone.tsx", "summary": "ไฟล์นี้สร้างคอมโพเนนต์ FileUploadZone สำหรับใช้ในการอัปโหลดไฟล์ โดยมีฟังก์ชัน formatBytes เพื่อแปลงขนาดไฟล์เป็นรูปแบบที่เข้าใจง่าย เช่น KB, MB และ GB นอกจากนี้ยังมีการจัดวางโครงสร้างให้มีความเรียบร้อยและใช้งานได้สะดวกในระบบแอปพลิเคชัน", "tags": [ "component", "file-upload", "format-bytes" ], "complexity": "moderate" }, { "id": "file:components/custom/workflow-visualizer.tsx", "type": "file", "name": "workflow-visualizer.tsx", "filePath": "components/custom/workflow-visualizer.tsx", "summary": "คอมโพเนนต์แสดงแผนผังการทำงาน (Workflow) แบบกราฟิก โดยมีหน้าที่จัดการการแสดงผลขั้นตอนต่าง ๆ ในระบบอย่างเป็นรูปธรรม และรองรับการโต้ตอบกับผู้ใช้งานได้อย่างลื่นไหล", "tags": [ "component", "workflow-visualizer", "diagram" ], "complexity": "moderate" }, { "id": "file:components/dashboard/pending-tasks.tsx", "type": "file", "name": "pending-tasks.tsx", "filePath": "components/dashboard/pending-tasks.tsx", "summary": "คอมโพเนนต์แสดงรายการงานที่ยังไม่ได้รับการดำเนินการ โดยมีฟังก์ชันหลักชื่อ PendingTasks ซึ่งจัดเรียงและแสดงข้อมูลงานตามลำดับความสำคัญ", "tags": [ "component", "dashboard", "pending-tasks" ], "complexity": "moderate" }, { "id": "file:components/dashboard/quick-actions.tsx", "type": "file", "name": "quick-actions.tsx", "filePath": "components/dashboard/quick-actions.tsx", "summary": "คอมโพเนนต์ QuickActions เป็นหน้าที่ใช้แสดงปุ่มการกระทำเร่งด่วนสำหรับผู้ใช้งานในแดชบอร์ด โดยมีฟังก์ชันหลักชื่อว่า QuickActions ซึ่งทำงานร่วมกับระบบ UI เพื่อให้ผู้ใช้สามารถดำเนินการได้อย่างรวดเร็ว", "tags": [ "component", "dashboard", "quick-action" ], "complexity": "moderate" }, { "id": "file:components/dashboard/recent-activity.tsx", "type": "file", "name": "recent-activity.tsx", "filePath": "components/dashboard/recent-activity.tsx", "summary": "คอมโพเนนต์แสดงกิจกรรมล่าสุดในแดชบอร์ด โดยมีฟังก์ชัน RecentActivity ที่ใช้ในการจัดการการแสดงผลข้อมูลกิจกรรม เช่น การอัปเดตสถานะหรือเหตุการณ์สำคัญ", "tags": [ "component", "dashboard", "recent-activity" ], "complexity": "moderate" }, { "id": "file:components/dashboard/stats-cards.tsx", "type": "file", "name": "stats-cards.tsx", "filePath": "components/dashboard/stats-cards.tsx", "summary": "คอมโพเนนต์แสดงข้อมูลสถิติในแดชบอร์ด โดยมีฟังก์ชัน StatsCards ที่จัดเรียงการแสดงผลตามประเภทของข้อมูล เช่น การใช้งานระบบหรือยอดผู้ใช้รายวัน", "tags": [ "component", "dashboard", "stats" ], "complexity": "moderate" }, { "id": "file:components/delegation/DelegationForm.tsx", "type": "file", "name": "DelegationForm.tsx", "filePath": "components/delegation/DelegationForm.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการมอบอำนาจ โดยมีหน้าที่จัดการกับการแสดงผลและพฤติกรรมของฟอร์ม เช่น การกรอกข้อมูล ตรวจสอบความถูกต้อง และส่งข้อมูลไปยังระบบหลัก", "tags": [ "form-component", "delegation", "ui-component" ], "complexity": "moderate" }, { "id": "file:components/distribution/DistributionStatus.tsx", "type": "file", "name": "DistributionStatus.tsx", "filePath": "components/distribution/DistributionStatus.tsx", "summary": "คอมโพเนนต์แสดงสถานะการกระจายสินค้า โดยมีฟังก์ชันหลักชื่อ DistributionStatus ที่ใช้ในการจัดรูปแบบข้อมูลสถานะ เช่น ส่งมอบแล้ว, เดินทางอยู่, รอการจัดส่ง เป็นต้น", "tags": [ "component", "status-display", "distribution" ], "complexity": "moderate" }, { "id": "file:components/documents/common/server-data-table.tsx", "type": "file", "name": "server-data-table.tsx", "filePath": "components/documents/common/server-data-table.tsx", "summary": "คอมโพเนนต์ที่ใช้แสดงข้อมูลจากเซิร์ฟเวอร์ในรูปแบบตาราง โดยมีการจัดวางโครงสร้างให้มีความยืดหยุ่นและปรับขนาดได้ง่าย มีหน้าที่หลักคือการแสดงผลรายการข้อมูลผ่าน API และรองรับการจัดเรียงหรือกรองข้อมูล", "tags": [ "component", "table", "server-data" ], "complexity": "moderate" }, { "id": "file:components/drawings/card.tsx", "type": "file", "name": "card.tsx", "filePath": "components/drawings/card.tsx", "summary": "คอมโพเนนต์ DrawingCard เป็นองค์ประกอบหลักสำหรับแสดงข้อมูลการวาดภาพ โดยมีโค้ดรวมทั้งหมด 74 บรรทัด มุ่งเน้นการแสดงผลอย่างชัดเจนและใช้งานได้ง่ายในระบบที่เกี่ยวข้องกับการจัดการงานวาดภาพ", "tags": [ "component", "drawing", "card-layout" ], "complexity": "moderate" }, { "id": "file:components/drawings/columns.tsx", "type": "file", "name": "columns.tsx", "filePath": "components/drawings/columns.tsx", "summary": "ไฟล์นี้เป็นส่วนประกอบ (component) สำหรับการแสดงข้อมูลในรูปแบบคอลัมน์ โดยมีการนำออกเฉพาะตัวแปร columns เพื่อใช้งานในบริบทอื่น ๆ เท่านั้น", "tags": [ "component", "drawing" ], "complexity": "simple" }, { "id": "file:components/drawings/list.tsx", "type": "file", "name": "list.tsx", "filePath": "components/drawings/list.tsx", "summary": "คอมโพเนนต์รายการวาดภาพ โดยมีฟังก์ชัน DrawingList ที่ใช้จัดแสดงข้อมูลจากตาราง columns และรองรับการเลื่อนหน้าหรือกรองข้อมูลได้อย่างยืดหยุ่น", "tags": [ "component", "drawing-list", "table" ], "complexity": "moderate" }, { "id": "file:components/drawings/revision-history.tsx", "type": "file", "name": "revision-history.tsx", "filePath": "components/draws/revisions/history.tsx", "summary": "คอมโพเนนต์แสดงประวัติการแก้ไข (Revision History) สำหรับแผนผังการออกแบบ โดยมีฟังก์ชันหลักชื่อ RevisionHistory ที่จัดวางข้อมูลตามลำดับเวลาและแสดงสถานะแต่ละเวอร์ชันได้อย่างชัดเจน", "tags": [ "component", "revision-history", "drawing" ], "complexity": "moderate" }, { "id": "file:components/drawings/upload-form.tsx", "type": "file", "name": "upload-form.tsx", "filePath": "components/drawings/upload-form.tsx", "summary": "คอมโพเนนต์สำหรับการอัปโหลดภาพวาด โดยมีฟังก์ชัน DrawingUploadForm ที่ใช้จัดการกระบวนการอัปโหลดไฟล์ผ่านระบบกรอกข้อมูลแบบโต้ตอบได้อย่างราบรื่น", "tags": [ "upload-form", "drawing-component", "file-upload" ], "complexity": "moderate" }, { "id": "file:components/layout/dashboard-shell.tsx", "type": "file", "name": "dashboard-shell.tsx", "filePath": "components/layout/dashboard-shell.tsx", "summary": "คอมโพเนนต์ DashboardShell เป็นโครงสร้างหลักสำหรับหน้าแดชบอร์ด โดยมีหน้าที่จัดวางองค์ประกอบภายใน เช่น header, sidebar และ main content area ไว้อย่างเป็นระบบ มีการใช้งานฟังก์ชัน DashboardShell เพื่อสร้างโครงสร้างหน้าเว็บให้สอดคล้องตามแนวทางการออกแบบของโปรเจกต์", "tags": [ "layout", "dashboard", "component" ], "complexity": "simple" }, { "id": "file:components/layout/navbar.tsx", "type": "file", "name": "navbar.tsx", "filePath": "components/layout/navbar.tsx", "summary": "คอมโพเนนต์แถบนำทางหลักของเว็บไซต์ มีหน้าที่แสดงเมนูการใช้งานและข้อมูลผู้ใช้ โดยเชื่อมโยงไปยัง user-nav เพื่อจัดวางปุ่มหรือไอคอนสำหรับการเข้าสู่ระบบ", "tags": [ "layout", "navigation", "user-interface" ], "complexity": "moderate" }, { "id": "file:components/layout/user-nav.tsx", "type": "file", "name": "user-nav.tsx", "filePath": "components/layout/user-nav.tsx", "summary": "คอมโพเนนต์การนำทางผู้ใช้งานที่แสดงข้อมูลโปรไฟล์และเมนูหลักสำหรับผู้ใช้ระบบ โดยมีฟังก์ชัน UserNav ซึ่งจัดวางองค์ประกอบการแสดงผลตามโครงสร้าง UI", "tags": [ "component", "layout", "user-interface" ], "complexity": "moderate" }, { "id": "file:components/migration/review-queue-table.tsx", "type": "file", "name": "review-queue-table.tsx", "filePath": "components/migration/review-queue-table.tsx", "summary": "ไฟล์นี้สร้างคอมโพเนนต์ตารางแสดงรายการงานที่รอการตรวจสอบ โดยมีฟังก์ชันสนับสนุนหลายตัว เช่น getStringField, toReviewTag และ getIssueText เพื่อจัดรูปแบบข้อมูลให้เหมาะสมสำหรับการแสดงผลในตาราง", "tags": [ "table-component", "review-queue", "migration" ], "complexity": "moderate" }, { "id": "file:components/numbering/audit-logs-table.tsx", "type": "file", "name": "audit-logs-table.tsx", "filePath": "components/numbering/audit-logs-table.tsx", "summary": "คอมโพเนนต์ตารางแสดงประวัติการตรวจสอบ (Audit Logs Table) ที่ใช้จัดรูปแบบข้อมูลรายการบันทึกการเข้าถึงระบบ โดยมีฟังก์ชันหลักคือ AuditLogsTable เปลี่ยนแปลงสถานะการแสดงผลตามเงื่อนไขต่าง ๆ เช่น การกรองหรือเรียงลำดับ", "tags": [ "table", "audit-logs", "component" ], "complexity": "moderate" }, { "id": "file:components/numbering/bulk-import-form.tsx", "type": "file", "name": "bulk-import-form.tsx", "filePath": "components/numbering/bulk-import-form.tsx", "summary": "คอมโพเนนต์สำหรับการนำเข้าข้อมูลจำนวนมาก โดยมีฟังก์ชันหลักชื่อ BulkImportForm ที่ครอบคลุมการทำงานครบถ้วนภายในเอง มีโค้ดรวมประมาณ 44 บรรทัด", "tags": [ "form-component", "bulk-import", "numbering" ], "complexity": "moderate" }, { "id": "file:components/numbering/cancel-number-form.tsx", "type": "file", "name": "cancel-number-form.tsx", "filePath": "components/numbering/cancel-number-form.tsx", "summary": "คอมโพเนนต์สำหรับแสดงฟอร์มการยกเลิกหมายเลข โดยมีหน้าที่จัดการกับเหตุการณ์การยืนยันและการส่งข้อมูลไปยังระบบหลัก", "tags": [ "form", "cancel-number", "component" ], "complexity": "moderate" }, { "id": "file:components/numbering/manual-override-form.tsx", "type": "file", "name": "manual-override-form.tsx", "filePath": "components/numbering/manual-override-form.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการกำหนดค่าเลขลำดับโดยตรง โดยมีหน้าที่รับข้อมูลจากผู้ใช้และส่งกลับไปยังระบบหลักเพื่อปรับเปลี่ยนลำดับเลขของเอกสาร", "tags": [ "form-component", "manual-override", "numbering-control" ], "complexity": "moderate" }, { "id": "file:components/numbering/metrics-dashboard.tsx", "type": "file", "name": "metrics-dashboard.tsx", "filePath": "components/numbering/metrics-dashboard.tsx", "summary": "คอมโพเนนต์แสดงข้อมูลเชิงสถิติ โดยมีฟังก์ชัน MetricsDashboard ที่ใช้จัดรูปแบบการแสดงผลข้อมูลต่าง ๆ เช่น กราฟหรือค่าเฉลี่ย เป็นต้น", "tags": [ "component", "dashboard", "metrics" ], "complexity": "moderate" }, { "id": "file:components/numbering/sequence-viewer.tsx", "type": "file", "name": "sequence-viewer.tsx", "filePath": "components/numbering/sequence-viewer.tsx", "summary": "คอมโพเนนต์แสดงลำดับข้อมูลแบบไลน์อาร์เรย์ โดยมีฟังก์ชัน SequenceViewer ที่ใช้จัดรูปแบบการแสดงผลตามจำนวนแถวและโครงสร้างข้อมูลในระบบ", "tags": [ "component", "sequence-viewer" ], "complexity": "moderate" }, { "id": "file:components/numbering/template-editor.tsx", "type": "file", "name": "template-editor.tsx", "filePath": "components/numbering/template-editor.tsx", "summary": "คอมโพเนนต์ TemplateEditor ใช้จัดการการแสดงผลและควบคุมการทำงานของ editor โดยมีฟังก์ชันหลัก ๆ เริ่มจากบรรทัดที่ 181 เป็นต้นไป มีหน้าที่แสดงข้อมูลแบบ template และรองรับการปรับแต่งได้ตามความต้องการ", "tags": [ "component", "editor", "template" ], "complexity": "moderate" }, { "id": "file:components/numbering/template-tester.tsx", "type": "file", "name": "template-tester.tsx", "filePath": "components/numbering/template-tester.tsx", "summary": "คอมโพเนนต์ TemplateTester เป็นหน่วยงานทดสอบรูปแบบการแสดงผลเลขลำดับ โดยมีฟังก์ชันหลักที่ใช้ในการจัดการและแสดงข้อมูลตามลำดับที่กำหนดไว้ มีขนาดโค้ดยาวถึง 200 line และเปิดเผยตัวแปรออกสู่โมดูลภายนอก", "tags": [ "component", "template-tester" ], "complexity": "moderate" }, { "id": "file:components/numbering/void-replace-form.tsx", "type": "file", "name": "void-replace-form.tsx", "filePath": "components/numbering/void-replace-form.tsx", "summary": "คอมโพเนนต์ VoidReplaceForm เป็นหน้าจอสำหรับแทนที่ข้อมูลว่าง (void) โดยมีฟังก์ชันหลักคือการจัดวางโครงสร้างแบบฟอร์มเพื่อให้ผู้ใช้งานสามารถกรอกข้อมูลใหม่ได้อย่างสะดวก", "tags": [ "form-component", "numbering-system", "void-replacement" ], "complexity": "moderate" }, { "id": "file:components/reminder/ReminderHistory.tsx", "type": "file", "name": "ReminderHistory.tsx", "filePath": "/src/components/reminder/ReminderHistory.tsx", "summary": "คอมโพเนนต์แสดงประวัติการแจ้งเตือน โดยมีฟังก์ชันหลักคือ ReminderHistoryViewer ที่ใช้ในการจัดรูปแบบข้อมูลและแสดงผลลัพธ์ให้ผู้ใช้ดู", "tags": [ "component", "reminder", "history" ], "complexity": "moderate" }, { "id": "file:components/reminder/ReminderRuleForm.tsx", "type": "file", "name": "ReminderRuleForm.tsx", "filePath": "components/reminder/ReminderRuleForm.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการกำหนดกฎเตือนเวลา โดยมีหน้าที่รับข้อมูลจากผู้ใช้และส่งกลับไปยังระบบหลักเพื่อจัดเก็บหรือประมวลผล", "tags": [ "form", "reminder-rule", "component" ], "complexity": "moderate" }, { "id": "file:components/response-code/CodeImplications.tsx", "type": "file", "name": "CodeImplications.tsx", "filePath": "components/response-code/CodeImplications.tsx", "summary": "องค์ประกอบที่แสดงผลการตีความรหัสสถานะ HTTP โดยมีฟังก์ชัน CodeImplications ซึ่งใช้ในการจัดรูปแบบข้อมูลตามประเภทของรหัสรหัสสถานะ เช่น 2xx, 4xx และ 5xx เพื่อให้ผู้ใช้งานเข้าใจความหมายได้อย่างชัดเจน", "tags": [ "component", "response-code", "http-status" ], "complexity": "moderate" }, { "id": "file:components/response-code/MatrixEditor.tsx", "type": "file", "name": "MatrixEditor.tsx", "filePath": "components/response-code/MatrixEditor.tsx", "summary": "คอมโพเนนต์ MatrixEditor เป็นหน้าที่ใช้จัดการการแสดงผลและโต้ตอบกับข้อมูลเมทริกซ์ โดยมีฟังก์ชันหลักชื่อว่า MatrixEditor ที่ครอบคลุมโค้ดจำนวน 118 บรรทัด", "tags": [ "component", "matrix-editor" ], "complexity": "moderate" }, { "id": "file:components/response-code/ProjectOverrideManager.tsx", "type": "file", "name": "ProjectOverrideManager.tsx", "filePath": "components/response-code/ProjectOverrideManager.tsx", "summary": "คอมโพเนนต์สำหรับจัดการข้อมูลที่เกินกว่าขอบเขตของโปรเจกต์ โดยมีฟังก์ชันหลักชื่อ ProjectOverrideManager ซึ่งทำงานร่วมกับระบบบริหารจัดการโปรเจกต์เพื่อกำหนดค่าคงที่หรือพฤติกรรมเฉพาะสำหรับแต่ละโปรเจกต์", "tags": [ "component", "response-code", "project-override" ], "complexity": "moderate" }, { "id": "file:components/response-code/ResponseCodeSelector.tsx", "type": "file", "name": "ResponseCodeSelector.tsx", "filePath": "components/response-code/ResponseCodeSelector.tsx", "summary": "คอมโพเนนต์สำหรับแสดงรหัสข้อผิดพลาด (response code) โดยมีฟังก์ชัน CodeBadge ใช้แสดงป้ายสถานะของแต่ละรหัสร่วมด้วย มีการจัดวางโครงสร้างให้มุมมองที่ชัดเจนและเข้าใจง่าย", "tags": [ "component", "response-code", "code-badge" ], "complexity": "moderate" }, { "id": "file:components/review-task/CompleteReviewForm.tsx", "type": "file", "name": "CompleteReviewForm.tsx", "filePath": "components/review-task/CompleteReviewForm.tsx", "summary": "คอมโพเนนต์สำหรับแสดงและจัดการแบบฟอร์มยืนยันการตรวจสอบงาน โดยมีหน้าที่รับข้อมูลจากผู้ใช้ ประมวลผล และส่งกลับไปยังระบบหลักเพื่อยืนยันการทำงาน", "tags": [ "component", "form", "review-task" ], "complexity": "moderate" }, { "id": "file:components/review-task/DelegatedBadge.tsx", "type": "file", "name": "DelegatedBadge.tsx", "filePath": "components/review-task/DelegatedBadge.tsx", "summary": "องค์ประกอบ (component) แสดงป้ายชี้แจงว่างานนั้นถูกมอบหมายให้ผู้อื่นดูแล โดยมีการใช้งานฟังก์ชัน DelegatedBadge เพียงหนึ-่งเท่านั้น", "tags": [ "component", "badge" ], "complexity": "simple" }, { "id": "file:components/review-task/ParallelProgress.tsx", "type": "file", "name": "ParallelProgress.tsx", "filePath": "components/review-task/ParallelProgress.tsx", "summary": "คอมโพเนนต์แสดงความคืบหน้าแบบขนานสำหรับงานตรวจสอบ โดยมีฟังก์ชันหลักชื่อ ParallelProgress ที่ใช้จัดรูปแบบการแสดงผลความคืบหน้าของแต่ละขั้นตอนในงานอย่างเป็นระบบ", "tags": [ "component", "progress-bar", "parallel-task", "review-flow" ], "complexity": "moderate" }, { "id": "file:components/review-task/ReviewTaskInbox.tsx", "type": "file", "name": "ReviewTaskInbox.tsx", "filePath": "components/review-task/ReviewTaskInbox.tsx", "summary": "คอมโพเนนต์แสดงรายการงานที่รอการตรวจสอบ โดยมีฟังก์ชันหลักคือ ReviewTaskInbox ซึ่งจัดวางองค์ประกอบการแสดงผลตามลำดับความสำคัญและสถานะของแต่ละงานอย่างเป็นระบบ", "tags": [ "component", "inbox", "review-task" ], "complexity": "moderate" }, { "id": "file:components/review-task/VetoOverrideDialog.tsx", "type": "file", "name": "VetoOverrideDialog.tsx", "filePath": "components/review-task/VetoOverrideDialog.tsx", "summary": "คอมโพเนนต์สำหรับแสดงและจัดการหน้าต่างยืนยันการยกเลิกข้อเสนอแนะ (veto override) โดยมีฟังก์ชันหลักคือ VetoOverrideDialog ที่ใช้ในการควบคุมการทำงานของ dialog และตอบสนองเหตุการณ์ต่าง ๆ เช่น การยืนยันหรือปิดหน้าต่าง", "tags": [ "dialog", "veto-override", "review-task", "component" ], "complexity": "moderate" }, { "id": "file:components/review-team/ReviewTeamForm.tsx", "type": "file", "name": "ReviewTeamForm.tsx", "filePath": "components/review-team/ReviewTearmForm.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการตรวจสอบทีมงาน โดยมีหน้าที่รับข้อมูลจากผู้ใช้งานและส่งไปยังระบบหลักเพื่อประมวลผล การจัดวางองค์ประกอบบนหน้าจอเป็นไปตามแนวทางการออกแบบ UI อย่างชัดเจน", "tags": [ "form", "team-review", "component" ], "complexity": "moderate" }, { "id": "file:components/review-team/ReviewTeamSelector.tsx", "type": "file", "name": "ReviewTeamSelector.tsx", "filePath": "components/review-team/ReviewTeamSelector.tsx", "summary": "คอมโพเนนต์สำหรับเลือกทีมผู้ตรวจสอบ โดยแสดงรายการทีมพร้อมการกรองและเลือกได้ตามความต้องการของระบบ", "tags": [ "component", "team-selector", "review" ], "complexity": "moderate" }, { "id": "file:components/review-team/TeamMemberManager.tsx", "type": "file", "name": "TeamMemberManager.tsx", "filePath": "components/review-team/TeamMemberManager.tsx", "summary": "คอมโพเนนต์สำหรับจัดการสมาชิกทีมงาน โดยมีฟังก์ชันหลักคือ TeamMemberManager ซึ่งใช้ในการแสดงและควบคุมข้อมูลของแต่ละคนในทีม", "tags": [ "component", "team-member-manager" ], "complexity": "moderate" }, { "id": "file:components/rfas/detail.tsx", "type": "file", "name": "detail.tsx", "filePath": "components/rfas/detail.tsx", "summary": "ไฟล์นี้เป็นหน้าแสดงรายละเอียดของ RFAs โดยมีฟังก์ชันหลักชื่อว่า RFADetail ซึ่งครอบคลุมการทำงานทั้งหมดเกี่ยวกับการแสดงผลข้อมูลและโครงสร้าง UI", "tags": [ "rfas", "detail-view", "component" ], "complexity": "moderate" }, { "id": "file:components/rfas/form.tsx", "type": "file", "name": "form.tsx", "filePath": "components/rfas/form.tsx", "summary": "ไฟล์นี้เป็นส่วนประกอบหลักสำหรับฟอร์ม RFA โดยมีการจัดเตรียมข้อมูลผ่านฟังก์ชันต่าง ๆ เช่น extractArrayData, dedupeByKey และ getOptionValue เพื่อให้ได้ผลลัพธ์ที่ถูกต้องและไม่ซ้ำซ้อน จากนั้นนำเอาส่วนประกอบหลัก RFAForm มาใช้งานโดยมีขนาดโค้ดรวมกว่า 600 บรรทัด", "tags": [ "form-component", "rfas-module", "data-processing" ], "complexity": "complex" }, { "id": "file:components/rfas/list.tsx", "type": "file", "name": "list.tsx", "filePath": "components/rfas/list.tsx", "summary": "คอมโพเนนต์รายการ RFA (Request for Proposal) โดยมีฟังก์ชันหลักชื่อ RFAList ที่ใช้จัดแสดงข้อมูล RFA ในรูปแบบตารางหรือลิสต์ มีโค้ดรวมประมาณ 104 บรรทัด", "tags": [ "component", "rfas", "list" ], "complexity": "moderate" }, { "id": "file:components/search/filters.tsx", "type": "file", "name": "filters.tsx", "filePath": "components/search/filters.tsx", "summary": "คอมโพเนนต์ SearchFilters เป็นองค์ประกอบที่ใช้สำหรับการแสดงผลและกรองข้อมูลตามเงื่อนไขต่าง ๆ โดยมีการจัดวางโครงสร้างภายในให้มีความชัดเจนและสามารถปรับแต่งได้ง่าย", "tags": [ "component", "search", "filter" ], "complexity": "moderate" }, { "id": "file:components/search/results.tsx", "type": "file", "name": "results.tsx", "filePath": "components/search/results.tsx", "summary": "ไฟล์นี้มีหน้าที่แสดงผลลัพธ์การค้นหา โดยประกอบด้วยฟังก์ชัน getLink สำหรับสร้างลิงก์ และคอมโพเนนต์ SearchResults หลักที่ใช้ในการจัดรูปแบบข้อมูลผลลัพธ์", "tags": [ "search-results", "component", "results-display" ], "complexity": "moderate" }, { "id": "file:components/transmittal/transmittal-form.tsx", "type": "file", "name": "transmittal-form.tsx", "filePath": "components/transmittal/transmittal-form.tsx", "summary": "คอมโพเนนต์แบบฟอร์มสำหรับการส่งเอกสาร โดยมีหน้าที่จัดวางองค์ประกอบต่าง ๆ เช่น ช่องกรอกข้อมูล เลือกไฟล์ และปุ่มยืนยัน การใช้งานโดยตรงผ่านการ export TransmittalForm", "tags": [ "form-component", "document-transfer", "react-component" ], "complexity": "moderate" }, { "id": "file:components/transmittal/transmittal-list.tsx", "type": "file", "name": "transmittal-list.tsx", "filePath": "components/transmittal/transmittal-list.tsx", "summary": "คอมโพเนนต์รายการส่งเอกสาร (Transmittal List) ที่แสดงข้อมูลรายการเอกสารทั้งหมดในระบบ โดยมีฟังก์ชันหลักชื่อ TransmittalList มีขนาดโค้ดประมาณ 64 บรรทัด และเป็นหน่วยงานประกอบการจัดแสดงข้อมูลสำหรับผู้ใช้งาน", "tags": [ "component", "transmittal-list", "document-management" ], "complexity": "moderate" }, { "id": "file:components/ui/alert-dialog.tsx", "type": "file", "name": "alert-dialog.tsx", "filePath": "components/ui/alert-dialog.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ-่งของระบบ UI ที่จัดทำ component AlertDialog โดยมีโครงสร้างประกอบด้วย header และ footer เพื่อใช้งานแสดงข้อความแจ้งเตือนหรือการยืนยันต่างๆ ในแอปพลิเคชัน มีการส่งออก (exports) เฉพาะชุดของ component ที่เกี่ยวข้องกับ AlertDialog เช่น AlertDialogHeader, AlertDialogFooter และอื่น ๆ เพื่อนำมาใช้งานในหน้าจอหลักได้โดยตรง", "tags": [ "component", "ui-library", "alert-dialog" ], "complexity": "moderate" }, { "id": "file:components/ui/alert.tsx", "type": "file", "name": "alert.tsx", "filePath": "components/ui/alert.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน alert.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/avatar.tsx", "type": "file", "name": "avatar.tsx", "filePath": "components/ui/avatar.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน avatar.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/badge.tsx", "type": "file", "name": "badge.tsx", "filePath": "components/ui/badge.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์ UI เบื้องต้นสำหรับการแสดงข้อมูลในรูปแบบ badge โดยมีฟังก์ชันหลักคือ Badge และการจัดแสดงโทนสีผ่าน badgeVariants ใช้งานง่ายและปรับแต่งได้ตามความต้องการ", "tags": [ "ui-component", "badge", "component" ], "complexity": "simple" }, { "id": "file:components/ui/button.tsx", "type": "file", "name": "button.tsx", "filePath": "components/ui/button.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน button.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/calendar.tsx", "type": "file", "name": "calendar.tsx", "filePath": "components/ui/calendar.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์ UI สำหรับการแสดงปฏิทิน โดยมีฟังก์ชันหลักชื่อ Calendar เรียงรายยาวประมาณ 42 บรรทัด มีการส่งออกเฉพาะชื่อ Calendar เพื่อนำมาใช้งานในแอปพลิเคชันได้", "tags": [ "ui-component", "calendar", "react-component" ], "complexity": "moderate" }, { "id": "file:components/ui/card.tsx", "type": "file", "name": "card.tsx", "filePath": "components/ui/card.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน card.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/checkbox.tsx", "type": "file", "name": "checkbox.tsx", "filePath": "components/ui/checkbox.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน checkbox.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/command.tsx", "type": "file", "name": "command.tsx", "filePath": "components/ui/command.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ-่งของระบบ UI สำหรับการแสดงผลเมนูคำสั่ง (Command) โดยมีการสร้างคอมโพเนนต์หลายตัว เช่น Command, CommandInput, CommandList และอื่น ๆ เพื่อนำมาใช้แสดงรายการคำสั่งในแอปพลิเคชัน", "tags": [ "ui-component", "command-barrel", "react-components" ], "complexity": "moderate" }, { "id": "file:components/ui/dialog.tsx", "type": "file", "name": "dialog.tsx", "filePath": "components/ui/dialog.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ", "tags": [ "component", "ui-library" ], "complexity": "moderate" }, { "id": "file:components/ui/dropdown-menu.tsx", "type": "file", "name": "dropdown-menu.tsx", "filePath": "components/ui/dropdown-menu.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ่งของระบบ UI components สำหรับการจัดวางเมนูแบบ dropdown โดยมีการสร้าง component เหล่านี้ขึ้นมาเพื่อใช้งานร่วมกันในโปรเจกต์ได้อย่างยืดหยุ่นและเข้าใจง่าย มีฟังก์ชัน DropdownMenuShortcut ที่ทำงานแคบๆ เพียงไม่กี่บรรทัด และส่งออก component ส่วนใหญ่เป็นมาตรฐาน เช่น DropdownMenu, DropdownMenuItem เป็นต้น", "tags": [ "ui-component", "dropdown-menu", "react-component" ], "complexity": "simple" }, { "id": "file:components/ui/form.tsx", "type": "file", "name": "form.tsx", "filePath": "components/ui/form.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ", "tags": [ "component", "ui-kit" ], "complexity": "moderate" }, { "id": "file:components/ui/hover-card.tsx", "type": "file", "name": "hover-card.tsx", "filePath": "components/ui/hover-card.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน hover-card.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/input.tsx", "type": "file", "name": "input.tsx", "filePath": "components/ui/input.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน input.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/label.tsx", "type": "file", "name": "label.tsx", "filePath": "components/ui/label.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน label.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/popover.tsx", "type": "file", "name": "popover.tsx", "filePath": "components/ui/popover.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน popover.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/progress.tsx", "type": "file", "name": "progress.tsx", "filePath": "components/ui/progress.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน progress.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/scroll-area.tsx", "type": "file", "name": "scroll-area.tsx", "filePath": "components/ui/scroll-area.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน scroll-area.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/select.tsx", "type": "file", "name": "select.tsx", "filePath": "components/ui/select.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์ UI สำหรับการเลือกค่าแบบ dropdown โดยมีองค์ประกอบหลายส่วน เช่น Select, SelectGroup, SelectValue และอื่น ๆ เพื่อใช้สร้างเมนูเลือกได้อย่างยืดหยุ่นและเข้ากันได้ง่ายในระบบที่พัฒนาขึ้น", "tags": [ "ui-component", "dropdown-select", "react-component" ], "complexity": "moderate" }, { "id": "file:components/ui/separator.tsx", "type": "file", "name": "separator.tsx", "filePath": "components/ui/separator.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน separator.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/sheet.tsx", "type": "file", "name": "sheet.tsx", "filePath": "components/ui/sheet.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ-่งของระบบ UI components สำหรับการจัดแสดง Sheet (ช่องโต้ตอบแบบลอยตัว) โดยมีโครงสร้างพื้นฐานหลายองค์ประกอบ เช่น SheetHeader, SheetFooter และอื่น ๆ เพื่อนำมาใช้งานร่วมกันในแอปพลิเคชันได้อย่างยืดหยุ่น", "tags": [ "ui-component", "sheet-modal", "react-components" ], "complexity": "moderate" }, { "id": "file:components/ui/skeleton.tsx", "type": "file", "name": "skeleton.tsx", "filePath": "components/ui/skeleton.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์สำหรับแสดงโครงสร้างเบื้องต้น (Skeleton) ใช้งานเพื่อจำลองการแสดงผลขณะโหลดข้อมูล โดยมีฟังก์ชันหลักชื่อ Skeleton เรียบง่ายและมีขนาดเล็ก", "tags": [ "component", "ui-kit", "skeleton" ], "complexity": "simple" }, { "id": "file:components/ui/sonner.tsx", "type": "file", "name": "sonner.tsx", "filePath": "components/ui/sonner.tsx", "summary": "ไฟล์นี้เป็นส่วนหนึ-่งของระบบแจ้งเตือน (Toaster) โดยใช้ไลบรารี Sonner เพื่อแสดงข้อความแจ้งเตือนแบบเรียลไทม์ บนหน้าเว็บ มีการสร้างคอมโพเนนต์ Toaster ที่สามารถจัดวางตำแหน่งและควบคุมการแสดงผลได้อย่างยืดหยุ่น", "tags": [ "toaster", "notifications", "sonner" ], "complexity": "moderate" }, { "id": "file:components/ui/switch.tsx", "type": "file", "name": "switch.tsx", "filePath": "components/ui/switch.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน switch.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/table.tsx", "type": "file", "name": "table.tsx", "filePath": "components/ui/table.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน table.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/tabs.tsx", "type": "file", "name": "tabs.tsx", "filePath": "components/ui/tabs.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน tabs.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/ui/textarea.tsx", "type": "file", "name": "textarea.tsx", "filePath": "components/ui/textarea.tsx", "summary": "ไฟล์โค้ดหน้าบ้าน textarea.tsx", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:components/workflow/integrated-banner.tsx", "type": "file", "name": "integrated-banner.tsx", "filePath": "components/workflow/integrated-banner.tsx", "summary": "ไฟล์นี้เป็นคอมโพเนนต์แสดงข้อมูลสถานะการทำงานแบบรวมกัน โดยมีฟังก์ชันสนับสนุนสำหรับการแปลงสถานะเป็นสีและรูปแบบการแสดงผล เช่น การกำหนดสีตามสถานะ และการแสดงปุ่มดำเนินการได้ ประกอบด้วยคอมโพเนนต์หลัก IntegratedBanner และ ActionButton", "tags": [ "component", "workflow", "status-display", "action-button" ], "complexity": "moderate" }, { "id": "file:components/workflows/dsl-editor.tsx", "type": "file", "name": "dsl-editor.tsx", "filePath": "components/workflows/dsl-editor.tsx", "summary": "คอมโพเนนต์ DSLEditor เป็นหน้าที่ใช้แสดงผลและจัดการงานดีไซน์แบบ DSL โดยมีฟังก์ชันหลักคือการสร้าง UI สำหรับแก้ไขลำดับการทำงานผ่านโครงสร้างข้อมูลเฉพาะทาง", "tags": [ "component", "dsl-editor", "workflow" ], "complexity": "moderate" }, { "id": "file:components/workflows/visual-builder.tsx", "type": "file", "name": "visual-builder.tsx", "filePath": "components/workflows/visual-builder.tsx", "summary": "ไฟล์นี้เป็นองค์ประกอบหลักสำหรับการสร้างงานแบบสายไหล (workflow) อย่างมีภาพรวม โดยให้ผู้ใช้งานสามารถดึงโหนดและเชื่อมโยงกันได้อย่างยืดหยุ่น มีฟังก์ชันสนับสนุนหลายตัว เช่น createNode, createEdge และ parseDSL ที่ทำงานร่วมกันเพื่อแปลงโครงสร้างข้อมูลเป็นภาพประกอบ", "tags": [ "visual-builder", "workflow-engine", "dsl-parser" ], "complexity": "moderate" }, { "id": "file:components/workflow/workflow-lifecycle.tsx", "type": "file", "name": "workflow-lifecycle.tsx", "filePath": "components/workflow/workflow-lifecycle.tsx", "summary": "ไฟล์นี้เป็นองค์ประกอบหลักสำหรับแสดงชีวิตการทำงานของระบบ (Workflow Lifecycle) โดยมีฟังก์ชันต่าง ๆ เช่น getNodeStyle และ getActionLabelKey ที่ใช้ในการกำหนดสไตลัสและป้ายกำกับการกระทำตามสถานะต่าง ๆ ในลำดับชั้นของงาน", "tags": [ "workflow-lifecycle", "component", "lifecycle-management" ], "complexity": "moderate" }, { "id": "file:./src/eslint.config.mjs", "type": "file", "name": "eslint.config.mjs", "filePath": "./src/eslint.config.mjs", "summary": "ไฟล์กำหนดค่า ESLint เพื่อกำหนดกฎการเขียนโค้ดของโปรเจกต์ โดยไม่มีเนื้อหาหรือการนำเข้าใด ๆ ระบุไว้ในไฟล์นี้", "tags": [ "eslint", "configuration", "rules" ], "complexity": "simple" }, { "id": "file:hooks/ai/use-intent-classification.ts", "type": "file", "name": "use-intent-classification.ts", "filePath": "hooks/ai/use-intent-classification.ts", "summary": "ไฟล์นี้เป็น hook สำหรับจัดการกับการจำแนกประเภทเจตนา (intent classification) ในระบบ AI โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูลแบบกำหนดไว้ล่วงหน้า, การสร้าง/อัปเดท pattern และ definition รวมถึงการวิเคราะห์พฤติกรรมของเจตนา เพื่อให้ระบบสามารถตอบสนองตามความต้องการได้อย่างแม่นยำ", "tags": [ "ai", "intent-classification", "hook", "use-intent-definitions", "use-intent-patterns" ], "complexity": "moderate" }, { "id": "file:hooks/use-ai-chat.ts", "type": "file", "name": "use-ai-chat.ts", "filePath": "hooks/use-ai-chat.ts", "summary": "ตัวช่วย (hook) สำหรับจัดการการสนทนาแบบ AI โดยมีฟังก์ชันหลักชื่อ useAiChat ซึ่งใช้งานได้ยาวถึง 87 บรรทัด มีหน้าที่รองรับการทำงานของระบบแชทดิสเพลย์และจัดการข้อมูลผู้ใช้ในระหว่างสนทนา", "tags": [ "hook", "ai-chat" ], "complexity": "moderate" }, { "id": "file:hooks/use-ai-prompts.ts", "type": "file", "name": "use-ai-prompts.ts", "filePath": "hooks/use-ai-prompts.ts", "summary": "ไฟล์นี้ประกอบด้วย hook สำหรับจัดการคำขอ AI prompts และการทำงานในสภาพแวดล้อม sandbox โดยมีฟังก์ชันหลักคือ useAiPrompts และ useSandboxRun ที่ใช้งานร่วมกับระบบบริหารจัดการ prompt และ execution ในสภาพแวดล้อมจำลอง", "tags": [ "hook", "ai-prompts", "sandbox-run" ], "complexity": "moderate" }, { "id": "file:hooks/use-ai-status.ts", "type": "file", "name": "use-ai-status.ts", "filePath": "hooks/use-ai-status.ts", "summary": "ไฟล์นี้จัดเก็บชุดฟังก์ชันสำหรับการดูแลสถานะ AI โดยมีฟังก์ชันต่าง ๆ เช่น การตรวจสอบสถานะ AI ของผู้ใช้งานปัจจุบัน (useCurrentUserAiStatus), การควบคุมการทำงานของฟีเจอร์ AI (useToggleAiFeatures) และการประเมินสุขภาพระบบ AI (useAiHealth)", "tags": [ "hook", "ai-status", "user-context", "health-check" ], "complexity": "moderate" }, { "id": "file:hooks/use-audit-logs.ts", "type": "file", "name": "use-audit-logs.ts", "filePath": "hooks/use-audit-logs.ts", "summary": "ไฟล์นี้จัดเก็บ hook เกี่ยวกับการดึงประวัติการตรวจสอบ (audit logs) โดยมีฟังก์ชัน useAuditLogs ที่ใช้ในการเรียกดูข้อมูลประวัติการเข้าถึงระบบ และส่งคืน key สำหรับการจัดการ state เก็บไว้ใน cache", "tags": [ "hook", "audit-logs", "use-audit-logs" ], "complexity": "simple" }, { "id": "file:hooks/use-circulation.ts", "type": "file", "name": "use-circulation.ts", "filePath": "hooks/use-circulation.ts", "summary": "ไฟล์นี้ประกอบด้วยตัวช่วย (hook) สำหรับจัดการข้อมูลวงจรเอกสาร เช่น การใช้งาน hook useCirculation และ useCirculationsByCorrespondence เพื่อดึงข้อมูลวงจรเอกสารตามความจำเป็นของระบบ", "tags": [ "hook", "circulation", "document-cycle" ], "complexity": "moderate" }, { "id": "file:hooks/use-correspondence.ts", "type": "file", "name": "use-correspondence.ts", "filePath": "hooks/use-correspondence.ts", "summary": "ไฟล์นี้เป็นแหล่งรวมของ hook ที่เกี่ยวข้องกับการจัดการเอกสารสื่อสาร (correspondence) โดยมีฟังก์ชันต่าง ๆ เช่น การดึงรายการเอกสาร ส่งออกเอกสาร อัปเดต เปลี่ยนแปลงสถานะ และจัดการแท็กหรือแหล่งอ้างอิง รวมถึงกระบวนการไหลเวียนงาน (workflow)", "tags": [ "hook", "correspondence", "use-correspondences", "use-create-correspondence", "use-update-correspondence", "use-delete-correspondence", "use-cancel-correspondence", "use-submit-correspondence", "use-tags", "use-references", "workflow" ], "complexity": "moderate" }, { "id": "file:hooks/use-dashboard.ts", "type": "file", "name": "use-dashboard.ts", "filePath": "hooks/use-dashboard.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดฟังก์ชันสำหรับใช้งาน Dashboard โดยมีการสร้าง hook ต่าง ๆ เช่น useDashboardStats, useRecentActivity และ usePendingTasks เพื่อจัดเก็บและจัดการข้อมูลสถิติแดชบอร์ด กิจกรรมล่าสุด และงานที่ยังไม่ได้ดำเนินการตามลำดับ", "tags": [ "hook", "dashboard", "stats", "activity", "task" ], "complexity": "moderate" }, { "id": "file:hooks/use-delegation.ts", "type": "file", "name": "use-delegation.ts", "filePath": "hooks/use-delegation.ts", "summary": "ไฟล์นี้จัดเก็บชุดของ hook ที่ใช้ในการจัดการหน้าที่ส่งต่อ (delegation) โดยมีฟังก์ชันหลัก ๆ เช่น useMyDelegations, useCreateDelegation และ useRevokeDelegation เพื่อให้ง่ายต่อการทำงานด้านการดึงข้อมูลและการสร้าง/ยกเลิกหน้าที่ส่งต่อ", "tags": [ "hook", "delegation", "useMyDelegations", "useCreateDe-legation", "useRevokeDelegation" ], "complexity": "moderate" }, { "id": "file:hooks/use-distribution-matrices.ts", "type": "file", "name": "use-distribution-mat", "filePath": "hooks/use-distribution-matrices.ts", "summary": "ไฟล์นี้จัดเก็บตัวช่วย (hook) สำหรับการจัดการเมทริกซ์การกระจายสินค้า โดยมีฟังก์ชันหลัก ๆ เช่น useDistributionMatrices, useCreateDistributionMatrix และ useDeleteDistributionMatrix เพื่อให้สามารถดึงข้อมูลและดำเนินการสร้าง/ลบเมทริกซ์ได้อย่างมีประสิทธิภาพ", "tags": [ "hook", "distribution-matrix", "use-distribution-matrices" ], "complexity": "moderate" }, { "id": "file:hooks/use-drawing.ts", "type": "file", "name": "use-drawing.ts", "filePath": "hooks/use-drawing.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดของ hook ที่เกี่ยวข้องกับการจัดการการวาดภาพ (drawing) โดยมีฟังก์ชันต่าง ๆ เช่น useDrawings, useDrawing, useCreateDrawing และอื่น ๆ เพื่อรองรับการทำงานในระดับ component เกี่ยวกับการออกแบบหรือแก้ไขรายละเอียดของ drawing", "tags": [ "hook", "drawing-management", "use-drawings", "contract-drawing" ], "complexity": "moderate" }, { "id": "file:hooks/use-master-data.ts", "type": "file", "name": "use-master-data.ts", "filePath": "hooks/use-master-data.ts", "summary": "ไฟล์นี้เป็น hook สำหรับจัดการข้อมูลหลัก (master data) โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูลองค์กร, ส่วนงาน, เรื่องราวโครงการ และสัญญา มาใช้งานได้ทันทีผ่าน React Hook API", "tags": [ "hook", "master-data", "organization", "discipline", "project", "contract" ], "complexity": "moderate" }, { "id": "file:src/hooks/use-migration-review.ts", "type": "file", "name": "use-migration-review.ts", "filePath": "src/hooks/use-migration-review.ts", "summary": "ไฟล์นี้เป็น hook สำหรับจัดการกระบวนการตรวจสอบย้ายข้อมูล (migration review) โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูล, การเพิ่มเติมคำขอตรวจสอบ และการปฏิเสธคำขอตรวจสอบ มีการใช้งานร่วมกับระบบจัดเก็บสถานะและคีย์สำหรับการเรียกดูข้อมูล", "tags": [ "hook", "migration-review", "data-fetching", "approval-flow" ], "complexity": "moderate" }, { "id": "file:hooks/use-notification.ts", "type": "file", "name": "use-notification.ts", "filePath": "hooks/use-notification.ts", "summary": "ไฟล์นี้จัดเก็บระบบแจ้งเตือน (notifications) โดยมีฟังก์ชันหลักสองตัวคือ useNotifications และ useMarkNotificationRead ใช้สำหรับการดึงข้อมูลแจ้งเตือนและทำเครื่องหมายว่าอ่านแล้วตามลำดับ", "tags": [ "hook", "notification", "use-notifications" ], "complexity": "moderate" }, { "id": "file:hooks/use-numbering.ts", "type": "file", "name": "use-numbering.ts", "filePath": "hooks/use-numbering.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดของ custom hooks ที่จัดการกับการทำงานต่าง ๆ เรื่องเลขลำดับ (numbering) ในระบบ โดยมีฟังก์ชันเฉพาะสำหรับแต่ละภาระงาน เช่น การสร้างแบบแปลง (templates), การบันทึกข้อมูล, การตรวจสอบเมตริกส์, การจัดการประวัติการใช้งาน, การเปลี่ยนเลขลำดับแบบมือถือ, การยกเลิกเลขลำดับ และการนำเข้าจำนวนมาก ช่วยให้ระบบสามารถควบคุมและจัดการเลขลำดับได้อย่างมีประสิทธิภาพ", "tags": [ "custom-hooks", "numbering-management", "template-handling", "audit-logs" ], "complexity": "moderate" }, { "id": "file:hooks/use-projects.ts", "type": "file", "name": "use-projects.ts", "filePath": "hooks/use-projects.ts", "summary": "ไฟล์นี้จัดเก็บชุดของ hook สำหรับการจัดการโครงการต่าง ๆ โดยมีฟังก์ชันหลัก เช่น useProjects, useCreateProject, useUpdateProject และ useDeleteProject เพื่อให้สามารถดึงข้อมูลและดำเนินการ CRUD กับโครงการได้อย่างมีประสิทธิภาพ", "tags": [ "hook", "project-management", "use-projects", "CRUD" ], "complexity": "moderate" }, { "id": "file:hooks/use-reference-data.ts", "type": "file", "name": "use-reference-data.ts", "filePath": "hooks/use-reference-data.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดของ hook ที่ใช้จัดการข้อมูลอ้างอิงต่าง ๆ เช่นประเภท RFA, Disciplines และประเภทการสื่อสาร โดยแต่ละ hook มีหน้าที่เฉพาะเจาะจงในการดึงหรือสร้าง/แก้ไข/ลบข้อมูลตามความจำเป็นของระบบ", "tags": [ "hook", "reference-data", "RFA-type", "discipline", "correspondence-type" ], "complexity": "moderate" }, { "id": "file:src/hooks/use-reminder.ts", "type": "file", "name": "use-reminder.ts", "filePath": "src/hooks/use-reminder.ts", "summary": "ไฟล์นี้จัดเก็บชุดของ hook ที่ใช้บริหารจัดการกฎเตือนและประวัติการแจ้งเตือน โดยมีฟังก์ชันหลักๆ เช่น useReminderRules, useReminderHistory และ hook เพื่อสร้าง/แก้ไข/ลบกฎเตือน", "tags": [ "hook", "reminder-rule", "state-management" ], "complexity": "moderate" }, { "id": "file:hooks/use-response-codes.ts", "type": "file", "name": "use-response-codes.ts", "filePath": "hooks/use-response-codes.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดของ hook ที่ใช้จัดการรหัสคำตอบ (response codes) โดยแยกตามประเภทต่าง ๆ เช่น การแบ่งตามหมวดหมู่หรือชนิดเอกสาร เพื่อให้ง่ายต่อการเข้าถึงข้อมูลในแอปพลิเคชัน", "tags": [ "hook", "response-codes", "category-filtering", "document-type" ], "complexity": "moderate" }, { "id": "file:hooks/use-review-teams.ts", "type": "file", "name": "use-review-teams.ts", "filePath": "hooks/use-review-teams.ts", "summary": "ไฟล์นี้จัดเก็บชุดฟังก์ชันสำหรับการจัดการทีมผู้ประเมิน โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูลทีมผู้ประเมิน (useReviewTeams), การสร้าง/อัปเดตทีม, และการเพิ่ม-ลบสมาชิกในทีม ใช้ร่วมกับระบบจัดการหน่วยงานและสิทธิ์พนักงาน", "tags": [ "hook", "review-team", "team-management", "useCreateReviewTeam", "useUpdateReviewTeam" ], "complexity": "moderate" }, { "id": "file:hooks/use-rfa.ts", "type": "file", "name": "use-rfa.ts", "filePath": "hooks/use-rfa.ts", "summary": "ไฟล์นี้ประกอบด้วยชุดของ hook ที่ใช้จัดการกับการทำงานต่าง ๆ เรื่อง RFA (Request For Approval) โดยมีฟังก์ชันหลัก เช่น useRFA, useSubmitRFA, useCreateRFA และอื่นๆ เพื่อให้ง่ายต่อการดึงข้อมูลหรือส่งคำขออนุมัติจากผู้ใช้", "tags": [ "hook", "rfa", "approval workflow" ], "complexity": "moderate" }, { "id": "file:hooks/use-search.ts", "type": "file", "name": "use-search.ts", "filePath": "hooks/use-search.ts", "summary": "ไฟล์นี้จัดเก็บ hook สำหรับการค้นหาข้อมูล โดยมีฟังก์ชันหลักสองตัวได้แก่ useSearch และ useSearchSuggestions ที่ใช้งานร่วมกับระบบแนะนำคำค้นหา", "tags": [ "hook", "search", "use-search" ], "complexity": "moderate" }, { "id": "file:hooks/use-translations.ts", "type": "file", "name": "use-translations.ts", "filePath": "hooks/use-translations.ts", "summary": "สรุปหน้าที่ของไฟล์นี้คือการจัดการภาษาแบบใช้งานง่ายผ่าน hook โดยมีฟังก์ชัน useTranslations สำหรับดึงข้อมูลคำแปลจากแหล่งต้นทาง เช่น i18n provider และส่งกลับเป็น object ของคำแปลพร้อม key เหมาะสมสำหรับใช้งานใน component", "tags": [ "hook", "i18n", "translation" ], "complexity": "simple" }, { "id": "file:hooks/use-transmittal.ts", "type": "file", "name": "use-transmittal.ts", "filePath": "hooks/use-transmittal.ts", "summary": "ตัวช่วย (hook) สำหรับจัดการข้อมูลการส่งเอกสาร โดยมีฟังก์ชันหลักชื่อ useTransmittal และคีย์ที่ใช้ในการจัดเก็บสถานะของเอกสารในระบบ", "tags": [ "use-transmittal", "transmittal-keys" ], "complexity": "moderate" }, { "id": "file:hooks/use-users.ts", "type": "file", "name": "use-users.ts", "filePath": "hooks/use-users.ts", "summary": "ไฟล์นี้จัดเก็บชุดฟังก์ชันสำหรับการจัดการผู้ใช้งาน โดยมีฟังก์ชันหลัก ๆ เช่น useUsers, useRoles, useCreateUser, useUpdateUser และ useDeleteUser ที่รองรับการทำงานต่าง ๆ เกี่ยวกับข้อมูลผู้ใช้ในระบบ", "tags": [ "hook", "user-management", "react-query" ], "complexity": "moderate" }, { "id": "file:src/hooks/use-workflow-action.ts", "type": "file", "name": "use-workflow-action.ts", "filePath": "src/hooks/use-workflow-action.ts", "summary": "ไฟล์นี้จัดเก็บ hook สำหรับการจัดการการทำงานของ workflow โดยมีฟังก์ชัน isApiErrorResponse เพื่อตรวจสอบข้อผิดพลาดจาก API และใช้ใน hook useWorkflowAction หลักๆ เป็นตัวควบคุมสถานะและพฤติกรรมของการเรียกดูหรือดำเนินการตามลำดับของ workflow", "tags": [ "hook", "workflow-action", "api-error-check" ], "complexity": "moderate" }, { "id": "file:hooks/use-workflow-history.ts", "type": "file", "name": "use-workflow-history.ts", "filePath": "hooks/use-workflow-history.ts", "summary": "ตัวช่วย (hook) เพื่อจัดการประวัติการทำงานของกระบวนการ โดยให้ค่าข้อมูลประวัติงานที่เก็บไว้อยู่ในระบบ และรองรับการดึงข้อมูลผ่าน key สำหรับใช้งานร่วมกัน", "tags": [ "hook", "workflow-history" ], "complexity": "moderate" }, { "id": "file:hooks/use-workflows.ts", "type": "file", "name": "use-workflows.ts", "filePath": "hooks/use-workflows.ts", "summary": "ไฟล์นี้จัดเก็บชุดของ custom hooks ที่ใช้ในการจัดการ workflow โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูล definition, การสร้าง/อัปเดต/ลบ definition และการประเมิน workflow เพื่อนำไปใช้งานในหน้าเว็บไซต์", "tags": [ "custom-hooks", "workflow-management", "react-query", "dsl-validation" ], "complexity": "moderate" }, { "id": "file:lib/api/admin.ts", "type": "file", "name": "admin.ts", "filePath": "/src/lib/api/admin.ts", "summary": "ไฟล์นี้เป็นโมดูลสำหรับจัดการ API โดยเฉพาะอย่างยิ่งใช้สำหรับระบบบริหารจัดการ (Admin) มีการส่งออกตัวแปร adminApi ซึ่งอาจเป็น instance ของ RTK Query เพื่อให้งาน CRUD และการดึงข้อมูลจาก backend เกิดขึ้นได้อย่างมีประสิทธิภาพ", "tags": [ "api-client", "admin-module", "rtk-query" ], "complexity": "moderate" }, { "id": "file:lib/api/ai.ts", "type": "file", "name": "ai.ts", "filePath": "lib/api/ai.ts", "summary": "ไฟล์นี้เป็นโมดูล API สำหรับการจัดการงาน AI โดยมีฟังก์ชันต่าง ๆ เช่น การส่งคำขอ Rag, การตรวจสอบสถานะงาน, การอนุมัติข้อมูล staging และการจัดการลอคของระบบ เพื่อให้ผู้ใช้งานสามารถโต้ตอบและควบคุมการทำงานของ AI ได้อย่างมีประสิทธิภาพ", "tags": [ "ai", "rag-query", "staging-queue", "api-handler" ], "complexity": "moderate" }, { "id": "file:lib/api/dashboard.ts", "type": "file", "name": "dashboard.ts", "filePath": "/src/lib/api/dashboard.ts", "summary": "ไฟล์นี้เป็นโมดูลสำหรับจัดการ API dashboard โดยส่งออกตัวแปร dashboardApi ใช้ในการเรียกใช้งาน endpoint เฉพาะทางแดชบอร์ดในแอปพลิเคชัน", "tags": [ "api-handler", "dashboard" ], "complexity": "moderate" }, { "id": "file:lib/api/drawings.ts", "type": "file", "name": "drawings.ts", "filePath": "lib/api/drawings.ts", "summary": "ไฟล์โค้ดหน้าบ้าน drawings.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/api/files.ts", "type": "file", "name": "files.ts", "filePath": "lib/api/files.ts", "summary": "ไฟล์โค้ดหน้าบ้าน files.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/api/notifications.ts", "type": "file", "name": "notifications.ts", "filePath": "lib/api/notifications.ts", "summary": "ไฟล์โค้ดหน้าบ้าน notifications.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/api/numbering.ts", "type": "file", "name": "numberingApi", "filePath": "lib/api/numbering.ts", "summary": "ไฟล์นี้เป็นโมดูล API สำหรับการจัดลำดับเลขที่ โดยส่งออกตัวแปร numberingApi เพื่อใช้งานในแอปพลิเคชันได้โดยตรง", "tags": [ "api-module", "numbering" ], "complexity": "moderate" }, { "id": "file:lib/api/workflows.ts", "type": "file", "name": "workflows.ts", "filePath": "/src/lib/api/workflows.ts", "summary": "ไฟล์นี้เป็นโมดูลสำหรับจัดการ API เกี่ยวกับ workflow โดยส่งออกตัวแปร workflowApi ซึ่งใช้ในการเรียกดูและจัดการข้อมูล workflow ในระบบได้อย่างมีประสิทธิภาพ", "tags": [ "api-client", "workflow-management" ], "complexity": "moderate" }, { "id": "file:lib/auth.ts", "type": "file", "name": "auth.ts", "filePath": "lib/auth.ts", "summary": "ไฟล์นี้จัดเก็บฟังก์ชันต่าง ๆ ที่เกี่ยวข้องกับการตรวจสอบและจัดการโทเคน (token) เช่น การดึงเวลาหมดอายุของ JWT, การตรวจสอบโครงสร้าง payload จาก token และการรีเฟรช accessToken โดยมีการส่งออกค่า handlers อันประกอบไปด้วยฟังก์ชัน GET และ POST เพื่อใช้งานในระบบบริหารจัดการการเข้าสู่ระบบ", "tags": [ "authentication", "jwt", "token-management", "api-handler" ], "complexity": "moderate" }, { "id": "file:lib/i18n/index.ts", "type": "file", "name": "index.ts", "filePath": "lib/i18n/index.ts", "summary": "ไฟล์นี้จัดการระบบแปลภาษา (i18n) โดยสร้างฟังก์ชัน createT สำหรับใช้ในการเรียกคำแปล และส่งออกตัวแปร t เพื่อให้สามารถใช้งานได้ง่ายในโปรเจกต์", "tags": [ "i18n", "translation", "createT", "t" ], "complexity": "simple" }, { "id": "file:lib/services/asbuilt-drawing.service.ts", "type": "file", "name": "asbuilt-drawing.service.ts", "filePath": "lib/services/asbuilt-drawing.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน asbuilt-drawing.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/audit-log.service.ts", "type": "file", "name": "audit-log.service.ts", "filePath": "lib/services/audit-log.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน audit-log.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/circulation.service.ts", "type": "file", "name": "circulation.service.ts", "filePath": "lib/services/circulation.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน circulation.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/contract-drawing.service.ts", "type": "file", "name": "contract-drawing.service.ts", "filePath": "lib/services/contract-drawing.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน contract-drawing.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/contract.service.ts", "type": "file", "name": "contract.service.ts", "filePath": "lib/services/contract.service.ts", "summary": "ไฟล์นี้เป็นบริการสำหรับจัดการข้อมูลสัญญา โดยมีฟังก์ชัน normalizeContract ที่ใช้ปรับรูปแบบข้อมูลสัญญาให้อยู่ในมาตรฐาน และ extractContractArray เพื่อดึงข้อมูลรายการสัญญาออกมาเป็นอาร์เรย์", "tags": [ "service", "contract", "data-processing" ], "complexity": "moderate" }, { "id": "file:lib/services/correspondence.service.ts", "type": "file", "name": "correspondence.service.ts", "filePath": "lib/services/correspondence.service.ts", "summary": "บริการจัดการข้อมูลเอกสารสื่อสารภายในระบบ โดยมีหน้าที่หลักในการดึงข้อมูล สร้าง และอัปเดตเอกสารสื่อสารตามความต้องการของผู้ใช้งาน", "tags": [ "service", "correspondence", "document-management" ], "complexity": "moderate" }, { "id": "file:lib/services/dashboard.service.ts", "type": "file", "name": "dashboard.service.ts", "filePath": "/src/lib/services/dashboard.service.ts", "summary": "บริการสำหรับจัดการหน้าแดชบอร์ด โดยมีฟังก์ชันหลักในการดึงข้อมูลจากฐานข้อมูลและประมวลผลให้พร้อมใช้งานในหน้าแสดงผล", "tags": [ "service", "dashboard", "data-fetching" ], "complexity": "moderate" }, { "id": "file:lib/services/document-numbering.service.ts", "type": "file", "name": "document-numbering.service.ts", "filePath": "lib/services/document-numbering.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน document-numbering.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/drawing-master-data.service.ts", "type": "file", "name": "drawing-master-data.service.ts", "filePath": "lib/services/drawing-master-data.service.ts", "summary": "บริการสำหรับจัดการข้อมูลหลักของแบบวาดภาพ โดยมีหน้าที่ดูแลการทำงานกับฐานข้อมูลและให้บริการข้อมูลแก่ component อื่น ๆ ผ่าน method เช่น การเพิ่ม เปลี่ยนแปลงหรือลบข้อมูล", "tags": [ "service", "drawing-master-data" ], "complexity": "moderate" }, { "id": "file:lib/services/index.ts", "type": "file", "name": "index.ts", "filePath": "lib/services/index.ts", "summary": "ไฟล์โค้ดหน้าบ้าน index.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/json-schema.service.ts", "type": "file", "name": "json-schema.service.ts", "filePath": "lib/services/json-schema.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน json-schema.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/master-data.service.ts", "type": "file", "name": "master-data.service.ts", "filePath": "/src/lib/services/master-data.service.ts", "summary": "บริการสำหรับจัดการข้อมูลหลัก (Master Data) โดยมีฟังก์ชัน extractArrayData ใช้ในการดึงข้อมูลเป็นอาร์เรย์ และส่งค่าออกเป็นโมดูล masterDataService เพื่อให้งานต่าง ๆ เรียกดูหรือประมวลผลได้อย่างมีประสิทธิภาพ", "tags": [ "service", "master-data", "utility" ], "complexity": "moderate" }, { "id": "file:lib/services/monitoring.service.ts", "type": "file", "name": "monitoring.service.ts", "filePath": "lib/services/monitoring.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน monitoring.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/notification.service.ts", "type": "file", "name": "notification.service.ts", "filePath": "lib/services/notification.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน notification.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/organization.service.ts", "type": "file", "name": "organization.service.ts", "filePath": "lib/services/organization.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน organization.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/project.service.ts", "type": "file", "name": "project.service.ts", "filePath": "lib/services/project.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน project.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/review-team.service.ts", "type": "file", "name": "review-team.service.ts", "filePath": "lib/services/review-team.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน review-team.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/rfa.service.ts", "type": "file", "name": "rfa.service.ts", "filePath": "lib/services/rfa.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน rfa.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/search.service.ts", "type": "file", "name": "search.service.ts", "filePath": "lib/services/search.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน search.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/session.service.ts", "type": "file", "name": "session.service.ts", "filePath": "lib/services/session.service.ts", "summary": "ไฟล์นี้เป็นบริการสำหรับจัดการเซสชัน โดยมีฟังก์ชัน extractArrayData ที่ใช้ดึงข้อมูลจากอาร์เรย์ และ transformSession เพื่อแปลงรูปแบบของข้อมูลเซสชันให้อยู่ในรูปแบบที่เหมาะสมสำหรับการตอบกลับ", "tags": [ "service", "session-management" ], "complexity": "moderate" }, { "id": "file:lib/services/shop-drawing.service.ts", "type": "file", "name": "shop-drawing.service.ts", "filePath": "lib/services/shop-drawing.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน shop-drawing.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/transmittal.service.ts", "type": "file", "name": "transmittal.service.ts", "filePath": "lib/services/transmittal.service.ts", "summary": "ไฟล์โค้ดหน้าบ้าน transmittal.service.ts", "tags": [ "utility", "service", "api-handler" ], "complexity": "simple" }, { "id": "file:lib/services/user.service.ts", "type": "file", "name": "user.service.ts", "filePath": "lib/services/user.service.ts", "summary": "ไฟล์นี้เป็นบริการสำหรับจัดการข้อมูลผู้ใช้งาน โดยมีฟังก์ชัน extractArrayData ที่ดึงข้อมูลจากอาร์เรย์ และ transformUser เพื่อแปลงรูปแบบข้อมูลผู้ใช้ให้อยู่ในรูปแบบที่ต้องการ", "tags": [ "service", "user-management" ], "complexity": "moderate" }, { "id": "file:lib/services/workflow-engine.service.ts", "type": "file", "name": "workflow-engine.service.ts", "filePath": "lib/services/workflow-engine.service.ts", "summary": "บริการสำหรับจัดการการทำงานของระบบ workflow โดยมีฟังก์ชันต่าง ๆ เช่น การดึงข้อมูลจาก array, nested structure และ DSL definition มาใช้งานอย่างเหมาะสม มีการแปลงประเภทของ workflow ให้เข้ารูปแบบมาตรฐานเพื่อรองรับการทำงานในระบบที่หลากหลาย", "tags": [ "workflow-engine", "data-extraction", "dsl-processing", "service-layer" ], "complexity": "moderate" }, { "id": "file:lib/stores/auth-store.ts", "type": "file", "name": "auth-store.ts", "filePath": "lib/stores/auth-store.ts", "summary": "ไฟล์โค้ดหน้าบ้าน auth-store.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/stores/draft-store.ts", "type": "file", "name": "draft-store.ts", "filePath": "lib/stores/draft-store.ts", "summary": "ไฟล์โค้ดหน้าบ้าน draft-store.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/stores/ui-store.ts", "type": "file", "name": "ui-store.ts", "filePath": "lib/stores/ui-store.ts", "summary": "ไฟล์โค้ดหน้าบ้าน ui-store.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:lib/test-utils.tsx", "type": "file", "name": "test-utils.tsx", "filePath": "lib/test-utils.tsx", "summary": "ไฟล์นี้ให้เครื่องมือสำหรับการทดสอบ โดยมีฟังก์ชัน createTestQueryClient ที่สร้าง client query เพื่อใช้งานในสภาพแวดล้อมทดสอบ และ waitForQueryClient เพื่อรอให้ query client เตรียมพร้อมใช้งาน", "tags": [ "testing", "query-client", "utility" ], "complexity": "moderate" }, { "id": "file:lib/utils.ts", "type": "file", "name": "utils.ts", "filePath": "/src/lib/utils.ts", "summary": "ไฟล์นี้มีหน้าที่จัดการกับฟังก์ชันต่าง ๆ เช่น การรวมค่าสตริงหรือการแสดงผลตามเงื่อนไข โดยเฉพาะอย่างยิ่งมีฟังก์ชัน cn ซึ่งใช้ในการควบคุมการแสดงผลขององค์ประกอบ HTML", "tags": [ "utility", "string-combination" ], "complexity": "simple" }, { "id": "file:lib/utils/uuid-guard.ts", "type": "file", "name": "uuid-guard.ts", "filePath": "/src/lib/utils/uuid-guard.ts", "summary": "ไฟล์นี้มีหน้าที่ตรวจสอบค่า UUID โดยใช้ฟังก์ชัน assertUuid ซึ่งรับพารามิเตอร์เป็นสตริงและยืนยันว่าเป็นรูปแบบของ UUID เหมือนมาตรฐาน RFC4122 หากไม่ตรงตามรูปแบบจะโยนข้อผิดพลาดออกไป", "tags": [ "uuid-validation", "utility-function" ], "complexity": "simple" }, { "id": "file:next.config.mjs", "type": "file", "name": "next.config.mjs", "filePath": "next.config.mjs", "summary": "ไฟล์โค้ดหน้าบ้าน next.config.mjs", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:.nvmrc", "type": "file", "name": ".nvmrc", "filePath": ".nvmrc", "summary": "ไฟล์โค้ดหน้าบ้าน .nvmrc", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:postcss.config.mjs", "type": "file", "name": "postcss.config.mjs", "filePath": "postcss.config.mjs", "summary": "ไฟล์โค้ดหน้าบ้าน postcss.config.mjs", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:providers/query-provider.tsx", "type": "file", "name": "query-provider.tsx", "filePath": "providers/query-provider.tsx", "summary": "ไฟล์นี้ให้บริการ QueryProvider ซึ่งเป็นโครงสร้างหลักสำหรับจัดการ query และ context ในแอปพลิเคชัน โดยมีหน้าที่รับค่าจาก hooks เช่น useQuery, useMutation เพื่อให้สามารถเข้าถึงข้อมูลได้อย่างสะดวกและมีประสิทธิภาพ", "tags": [ "provider", "query-management", "context-api" ], "complexity": "moderate" }, { "id": "file:providers/session-provider.tsx", "type": "file", "name": "session-provider.tsx", "filePath": "providers/session-provider.tsx", "summary": "ไฟล์นี้ให้บริการ SessionProvider ซึ่งใช้สำหรับจัดการสถานะของเซสชันผู้ใช้งาน โดยมีฟังก์ชันหลักคือ SessionProvider เรียกใช้งานได้โดยตรงจากคอมโพเนนต์อื่น ๆ เพื่อดึงข้อมูลและควบคุมสถานะของผู้ใช้งาน", "tags": [ "provider", "session-management" ], "complexity": "simple" }, { "id": "file:providers/theme-provider.tsx", "type": "file", "name": "theme-provider.tsx", "filePath": "providers/theme-provider.tsx", "summary": "ไฟล์นี้เป็น provider สำหรับจัดการธีมของแอปพลิเคชัน โดยมีฟังก์ชัน ThemeProvider ที่ใช้ในการห่อหุ้มองค์ประกอบต่าง ๆ และส่งค่า theme มาให้กับ component เหล่านั้น", "tags": [ "provider", "theme", "context" ], "complexity": "simple" }, { "id": "file:src/proxy.ts", "type": "file", "name": "proxy.ts", "filePath": "src/proxy.ts", "summary": "ไฟล์ proxy.ts มีหน้าที่ตรวจสอบเส้นทาง (path) เพื่อระบุว่าควรจะถูกบล็อกหรือไม่ โดยใช้ฟังก์ชัน isBlockedPath ซึ่งมีขนาดเล็กและตรงประเด็น เนื้อหาหลักคือการกำหนดค่า config ที่สามารถนำออกไปใช้งานได้อีกหลายจุดในโปรเจกต์", "tags": [ "proxy", "security", "path-check" ], "complexity": "simple" }, { "id": "file:tailwind.config.ts", "type": "file", "name": "tailwind.config.ts", "filePath": "tailwind.config.ts", "summary": "ไฟล์โค้ดหน้าบ้าน tailwind.config.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/admin.ts", "type": "file", "name": "admin.ts", "filePath": "types/admin.ts", "summary": "ไฟล์โค้ดหน้าบ้าน admin.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/ai-chat.ts", "type": "file", "name": "ai-chat.ts", "filePath": "types/ai-chat.ts", "summary": "ไฟล์โค้ดหน้าบ้าน ai-chat.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/api-error.ts", "type": "file", "name": "api-error.ts", "filePath": "types/api-error.ts", "summary": "ไฟล์นี้มีหน้าที่ให้บริการฟังก์ชัน getApiErrorMessage ซึ่งใช้ในการแปลข้อความข้อผิดพลาดจาก API เป็นภาษาไทยหรือภาษาอังกฤษตามต้องการ โดยมีโครงสร้างเรียบง่ายและไม่มีการนำเข้าใด ๆ เนื่องจากเป็นไฟล์ที่เก็บเฉพาะฟังก์ชันแปลข้อความผิดพลาดเท่านั้น", "tags": [ "api-error", "error-handling" ], "complexity": "simple" }, { "id": "file:src/types/circulation.ts", "type": "file", "name": "circulation.ts", "filePath": "src/types/circulation.ts", "summary": "ไฟล์นี้เป็นโครงสร้างประเภทข้อมูลสำหรับระบบการเคลื่อนย้ายสินค้าภายในโครงการ lcbp3-frontend โดยไม่มีเนื้อหาเฉพาะเจาะจงถูกระบุไว้ในชุดข้อมูลที่ให้มา", "tags": [ "type-definition", "circulation-system" ], "complexity": "simple" }, { "id": "file:types/contract.ts", "type": "file", "name": "contract.ts", "filePath": "types/contract.ts", "summary": "ไฟล์นี้มีหน้าที่จัดเก็บฟังก์ชันต่าง ๆ สำหรับดึงค่า public ID จากโปรเจกต์และคอนแท็กต์ โดยใช้เพื่อการเชื่อมโยงข้อมูลในระบบอย่างเป็นทางการ", "tags": [ "type-definition", "contract-id", "project-id" ], "complexity": "simple" }, { "id": "file:src/types/correspondence.ts", "type": "file", "name": "correspondence.ts", "filePath": "src/types/correspondence.ts", "summary": "ไฟล์นี้เป็นโครงสร้างข้อมูลสำหรับการจัดการเอกสารสื่อสารภายในระบบ โดยกำหนดชนิดข้อมูลเฉพาะทาง เช่น ประเภทของเอกสาร สภาพะต่าง ๆ และคุณสมบัติที่เกี่ยวข้องกับการจัดเก็บและแสดงผล", "tags": [ "type-definition", "correspondence-data", "document-schema" ], "complexity": "simple" }, { "id": "file:types/dashboard.ts", "type": "file", "name": "dashboard.ts", "filePath": "types/dashboard.ts", "summary": "ไฟล์โค้ดหน้าบ้าน dashboard.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/drawing.ts", "type": "file", "name": "drawing.ts", "filePath": "types/drawing.ts", "summary": "ไฟล์โค้ดหน้าบ้าน drawing.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/circulation/create-circulation.dto.ts", "type": "file", "name": "create-circulation.dto.ts", "filePath": "types/dto/circulation/create-circulation.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน create-circulation.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/circulation/search-circulation.dto.ts", "type": "file", "name": "search-circulation.dto.ts", "filePath": "types/dto/circulation/search-circulation.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน search-circulation.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/circulation/update-circulation-routing.dto.ts", "type": "file", "name": "update-circulation-routing.dto.ts", "filePath": "types/dto/circulation/update-circulation-routing.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน update-circulation-routing.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/contract/contract.dto.ts", "type": "file", "name": "contract.dto.ts", "filePath": "types/dto/contract/contract.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน contract.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/correspondence/add-reference.dto.ts", "type": "file", "name": "add-reference.dto.ts", "filePath": "types/dto/correspondence/add-reference.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน add-reference.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/correspondence/create-correspondence.dto.ts", "type": "file", "name": "create-correspondence.dto.ts", "filePath": "types/dto/correspondence/create-correspondence.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน create-correspondence.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/correspondence/search-correspondence.dto.ts", "type": "file", "name": "search-correspondence.dto.ts", "filePath": "types/dto/correspondence/search-correspondence.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน search-correspondence.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/correspondence/submit-correspondence.dto.ts", "type": "file", "name": "submit-correspondence.dto.ts", "filePath": "types/dto/correspondence/submit-correspondence.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน submit-correspondence.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/correspondence/workflow-action.dto.ts", "type": "file", "name": "workflow-action.dto.ts", "filePath": "types/dto/correspondence/workflow-action.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน workflow-action.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/drawing/asbuilt-drawing.dto.ts", "type": "file", "name": "asbuilt-drawing.dto.ts", "filePath": "types/dto/drawing/asbuilt-drawing.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน asbuilt-drawing.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/drawing/contract-drawing.dto.ts", "type": "file", "name": "contract-drawing.dto.ts", "filePath": "types/dto/drawing/contract-drawing.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน contract-drawing.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/drawing/shop-drawing.dto.ts", "type": "file", "name": "shop-drawing.dto.ts", "filePath": "types/dto/drawing/shop-drawing.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน shop-drawing.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/json-schema/json-schema.dto.ts", "type": "file", "name": "json-schema.dto.ts", "filePath": "types/dto/json-schema/json-schema.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน json-schema.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/correspondence-type.dto.ts", "type": "file", "name": "correspondence-type.dto.ts", "filePath": "types/dto/master/correspondence-type.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน correspondence-type.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/discipline.dto.ts", "type": "file", "name": "discipline.dto.ts", "filePath": "types/dto/master/discipline.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน discipline.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/number-format.dto.ts", "type": "file", "name": "number-format.dto.ts", "filePath": "types/dto/master/number-format.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน number-format.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/rfa-type.dto.ts", "type": "file", "name": "rfa-type.dto.ts", "filePath": "types/dto/master/rfa-type.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน rfa-type.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/sub-type.dto.ts", "type": "file", "name": "sub-type.dto.ts", "filePath": "types/dto/master/sub-type.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน sub-type.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/master/tag.dto.ts", "type": "file", "name": "tag.dto.ts", "filePath": "types/dto/master/tag.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน tag.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/migration/migration-review.dto.ts", "type": "file", "name": "migration-review.dto.ts", "filePath": "types/dto/migration/migration-review.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน migration-review.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/monitoring/set-maintenance.dto.ts", "type": "file", "name": "set-maintenance.dto.ts", "filePath": "types/dto/monitoring/set-maintenance.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน set-maintenance.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/notification/notification.dto.ts", "type": "file", "name": "notification.dto.ts", "filePath": "types/dto/notification/notification.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน notification.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/numbering.dto.ts", "type": "file", "name": "numbering.dto.ts", "filePath": "types/dto/numbering.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน numbering.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/organization/organization.dto.ts", "type": "file", "name": "organization.dto.ts", "filePath": "types/dto/organization/organization.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน organization.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/project/project.dto.ts", "type": "file", "name": "project.dto.ts", "filePath": "types/dto/project/project.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน project.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/rfa/rfa.dto.ts", "type": "file", "name": "rfa.dto.ts", "filePath": "types/dto/rfa/rfa.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน rfa.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/search/search-query.dto.ts", "type": "file", "name": "search-query.dto.ts", "filePath": "types/dto/search/search-query.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน search-query.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/transmittal/transmittal.dto.ts", "type": "file", "name": "transmittal.dto.ts", "filePath": "types/dto/transmittal/transmittal.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน transmittal.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/user/user.dto.ts", "type": "file", "name": "user.dto.ts", "filePath": "types/dto/user/user.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน user.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/dto/workflow-engine/workflow-engine.dto.ts", "type": "file", "name": "workflow-engine.dto.ts", "filePath": "types/dto/workflow-engine/workflow-engine.dto.ts", "summary": "ไฟล์โค้ดหน้าบ้าน workflow-engine.dto.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/master-data.ts", "type": "file", "name": "master-data.ts", "filePath": "types/master-data.ts", "summary": "ไฟล์โค้ดหน้าบ้าน master-data.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/migration.ts", "type": "file", "name": "migration.ts", "filePath": "types/migration.ts", "summary": "ไฟล์โค้ดหน้าบ้าน migration.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/next-auth.d.ts", "type": "file", "name": "next-auth.d.ts", "filePath": "types/next-auth.d.ts", "summary": "ไฟล์โค้ดหน้าบ้าน next-auth.d.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/notification.ts", "type": "file", "name": "notification.ts", "filePath": "types/notification.ts", "summary": "ไฟล์โค้ดหน้าบ้าน notification.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/numbering.ts", "type": "file", "name": "numbering.ts", "filePath": "types/numbering.ts", "summary": "ไฟล์โค้ดหน้าบ้าน numbering.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/organization.ts", "type": "file", "name": "organization.ts", "filePath": "types/organization.ts", "summary": "ไฟล์โค้ดหน้าบ้าน organization.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/react-day-picker.d.ts", "type": "file", "name": "react-day-picker.d.ts", "filePath": "types/react-day-picker.d.ts", "summary": "ไฟล์โค้ดหน้าบ้าน react-day-picker.d.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:src/types/review-team.ts", "type": "file", "name": "review-team.ts", "filePath": "src/types/review-team.ts", "summary": "ไฟล์นี้เป็นโครงสร้างข้อมูลสำหรับการจัดการทีมผู้ตรวจสอบ (Review Team) โดยกำหนดประเภทของสมาชิกในทีมนั้น ๆ เช่น บทบาท, สิทธิภารกิจ และความสัมพันธ์ระหว่างบุคคล", "tags": [ "type-definition", "review-team", "team-structure" ], "complexity": "simple" }, { "id": "file:src/types/rfa.ts", "type": "file", "name": "rfa.ts", "filePath": "src/types/rfa.ts", "summary": "ไฟล์นี้เป็นโครงสร้างประเภทข้อมูล (types) สำหรับระบบ RFA โดยไม่มีเนื้อหาเฉพาะเจาะจงถูกระบุไว้ในส่วนที่ให้อาหารข้อมูล กรุณาตรวจสอบรายละเอียดเพิ่มเติมจากโค้ดต้นฉบับ", "tags": [ "type", "interface", "schema" ], "complexity": "simple" }, { "id": "file:types/search.ts", "type": "file", "name": "search.ts", "filePath": "types/search.ts", "summary": "ไฟล์โค้ดหน้าบ้าน search.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:src/types/transmittal.ts", "type": "file", "name": "transmittal.ts", "filePath": "src/types/transmittal.ts", "summary": "ไฟล์นี้กำหนดโครงสร้างข้อมูลสำหรับเอกสารส่งมอบ (Transmittal) โดยใช้ TypeScript เพื่อให้มั่นใจว่าข้อมูลที่ถูกส่งผ่านมีรูปแบบและประเภทที่ชัดเจน", "tags": [ "type", "transmittal", "document", "typescript" ], "complexity": "simple" }, { "id": "file:types/user.ts", "type": "file", "name": "user.ts", "filePath": "types/user.ts", "summary": "ไฟล์โค้ดหน้าบ้าน user.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:types/workflow.ts", "type": "file", "name": "workflow.ts", "filePath": "types/workflow.ts", "summary": "ไฟล์โค้ดหน้าบ้าน workflow.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:.understand-anything/tmp/ua-inline-validate.cjs", "type": "file", "name": "ua-inline-validate.cjs", "filePath": ".understand-anything/tmp/ua-inline-validate.cjs", "summary": "ไฟล์โค้ดหน้าบ้าน ua-inline-validate.cjs", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:.understand-anything/.understandignore", "type": "file", "name": ".understandignore", "filePath": ".understand-anything/.understandignore", "summary": "ไฟล์โค้ดหน้าบ้าน .understandignore", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:vitest.config.ts", "type": "file", "name": "vitest.config.ts", "filePath": "vitest.config.ts", "summary": "ไฟล์โค้ดหน้าบ้าน vitest.config.ts", "tags": [ "utility" ], "complexity": "simple" }, { "id": "file:src/test/setup/vitest.setup.ts", "type": "file", "name": "vitest.setup.ts", "filePath": "src/test/setup/vitest.setup.ts", "summary": "ไฟล์นี้ใช้สำหรับตั้งค่าสภาพแวดล้อมการทดสอบ โดยมีการสร้าง Mock ของ ResizeObserver เพื่อใช้งานในกรณีที่ไม่สามารถเข้าถึง DOM จริงได้ เช่น ใน environment testing", "tags": [ "setup-file", "vitest", "mock-object", "ResizeObserver" ], "complexity": "simple" } ], "edges": [ { "source": "file:lib/services/admin-ai.service.ts", "target": "file:lib/api/client.ts", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:lib/services/admin-ai.service.ts", "target": "file:types/ai.ts", "type": "imports", "direction": "forward", "weight": 0.6 }, { "source": "file:lib/services/ai-intent.service.ts", "target": "file:lib/api/client.ts", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:lib/services/ai-intent.service.ts", "target": "file:lib/services/ai-intent.service.ts", "type": "exports", "direction": "backward", "weight": 1 }, { "source": "file:lib/services/ai-prompts.service.ts", "target": "file:lib/api/client.ts", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:lib/services/ai-prompts.service.ts", "target": "file:types/ai-prompts.ts", "type": "imports", "direction": "forward", "weight": 0.5 }, { "source": "file:lib/services/ai.service.ts", "target": "file:lib/api/client.ts", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:lib/api/client.ts", "target": "file:lib/services/ai.service.ts", "type": "used-by", "direction": "backward", "weight": 0.3 }, { "source": "file:lib/services/migration.service.ts", "target": "file:lib/api/client.ts", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:lib/services/migration.service.ts", "target": "file:lib/services/migration.service.ts", "type": "exports", "direction": "backward", "weight": 1 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/global-search.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/notifications-dropdown.tsx", "type": "imports", "direction": "forward", "weight": 0.65 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/project-switcher.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/sidebar.tsx", "type": "imports", "direction": "forward", "weight": 0.65 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/theme-toggle.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/layout/header.tsx", "target": "file:components/layout/user-menu.tsx", "type": "imports", "direction": "forward", "weight": 0.65 }, { "source": "file:app/(dashboard)/rag/page.tsx", "target": "file:components/ai/RagChatWidget.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:app/(dashboard)/rag/page.tsx", "target": "file:lib/stores/project-store.ts", "type": "imports", "direction": "forward", "weight": 0.6 }, { "source": "file:app/layout.tsx", "target": "file:app/globals.css", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/admin/ai/OcrSandboxPromptManager.tsx", "target": "file:components/admin/ai/PromptVersionHistory.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/ai/document-comparison-view.tsx", "target": "file:components/ai/ai-suggestion-field.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/ai/intent-classification/test-console-panel.tsx", "target": "file:components/ai/intent-classification/classification-result-card.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/layout/navbar.tsx", "target": "file:components/layout/user-nav.tsx", "type": "imports", "direction": "forward", "weight": 0.7 }, { "source": "file:components/ui/dropdown-menu.tsx", "target": "file:components/ui/dropdown-menu.tsx", "type": "exports", "direction": "forward", "weight": 0.9 }, { "source": "file:components/ui/dropdown-menu.tsx", "target": "file:components/ui/dropdown-menu.tsx", "type": "functions", "direction": "forward", "weight": 1 }, { "source": "file:components/ai/ai-status-banner-host.tsx", "target": "file:components/ai/AiStatusBanner.tsx", "type": "imports", "direction": "forward", "weight": 0.7, "recoveredFromImportMap": true }, { "source": "file:components/drawings/list.tsx", "target": "file:components/drawings/columns.tsx", "type": "imports", "direction": "forward", "weight": 0.7, "recoveredFromImportMap": true } ], "layers": [ { "id": "layer:app-router", "name": "App Router & Pages", "description": "โครงสร้างหน้าเว็บและเส้นทางระบบ Next.js", "nodeIds": [ "file:app/(dashboard)/rag/page.tsx", "file:app/(admin)/admin/access-control/organizations/page.tsx", "file:app/(admin)/admin/ai/intent-classification/test-console/page.tsx", "file:app/(admin)/admin/ai/page.tsx", "file:app/(admin)/admin/doc-control/contracts/page.tsx", "file:app/(admin)/admin/doc-control/drawings/page.tsx", "file:app/(admin)/admin/doc-control/projects/page.tsx", "file:app/(admin)/admin/doc-control/reference/correspondence-types/page.tsx", "file:app/(admin)/admin/doc-control/reference/disciplines/page.tsx", "file:app/(admin)/admin/doc-control/reference/rfa-types/page.tsx", "file:app/(admin)/admin/doc-control/reference/tags/page.tsx", "file:app/(admin)/admin/migration/page.tsx", "file:app/(admin)/admin/monitoring/sessions/page.tsx", "file:app/(admin)/admin/monitoring/system-logs/numbering/page.tsx", "file:app/(admin)/admin/users/page.tsx", "file:app/(admin)/error.tsx", "file:app/api/auth/[...nextauth]/route.ts", "file:app/(auth)/login/page.tsx", "file:app/(dashboard)/ai-staging/page.tsx", "file:app/(dashboard)/circulation/new/page.tsx", "file:app/(dashboard)/correspondences/page.tsx", "file:app/(dashboard)/dashboard/page.tsx", "file:app/(dashboard)/delegation/page.tsx", "file:app/(dashboard)/distribution-matrices/page.tsx", "file:app/(dashboard)/drawings/page.tsx", "file:app/(dashboard)/drawings/[uuid]/page.tsx", "file:app/(dashboard)/error.tsx", "file:app/(dashboard)/layout.tsx", "file:app/(dashboard)/projects/new/page.tsx", "file:app/(dashboard)/projects/page_backup.tsx", "file:app/(dashboard)/rfas/[uuid]/edit/page.tsx", "file:app/(dashboard)/rfas/[uuid]/page.tsx", "file:app/(dashboard)/search/page.tsx", "file:app/(dashboard)/transmittals/new/page.tsx", "file:app/(dashboard)/transmittals/page.tsx", "file:app/(dashboard)/transmittals/[uuid]/page.tsx", "file:app/globals.css", "file:app/layout.tsx" ] }, { "id": "layer:global-providers", "name": "Global Providers & Context", "description": "โมดูลให้บริการแชร์ค่าฝั่งหน้าบ้าน", "nodeIds": [ "file:providers/query-provider.tsx", "file:providers/session-provider.tsx", "file:providers/theme-provider.tsx" ] }, { "id": "layer:custom-hooks", "name": "Custom React Hooks", "description": "เครื่องมือ React Hooks ควบคุม Client Logic", "nodeIds": [ "file:hooks/ai/use-intent-classification.ts", "file:hooks/use-ai-chat.ts", "file:hooks/use-ai-prompts.ts", "file:hooks/use-ai-status.ts", "file:hooks/use-audit-logs.ts", "file:hooks/use-circulation.ts", "file:hooks/use-correspondence.ts", "file:hooks/use-dashboard.ts", "file:hooks/use-delegation.ts", "file:hooks/use-distribution-matrices.ts", "file:hooks/use-drawing.ts", "file:hooks/use-master-data.ts", "file:hooks/use-notification.ts", "file:hooks/use-numbering.ts", "file:hooks/use-projects.ts", "file:hooks/use-reference-data.ts", "file:hooks/use-response-codes.ts", "file:hooks/use-review-teams.ts", "file:hooks/use-rfa.ts", "file:hooks/use-search.ts", "file:hooks/use-translations.ts", "file:hooks/use-transmittal.ts", "file:hooks/use-users.ts", "file:hooks/use-workflow-history.ts", "file:hooks/use-workflows.ts" ] }, { "id": "layer:ui-components", "name": "Reusable UI Components", "description": "คอมโพเนนต์ส่วนแสดงติดต่อผู้ใช้", "nodeIds": [ "file:components/layout/global-search.tsx", "file:components/layout/header.tsx", "file:components/layout/notifications-dropdown.tsx", "file:components/layout/project-switcher.tsx", "file:components/layout/sidebar.tsx", "file:components/layout/theme-toggle.tsx", "file:components/layout/user-menu.tsx", "file:components/ai/RagChatWidget.tsx", "file:components/admin/ai/OcrEngineSelector.tsx", "file:components/admin/ai/OcrSandboxPromptManager.tsx", "file:components/admin/ai/PromptVersionHistory.tsx", "file:components/admin/organization-dialog.tsx", "file:components/admin/reference/generic-crud-table.tsx", "file:components/admin/security/rbac-matrix.tsx", "file:components/admin/sidebar.tsx", "file:components/admin/user-dialog.tsx", "file:components/ai/ai-chat-input.tsx", "file:components/ai/ai-chat-messages.tsx", "file:components/ai/ai-chat-panel.tsx", "file:components/ai/ai-chat-toggle.tsx", "file:components/ai/ai-status-banner-host.tsx", "file:components/ai/AiStatusBanner.tsx", "file:components/ai/ai-suggestion-button.tsx", "file:components/ai/ai-suggestion-field.tsx", "file:components/ai/document-comparison-view.tsx", "file:components/ai/intent-classification/analytics/analytics-summary-cards.tsx", "file:components/ai/intent-classification/analytics/intent-breakdown-table.tsx", "file:components/ai/intent-classification/analytics/method-breakdown-table.tsx", "file:components/ai/intent-classification/analytics/recalibration-panel.tsx", "file:components/ai/intent-classification/classification-result-card.tsx", "file:components/ai/intent-classification/intent-form.tsx", "file:components/ai/intent-classification/pattern-form.tsx", "file:components/ai/intent-classification/test-console-panel.tsx", "file:components/ai/processing-indicator.tsx", "file:components/auth/auth-sync.tsx", "file:components/circulation/circulation-list.tsx", "file:components/common/can.tsx", "file:components/common/confirm-dialog.tsx", "file:components/common/data-table.tsx", "file:components/common/error-display.tsx", "file:components/common/file-preview-modal.tsx", "file:components/common/pagination.tsx", "file:components/common/status-badge.tsx", "file:components/common/workflow-error-boundary.tsx", "file:components/correspondences/circulation-status-card.tsx", "file:components/correspondences/correspondences-content.tsx", "file:components/correspondences/detail.tsx", "file:components/correspondences/form.tsx", "file:components/correspondences/list.tsx", "file:components/correspondences/reference-selector.tsx", "file:components/correspondences/revision-history.tsx", "file:components/correspondences/tag-manager.tsx", "file:components/correspondences/ux-flow-dialog.tsx", "file:components/custom/file-upload-zone.tsx", "file:components/custom/workflow-visualizer.tsx", "file:components/dashboard/pending-tasks.tsx", "file:components/dashboard/quick-actions.tsx", "file:components/dashboard/recent-activity.tsx", "file:components/dashboard/stats-cards.tsx", "file:components/delegation/DelegationForm.tsx", "file:components/distribution/DistributionStatus.tsx", "file:components/documents/common/server-data-table.tsx", "file:components/drawings/card.tsx", "file:components/drawings/columns.tsx", "file:components/drawings/list.tsx", "file:components/drawings/revision-history.tsx", "file:components/drawings/upload-form.tsx", "file:components/layout/dashboard-shell.tsx", "file:components/layout/navbar.tsx", "file:components/layout/user-nav.tsx", "file:components/migration/review-queue-table.tsx", "file:components/numbering/audit-logs-table.tsx", "file:components/numbering/bulk-import-form.tsx", "file:components/numbering/cancel-number-form.tsx", "file:components/numbering/manual-override-form.tsx", "file:components/numbering/metrics-dashboard.tsx", "file:components/numbering/sequence-viewer.tsx", "file:components/numbering/template-editor.tsx", "file:components/numbering/template-tester.tsx", "file:components/numbering/void-replace-form.tsx", "file:components/reminder/ReminderRuleForm.tsx", "file:components/response-code/CodeImplications.tsx", "file:components/response-code/MatrixEditor.tsx", "file:components/response-code/ProjectOverrideManager.tsx", "file:components/response-code/ResponseCodeSelector.tsx", "file:components/review-task/CompleteReviewForm.tsx", "file:components/review-task/DelegatedBadge.tsx", "file:components/review-task/ParallelProgress.tsx", "file:components/review-task/ReviewTaskInbox.tsx", "file:components/review-task/VetoOverrideDialog.tsx", "file:components/review-team/ReviewTeamForm.tsx", "file:components/review-team/ReviewTeamSelector.tsx", "file:components/review-team/TeamMemberManager.tsx", "file:components/rfas/detail.tsx", "file:components/rfas/form.tsx", "file:components/rfas/list.tsx", "file:components/search/filters.tsx", "file:components/search/results.tsx", "file:components/transmittal/transmittal-form.tsx", "file:components/transmittal/transmittal-list.tsx", "file:components/ui/alert-dialog.tsx", "file:components/ui/alert.tsx", "file:components/ui/avatar.tsx", "file:components/ui/badge.tsx", "file:components/ui/button.tsx", "file:components/ui/calendar.tsx", "file:components/ui/card.tsx", "file:components/ui/checkbox.tsx", "file:components/ui/command.tsx", "file:components/ui/dialog.tsx", "file:components/ui/dropdown-menu.tsx", "file:components/ui/form.tsx", "file:components/ui/hover-card.tsx", "file:components/ui/input.tsx", "file:components/ui/label.tsx", "file:components/ui/popover.tsx", "file:components/ui/progress.tsx", "file:components/ui/scroll-area.tsx", "file:components/ui/select.tsx", "file:components/ui/separator.tsx", "file:components/ui/sheet.tsx", "file:components/ui/skeleton.tsx", "file:components/ui/sonner.tsx", "file:components/ui/switch.tsx", "file:components/ui/table.tsx", "file:components/ui/tabs.tsx", "file:components/ui/textarea.tsx", "file:components/workflow/integrated-banner.tsx", "file:components/workflows/dsl-editor.tsx", "file:components/workflows/visual-builder.tsx", "file:components/workflow/workflow-lifecycle.tsx" ] }, { "id": "layer:api-services", "name": "API Services & Utilities", "description": "บริการดึงข้อมูลและฟังก์ชันช่วยงานระดับโปรเจกต์", "nodeIds": [ "file:lib/api/client.ts", "file:lib/services/admin-ai.service.ts", "file:lib/services/ai-intent.service.ts", "file:lib/services/ai-prompts.service.ts", "file:lib/services/ai.service.ts", "file:lib/services/migration.service.ts", "file:lib/stores/project-store.ts", "file:lib/api/ai.ts", "file:lib/api/drawings.ts", "file:lib/api/files.ts", "file:lib/api/notifications.ts", "file:lib/api/numbering.ts", "file:lib/auth.ts", "file:lib/i18n/index.ts", "file:lib/services/asbuilt-drawing.service.ts", "file:lib/services/audit-log.service.ts", "file:lib/services/circulation.service.ts", "file:lib/services/contract-drawing.service.ts", "file:lib/services/contract.service.ts", "file:lib/services/correspondence.service.ts", "file:lib/services/document-numbering.service.ts", "file:lib/services/drawing-master-data.service.ts", "file:lib/services/index.ts", "file:lib/services/json-schema.service.ts", "file:lib/services/monitoring.service.ts", "file:lib/services/notification.service.ts", "file:lib/services/organization.service.ts", "file:lib/services/project.service.ts", "file:lib/services/review-team.service.ts", "file:lib/services/rfa.service.ts", "file:lib/services/search.service.ts", "file:lib/services/session.service.ts", "file:lib/services/shop-drawing.service.ts", "file:lib/services/transmittal.service.ts", "file:lib/services/user.service.ts", "file:lib/services/workflow-engine.service.ts", "file:lib/stores/auth-store.ts", "file:lib/stores/draft-store.ts", "file:lib/stores/ui-store.ts", "file:lib/test-utils.tsx" ] }, { "id": "layer:configs-types", "name": "Configurations & TypeScript Types", "description": "ตั้งค่าเครื่องมือและประมวลผลชนิดตัวแปร", "nodeIds": [ "file:types/ai.ts", "file:types/ai-prompts.ts", "service:.dockerignore", "config:.env.example", "document:README.md", "config:components.json", "config:tsconfig.json", "file:app/(admin)/admin/access-control/roles/page.tsx", "file:/app/(admin)/admin/access-control/users/page.tsx", "file:app/(admin)/admin/ai/intent-classification/analytics/page.tsx", "file:app/(admin)/admin/ai/intent-classification/[intentCode]/page.tsx", "file:app/(admin)/admin/ai/intent-classification/page.tsx", "file:app/(admin)/admin/audit-logs/page.tsx", "file:app/(admin)/admin/doc-control/drawings/contract/categories/page.tsx", "file:app/(admin)/admin/doc-control/drawings/contract/sub-categories/page.tsx", "file:app/(admin)/admin/doc-control/drawings/contract/volumes/page.tsx", "file:app/(admin)/admin/doc-control/drawings/shop/main-categories/page.tsx", "file:app/(admin)/admin/doc-control/drawings/shop/sub-categories/page.tsx", "file:app/(admin)/admin/doc-control/numbering/[id]/edit/page.tsx", "file:app/(admin)/admin/doc-control/numbering/new/page.tsx", "file:app/(admin)/admin/doc-control/numbering/page.tsx", "file:app/(admin)/admin/doc-control/reference/drawing-categories/page.tsx", "file:app/(admin)/admin/doc-control/reference/page.tsx", "file:app/(admin)/admin/doc-control/workflows/[id]/edit/page.tsx", "file:app/(admin)/admin/doc-control/workflows/new/page.tsx", "file:app/(admin)/admin/doc-control/workflows/page.tsx", "file:app/(admin)/admin/migration/errors/page.tsx", "file:app/(admin)/admin/migration/review/[id]/page.tsx", "file:app/(admin)/admin/monitoring/audit-logs/page.tsx", "file:app/(admin)/admin/numbering/[id]/edit/page.tsx", "file:app/(admin)/admin/numbering/new/page.tsx", "file:app/(admin)/admin/numbering/page.tsx", "file:app/(admin)/admin/organizations/page.tsx", "file:app/(admin)/admin/page.tsx", "file:app/(admin)/admin/settings/page.tsx", "file:app/(admin)/admin/workflows/[id]/edit/page.tsx", "file:app/(admin)/admin/workflows/new/page.tsx", "file:app/(admin)/admin/workflows/page.tsx", "file:app/(admin)/layout.tsx", "file:app/api/ai/chat/route.ts", "file:app/(auth)/layout.tsx", "file:app/(dashboard)/circulation/page.tsx", "file:/app/(dashboard)/circulation/[uuid]/page.tsx", "file:app/(dashboard)/correspondences/new/page.tsx", "file:app/(dashboard)/correspondences/[uuid]/edit/page.tsx", "file:app/(dashboard)/correspondences/[uuid]/page.tsx", "file:app/(dashboard)/drawings/upload/page.tsx", "file:app/(dashboard)/migration/review/page.tsx", "file:app/(dashboard)/profile/page.tsx", "file:app/(dashboard)/projects/page.tsx", "file:app/(dashboard)/response-codes/page.tsx", "file:app/(dashboard)/rfa/page.tsx", "file:app/(dashboard)/rfas/new/page.tsx", "file:app/(dashboard)/rfas/page.tsx", "file:app/(dashboard)/settings/delegation/page.tsx", "file:app/(dashboard)/settings/page.tsx", "file:app/(dashboard)/settings/reminder-rules/page.tsx", "file:app/(dashboard)/settings/review-teams/page.tsx", "file:app/error.tsx", "file:app/global-error.tsx", "file:app/page.tsx", "file:build-map.js", "file:components/reminder/ReminderHistory.tsx", "file:./src/eslint.config.mjs", "file:src/hooks/use-migration-review.ts", "file:src/hooks/use-reminder.ts", "file:src/hooks/use-workflow-action.ts", "file:lib/api/admin.ts", "file:lib/api/dashboard.ts", "file:lib/api/workflows.ts", "file:lib/services/dashboard.service.ts", "file:lib/services/master-data.service.ts", "file:lib/utils.ts", "file:lib/utils/uuid-guard.ts", "file:next.config.mjs", "file:.nvmrc", "file:postcss.config.mjs", "file:src/proxy.ts", "file:tailwind.config.ts", "file:types/admin.ts", "file:types/ai-chat.ts", "file:types/api-error.ts", "file:src/types/circulation.ts", "file:types/contract.ts", "file:src/types/correspondence.ts", "file:types/dashboard.ts", "file:types/drawing.ts", "file:types/dto/circulation/create-circulation.dto.ts", "file:types/dto/circulation/search-circulation.dto.ts", "file:types/dto/circulation/update-circulation-routing.dto.ts", "file:types/dto/contract/contract.dto.ts", "file:types/dto/correspondence/add-reference.dto.ts", "file:types/dto/correspondence/create-correspondence.dto.ts", "file:types/dto/correspondence/search-correspondence.dto.ts", "file:types/dto/correspondence/submit-correspondence.dto.ts", "file:types/dto/correspondence/workflow-action.dto.ts", "file:types/dto/drawing/asbuilt-drawing.dto.ts", "file:types/dto/drawing/contract-drawing.dto.ts", "file:types/dto/drawing/shop-drawing.dto.ts", "file:types/dto/json-schema/json-schema.dto.ts", "file:types/dto/master/correspondence-type.dto.ts", "file:types/dto/master/discipline.dto.ts", "file:types/dto/master/number-format.dto.ts", "file:types/dto/master/rfa-type.dto.ts", "file:types/dto/master/sub-type.dto.ts", "file:types/dto/master/tag.dto.ts", "file:types/dto/migration/migration-review.dto.ts", "file:types/dto/monitoring/set-maintenance.dto.ts", "file:types/dto/notification/notification.dto.ts", "file:types/dto/numbering.dto.ts", "file:types/dto/organization/organization.dto.ts", "file:types/dto/project/project.dto.ts", "file:types/dto/rfa/rfa.dto.ts", "file:types/dto/search/search-query.dto.ts", "file:types/dto/transmittal/transmittal.dto.ts", "file:types/dto/user/user.dto.ts", "file:types/dto/workflow-engine/workflow-engine.dto.ts", "file:types/master-data.ts", "file:types/migration.ts", "file:types/next-auth.d.ts", "file:types/notification.ts", "file:types/numbering.ts", "file:types/organization.ts", "file:types/react-day-picker.d.ts", "file:src/types/review-team.ts", "file:src/types/rfa.ts", "file:types/search.ts", "file:src/types/transmittal.ts", "file:types/user.ts", "file:types/workflow.ts", "file:.understand-anything/tmp/ua-inline-validate.cjs", "file:.understand-anything/.understandignore", "file:vitest.config.ts", "file:src/test/setup/vitest.setup.ts" ] } ], "tour": [ { "order": 1, "title": "โครงสร้าง Layout หลัก (Root Layout)", "description": "โครงหน้าหลักและ Providers ส่วนกลาง", "nodeIds": [ "file:app/layout.tsx" ] }, { "order": 2, "title": "หน้าควบคุมและการนำทาง (App Routing Pages)", "description": "ระบบจัดการ Admin Console และหน้า Staging", "nodeIds": [ "file:app/page.tsx", "file:app/(admin)/admin/ai/page.tsx" ] }, { "order": 3, "title": "จัดการตรรกะและสถานะการดึงข้อมูล (Custom Hooks)", "description": "ระบบ React Hooks ควบคุมแอนิเมชันและ AI", "nodeIds": [ "file:hooks/use-ai-status.ts" ] }, { "order": 4, "title": "ระบบเชื่อมต่อ API ไป Backend (API Services)", "description": "บริการติดต่อส่งข้อมูลผ่าน AdminAiService", "nodeIds": [ "file:lib/services/admin-ai.service.ts" ] }, { "order": 5, "title": "คอมโพเนนต์นำกลับมาใช้งานใหม่ (UI Components)", "description": "คอมโพเนนต์ควบคุมการกดอนุมัติเอกสาร RFA", "nodeIds": [ "file:components/ui/button.tsx" ] } ] }