// User Manual 02 — Hợp đồng (Tạo + Sửa + 7 loại + Xóa)
// Style: end-user friendly — các bước đơn giản.
const fs = require('fs'); const path = require('path');
const H = require('./_helpers');
const { h1, h2, h3, p, bullet, num, note, warn, tip, titlePage, buildDoc, Packer } = H;

const children = [
  ...titlePage(
    "Hướng dẫn Hợp đồng",
    "Phần 02: 7 loại HĐ - Tạo, Sửa, Xóa",
  ),

  h1("1. 7 loại hợp đồng"),
  bullet("HĐ Thầu phụ (HĐTP) — thuê NTP xây thô / hoàn thiện"),
  bullet("HĐ Giao khoán (HĐGK) — khoán công việc cho tổ đội"),
  bullet("HĐ NCC — mua vật tư, thiết bị từ NCC"),
  bullet("HĐ Dịch vụ (HĐDV) — thuê tư vấn, kiểm định, vệ sinh"),
  bullet("HĐ Mua bán (HĐMB) — mua bán thiết bị, vật phẩm"),
  bullet("HĐ Nguyên tắc NCC — khung nguyên tắc lâu dài với NCC"),
  bullet("HĐ Nguyên tắc DV — khung nguyên tắc dịch vụ lâu dài"),
  note("Tham khảo Phần 06 để biết field đặc thù mỗi loại."),

  h1("2. Inbox vs Hợp đồng của tôi"),
  bullet("Inbox (/inbox) — HĐ đang chờ vai trò bạn duyệt"),
  bullet("Hợp đồng của tôi (/my-contracts) — HĐ bạn là Drafter (mọi phase)"),
  tip("Filter theo loại: thêm ?type=N (1-7) vào URL hoặc dùng menu Sidebar."),

  h1("3. Tạo HĐ mới"),
  num("Sidebar → Hợp đồng → chọn loại HĐ → Tạo mới"),
  num("Hoặc URL trực tiếp /contracts/new?type=N (N = 1-7)"),
  num("Điền Header: Tên HĐ, NCC/NTP, Dự án, Phòng ban chủ trì, Giá trị, Ngày dự kiến"),
  num("(Tùy chọn) Liên kết Ngân sách dự án"),
  num("Click \"Lưu nháp\" → hệ thống tạo HĐ ở phase Đang soạn thảo"),
  note("Mã HĐ chưa gen ngay — sẽ tự gen khi chuyển sang phase Đang đóng dấu."),

  h1("4. Thêm chi tiết HĐ"),
  p("Sau khi tạo nháp, mở HĐ → tab \"Chi tiết\" để nhập hạng mục cụ thể."),
  num("Mở HĐ → tab \"Chi tiết\""),
  num("Click \"Thêm hạng mục\""),
  num("Nhập Mã / Tên hạng mục / Đơn vị / Khối lượng / Đơn giá"),
  num("Hệ thống tự tính Thành tiền = Khối lượng × Đơn giá"),
  num("Click \"Lưu\""),
  tip("Lặp lại để thêm nhiều hạng mục. Tổng giá trị HĐ tự tổng hợp."),

  h1("5. Sửa HĐ nháp"),
  num("Mở HĐ ở phase Đang soạn thảo"),
  num("Click \"Sửa\" ở Header hoặc inline edit từng hạng mục"),
  num("Click \"Lưu\""),
  warn("Sau khi trình duyệt (Phase ≠ Đang soạn thảo), HĐ bị khóa edit. Phải reject về Đang soạn thảo mới sửa được."),

  h1("6. Trình duyệt HĐ"),
  num("Mở HĐ ở phase Đang soạn thảo"),
  num("Panel Quy trình bên phải → click \"Trình → Đang góp ý\""),
  num("(Tùy chọn) Nhập ghi chú"),
  num("Click \"Xác nhận\""),
  p("HĐ chuyển sang phase tiếp theo, người duyệt nhận notification."),
  p("Chi tiết quy trình duyệt 9 phase: xem Phần 03 - Duyệt Workflow."),

  h1("7. Đính kèm file"),
  num("Mở HĐ → tab \"Đính kèm\" hoặc kéo thả file vào khu vực dropzone"),
  num("Chọn loại file: Báo giá / Yêu cầu KT / Phiếu duyệt / ..."),
  num("File upload xong, hiển thị trong danh sách"),
  num("Click tên file để tải về"),

  h1("8. Comment / Góp ý"),
  num("Mở HĐ → tab \"Bình luận\""),
  num("Nhập nội dung góp ý vào khung text"),
  num("Click \"Gửi\""),
  note("Drafter + role đã comment trước nhận notification realtime."),

  h1("9. Xóa HĐ nháp"),
  num("Mở HĐ ở phase Đang soạn thảo / Từ chối"),
  num("Click icon \"Xóa\" (thùng rác) ở Header"),
  num("Xác nhận \"Xóa\""),
  warn("Chỉ xóa được HĐ ở phase Đang soạn thảo hoặc Từ chối. HĐ đã trình duyệt KHÔNG xóa được."),

  h1("10. Tìm + Filter"),
  bullet("Search box: tìm theo Mã HĐ / Tên / NCC"),
  bullet("Filter Phase: dropdown 9 phase + Từ chối"),
  bullet("Filter NCC / Dự án: dropdown"),
  bullet("Filter SLA: chỉ hiện HĐ sắp đến hạn / quá hạn"),
  tip("URL có thể bookmark, vd /my-contracts?type=5&phase=2 = HĐ Mua bán phase Đang soạn thảo."),
];

const doc = buildDoc(
  "User Manual - 02 Hợp đồng",
  "SOLUTION_ERP - User Manual - 02 Hợp đồng",
  children,
);

const outPath = path.join(__dirname, 'user', '02-Hop-dong.docx');
Packer.toBuffer(doc).then(buf => {
  fs.writeFileSync(outPath, buf);
  console.log('✅ Generated:', outPath);
  console.log('   Size:', (buf.length / 1024).toFixed(1) + ' KB');
});
