1 · Repository map
โครงสร้างไฟล์ของ vtrc-backoffice (branch master, 769 ไฟล์ที่ track ด้วย git)
โฟลเดอร์ระดับบนสุด
vtrc-backoffice/
├── src/ ซอร์สโค้ดแอป (React)
├── public/ static assets ของ CRA (index.html, favicon)
├── build/ ผลลัพธ์ build ที่ commit ไว้ (~47 MB) — ห้ามแก้มือ
├── meeting/ nginx conf ย่อยสำหรับ path /meeting (proxy ไป meeting-backoffice)
├── nginx/ nginx conf หลัก
├── docker-nginx/ ไฟล์เสริมสำหรับ nginx image
├── docker-compose.yml serve build/ ผ่าน nginx โดยตรง (ไม่ build จาก source)
├── Dockerfile ติดตั้งแค่ nginx — ไม่มี build stage
├── nginx.default.conf.bak ไฟล์ backup — ห้ามแก้ (ตาม convention `_bk`/`.bak` ทั่วแพลตฟอร์ม)
└── package.json / package-lock.jsonหลักฐานจำนวนไฟล์: git ls-files | wc -l = 769 ที่ commit 3f32c80 (vtrc-backoffice/.git)
src/ breakdown
| โฟลเดอร์ | จำนวนไฟล์ | บทบาท |
|---|---|---|
src/pages/ | 296 | หน้าจริง 41 module (ดูรายชื่อใน 03-features-map) |
src/components/ | 83 | component ใช้ซ้ำ — Form, Shared, SiderLayout, LoginForm ฯลฯ |
src/graphql/ | ไฟล์หลัก 2 + WorkForce 2 + backup 4 | queries/mutations catalog |
src/recoil/states/ | 27 | atom state สำหรับ WorkForce module |
src/utils/ | 21 | helper — auth, apiKey, formatdate, work-force.service ฯลฯ |
src/config/ | 11 | apollo, routes, axios-workforce, custom-antd.css |
src/assets/ | 80 | รูปภาพ/โลโก้/ไอคอน |
src/containers/App/ | 1 | root router (index.js) |
(นับด้วย find {dir} -type f | wc -l ที่ working tree ปัจจุบันของ vtrc-backoffice/src)
src/graphql/ — รวม catalog + backup
src/graphql/
├── index.js re-export Queries/Mutations (หลัก + _wf)
├── queries.js 3,316 บรรทัด — query หลัก
├── queries_bk.js 3,315 บรรทัด — backup (ห้ามแก้/ห้ามลบโดยไม่ตรวจก่อน)
├── queries_bk-061265.js 3,313 บรรทัด — backup ที่สอง (ชื่อไฟล์เป็นวันที่ พ.ศ. 06/12/65)
├── mutations.js 1,995 บรรทัด — mutation หลัก
├── mutations_bk.js 1,991 บรรทัด — backup
├── mutations_bk-061254.js 1,991 บรรทัด — backup ที่สอง
└── WorkForce/
├── queries.js 1,148 บรรทัด
└── mutations.js 597 บรรทัดvtrc-backoffice/src/graphql/index.js:1-5
export { default as Queries } from './queries'
export { default as Mutations } from './mutations'
// work-force
export { default as Queries_wf } from './WorkForce/queries'
export { default as Mutations_wf } from './WorkForce/mutations'มี Apollo Client ตัวเดียว (src/config/apollo.js) — WorkForce query/mutation ใช้ client ตัวเดียวกัน ต่างจาก vtrc-rc-backoffice ที่มี Apollo Client แยกสำหรับ WorkForce (apollo-workforce.js) แม้ไฟล์ src/config/apollo-workforce.js มีอยู่จริงใน repo นี้ (พบใน find src/config) แต่ยังไม่ตรวจว่ามีจุด import ใช้งานจริงหรือไม่ — ทำเครื่องหมาย UNVERIFIED
src/config/ — ไฟล์ทั้งหมด
src/config/
├── apollo.js Apollo Client หลัก + checkLinkURL()
├── apollo-workforce.js มีไฟล์อยู่ — การใช้งานจริง UNVERIFIED
├── axios-workforce.js axios client REST — ไม่พบจุด import ใช้งาน (dead code, มี bug — ดู CORR-BO-01)
├── routes.js 1,706 บรรทัด — 192 entries ที่มี key `path:`, import 119 component
├── routes_bk.js backup
├── routes_bk-mapgroup.js backup
├── custom-antd.css AntD override
├── datasets.js / datasetsEmployeeRegistration.js / datasetsProfile.js ค่า dropdown/mock ต่าง ๆ
└── styles.csssrc/pages/ — 41 module (รายชื่อเต็ม)
AboutUS, Act, Attendance, BankBranches, BankExportCode, BookBankVTRC,
Career, ContactUS, Course, Dashboard, Delegate, DocFound, Fund,
Guideline, HospitalFailed, HospitalHr, HospitalName, HospitalPaid,
Leave, LeaveHR, LeaveName, LeaveStudies, LeaveStudiesAdmin,
LeaveStudiesPayments, LeaveStudiesPaymentsAdmin, LeaveStudiesScholar,
LeaveStudiesScholarAdmin, Login, ManageHR, ManageUser, MasterApprovers,
MasterData, News, NotFound, Notification, Organization, Orientation,
Policy, Regulations, RegulationsHR, Rule, SicknessName, StrategyHR,
WorkForce, WorkHistory(ls src/pages | sort ที่ working tree ของ vtrc-backoffice) รายละเอียด business function ของแต่ละกลุ่มดู 03-features-map
src/components/ — ตัวที่สำคัญ
| component | บทบาทย่อ |
|---|---|
SiderLayout/ (510 บรรทัด) | shell หลังบ้าน — sidebar, header, dynamic menu, logout |
LoginForm/ | ฟอร์ม login — มี Checkbox import แต่ไม่ได้ render (ดู CORR-BO-02) |
BeforeLogin/ | หน้าก่อน login (กรอกรหัสบุคลากรก่อนเข้ารหัสผ่าน) |
Form* (FormBankBranches, FormCareer, FormContactHR, FormFund ฯลฯ) | ฟอร์มเฉพาะ module ละ 1 component |
ModalErrors, ModalConfirmForm, ModalCreate, ModalshowAllImage | modal ใช้ซ้ำ |
AvatarProfile, BreadcrumbCustom, BtnDelete, BtnEdit | UI ใช้ซ้ำเล็ก ๆ |
ไฟล์ backup / legacy ที่พบ
ทั่ว src/ มีไฟล์ปัจจัยรูปแบบ *_bk*.js, *_bak*, *-prd.js กระจายอยู่ ตัวอย่างที่ยืนยันแล้ว:
src/graphql/queries_bk.js,queries_bk-061265.jssrc/graphql/mutations_bk.js,mutations_bk-061254.jssrc/config/routes_bk.js,routes_bk-mapgroup.jssrc/pages/HospitalPaid/Payments/index_bk.js,generator_bk.js,generatorFileDetail_bk-bk.js,generatorFileDetail-prd.jssrc/pages/HospitalHr/Withdraw/detail_bk.js
ไฟล์เหล่านี้เข้าข่าย "ห้ามแก้/ห้ามลบโดยไม่ตรวจก่อน" ตาม convention ของแพลตฟอร์ม (ดู workspace rule ว่าด้วยไฟล์ _bk*) — ไม่ได้นับจำนวนรวมทั้งหมดในรอบตรวจนี้ (ทำเครื่องหมาย UNVERIFIED สำหรับจำนวนรวม)