// tdata.jsx — data + helpers cho module Công việc (Tasks).
// Nạp sau cdata.jsx (dùng TODAY). Task gắn (tùy chọn) tới khách hàng qua code.

const TASK_STATUS = {
  todo:  { vi:'Cần làm',    en:'To do',       cls:'badge-neutral', icon:'bi-circle' },
  doing: { vi:'Đang làm',   en:'In progress', cls:'badge-info',    icon:'bi-arrow-repeat' },
  done:  { vi:'Hoàn thành', en:'Done',        cls:'badge-success', icon:'bi-check-circle-fill' },
};
const TASK_STATUS_FLOW = ['todo', 'doing', 'done'];
const TASK_PRIORITY = {
  high: { vi:'Cao',        en:'High',   cls:'badge-error',   color:'var(--error)' },
  med:  { vi:'Trung bình', en:'Medium', cls:'badge-warning', color:'var(--warning)' },
  low:  { vi:'Thấp',       en:'Low',    cls:'badge-neutral', color:'var(--gray-400)' },
};

function tk(id, title, status, priority, assignee, dueDate, customer, desc){
  return { id, title, status, priority, assignee, dueDate, customer:customer || null, desc:desc || '' };
}
// TODAY = 2026-06-07
const TASKS = [
  tk('CV-012', 'Gửi báo giá mở rộng Cloud cho Viettel IDC', 'doing', 'high', 'Lê Thu Hà',      '2026-06-08', 'VTIDC',    'Hoàn thiện BG-2026-045, gửi trước cuộc họp.'),
  tk('CV-011', 'Cập nhật hồ sơ khách hàng Kyanon',          'todo',  'med',  'Trần Minh Quân',  '2026-06-09', 'KYANON',   'Bổ sung MST & người đại diện mới.'),
  tk('CV-010', 'Chuẩn bị tài liệu demo AppSheet — Kizuna',  'doing', 'high', 'Trần Minh Quân',  '2026-06-10', 'KIZUNA',   'Slide + bản demo số hóa quy trình KCN.'),
  tk('CV-009', 'Xác nhận lịch họp kỹ thuật SEMITEC',        'done',  'low',  'Lê Thu Hà',       '2026-06-06', 'SEMITEC',  'Đã chốt 14:00 ngày 06/06.'),
  tk('CV-008', 'Soạn hợp đồng dịch vụ TSD',                 'todo',  'high', 'Trần Minh Quân',  '2026-06-12', 'TSD',      'Chuyển BG-2026-041 thành hợp đồng.'),
  tk('CV-007', 'Theo dõi thanh toán đợt 3 — SEMITEC',       'todo',  'med',  'Nguyễn Thị Lan',  '2026-07-05', 'SEMITEC',  'Nhắc khách trước hạn 7 ngày.'),
  tk('CV-006', 'Gia hạn hợp đồng bảo trì Ngọc Minh',        'doing', 'med',  'Phạm Quốc Bảo',   '2026-06-20', 'NGOCMINH', 'PC Health Check Annual sắp hết hạn.'),
  tk('CV-005', 'Rà soát chi phí hạ tầng tháng 6',           'todo',  'low',  'Nguyễn Thị Lan',  '2026-06-15', null,       'Đối chiếu hóa đơn Cloud + AppSheet.'),
  tk('CV-004', 'Khảo sát nhu cầu nâng cấp HQG Technology',  'doing', 'med',  'Phạm Quốc Bảo',   '2026-06-11', 'HQGTECH',  'Lập đề xuất nâng cấp hệ thống vận hành.'),
  tk('CV-003', 'Phản hồi đề nghị hợp tác DASS',             'done',  'high', 'Lê Thu Hà',       '2026-06-04', 'DASSVN',   'Đã gửi xác nhận chuyển hợp đồng.'),
  tk('CV-002', 'Đào tạo vận hành nội bộ AppSheet',          'todo',  'low',  'Phạm Quốc Bảo',   '2026-06-25', null,       'Buổi training cho nhóm triển khai.'),
  tk('CV-001', 'Tổng kết doanh thu Q2/2026',               'todo',  'high', 'Nguyễn Thị Lan',  '2026-06-30', null,       'Báo cáo dòng tiền & thực thu quý 2.'),
];

function taskOverdue(t){ return t.status !== 'done' && t.dueDate && t.dueDate < TODAY; }
function taskOpen(t){ return t.status !== 'done'; }
function genTaskCode(list){
  const max = (list || []).reduce((m, t) => { const mm = (t.id || '').match(/CV-(\d+)/); return mm ? Math.max(m, +mm[1]) : m; }, 0);
  return 'CV-' + String(max + 1).padStart(3, '0');
}

Object.assign(window, { TASK_STATUS, TASK_STATUS_FLOW, TASK_PRIORITY, TASKS, tk, taskOverdue, taskOpen, genTaskCode });
