{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "BTChem Master Data — Định dạng dữ liệu đầu vào & Database schema",
  "description": "Chuẩn dữ liệu trung tâm BTChem (Bình Thạnh): KPH, báo cáo mẫu tuần, báo cáo SX tuần, báo cáo KT tuần. Dùng làm tài liệu nguồn để agent xây database (SQLite) + bộ nạp dữ liệu.",
  "version": "1.0",
  "ngay": "2026-08-27",

  "enum_chuan": {
    "loai_mau": ["Mới", "Nhân", "Bộ"],
    "trang_thai_mau": ["HT", "DK", "ĐL", "CHỜ KH XEM"],
    "giai_doan_kph": ["Done", "Failed", "Processing"],
    "trang_thai_kph": ["Hoàn thành", "Thất bại", "Đang xử lý"],
    "loai_sai_kph": ["Sai màu", "Sai độ bóng", "Tróc sơn", "Dính bề mặt", "Đóng màng", "Lỗ kim", "Mốc", "Khác"],
    "khu_vuc": ["KV: BÌNH DƯƠNG", "KV: QUY NHƠN"],
    "nhom_nha_may": ["NHÓM NHÀ MÁY LỚN QUAN TRỌNG", "NHÓM NHÀ MÁY TRUNG BÌNH", "NHÓM NHÀ MÁY NHỎ", "NHÓM NHÀ MÁY SƠN NƯỚC"],
    "tinh_trang_sx": ["xong", "đang làm", "chưa bắt đầu"],
    "muc_canh_tranh": ["Không", "Nhẹ (0-20%)", "Trung bình (20-45%)", "Mạnh (>45%)", "Khác"],
    "loai_bc_kt": ["Sản xuất", "Làm mẫu", "Cạnh tranh", "Nhân sự", "Vấn đề", "Đề xuất"]
  },

  "database_schema": {
    "database": "btchem.db (SQLite, 1 file)",
    "quy_tac": [
      "Tên nhà máy duy nhất — 1 tên chuẩn (VD 'Minh Dương', không viết 'MD'/'MINH DƯƠNG')",
      "Mã màu giữ đúng format gốc (VD 'MD 2241')",
      "Ngày chuẩn ISO YYYY-MM-DD",
      "KTV dùng tên đầy đủ (VD 'Nguyễn Đức Thăng', không viết tắt)",
      "Enum cố định theo bảng enum_chuan",
      "Số liệu giữ nguyên văn nguồn, chỉ chuẩn hóa định dạng"
    ],
    "tables": [
      {
        "name": "nha_may",
        "desc": "Danh mục nhà máy (master data)",
        "columns": [
          {"name": "id", "type": "INTEGER PK", "desc": "Khóa chính"},
          {"name": "ten", "type": "TEXT UNIQUE NOT NULL", "desc": "Tên chuẩn nhà máy"},
          {"name": "khu_vuc", "type": "TEXT", "desc": "Enum khu_vuc"},
          {"name": "nhom", "type": "TEXT", "desc": "Enum nhom_nha_may"},
          {"name": "dia_chi", "type": "TEXT NULL", "desc": "Địa chỉ (nếu có)"},
          {"name": "ghi_chu", "type": "TEXT NULL", "desc": "Ghi chú chung"}
        ]
      },
      {
        "name": "phai_vien_kt",
        "desc": "Danh mục KTV phái viên (master data)",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "ten", "type": "TEXT UNIQUE NOT NULL", "desc": "Tên đầy đủ KTV"},
          {"name": "cum_nha_may", "type": "TEXT", "desc": "Cụm phụ trách (VD 'Hạnh Phúc & Đăng Long')"}
        ]
      },
      {
        "name": "bao_cao_sx",
        "desc": "Báo cáo sản xuất tuần — 1 dòng/nhà máy/tuần",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "tuan", "type": "TEXT NOT NULL", "desc": "VD 'T34'"},
          {"name": "nha_may_id", "type": "INTEGER FK -> nha_may.id"},
          {"name": "so_cont", "type": "REAL NULL", "desc": "Số container kế hoạch (7.5)"},
          {"name": "chi_tiet", "type": "TEXT NULL", "desc": "Chi tiết đơn hàng (khách + cont)"},
          {"name": "mau_moi", "type": "INTEGER NULL", "desc": "Số mẫu mới"},
          {"name": "tinh_trang", "type": "TEXT", "desc": "Enum tinh_trang_sx"},
          {"name": "tinh_hinh_su_co", "type": "TEXT NULL", "desc": "Tình hình/sự cố/khó khăn"},
          {"name": "canh_tranh", "type": "TEXT NULL", "desc": "Diễn biến cạnh tranh"}
        ]
      },
      {
        "name": "mau_lam",
        "desc": "Báo cáo mẫu tuần — 1 dòng/mẫu",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "tuan", "type": "TEXT NOT NULL"},
          {"name": "nha_may_id", "type": "INTEGER FK -> nha_may.id"},
          {"name": "ma_pt_kh", "type": "TEXT NULL", "desc": "Mã phòng thí nghiệm/khách"},
          {"name": "ma_mau", "type": "TEXT", "desc": "VD 'MD 2241'"},
          {"name": "khach_hang", "type": "TEXT NULL"},
          {"name": "ngay_nhan", "type": "TEXT (ISO date)"},
          {"name": "ngay_ht", "type": "TEXT (ISO date)"},
          {"name": "loai_mau", "type": "TEXT", "desc": "Enum loai_mau"},
          {"name": "san_pham", "type": "TEXT NULL", "desc": "Bàn/Ghế/Tủ..."},
          {"name": "so_luong", "type": "INTEGER NULL"},
          {"name": "ky_thuat_id", "type": "INTEGER FK -> phai_vien_kt.id NULL"},
          {"name": "trang_thai", "type": "TEXT", "desc": "Enum trang_thai_mau"},
          {"name": "co_don_hang", "type": "INTEGER (0/1)"},
          {"name": "ghi_chu", "type": "TEXT NULL"}
        ]
      },
      {
        "name": "bao_cao_cskh",
        "desc": "Báo cáo CSKH — 1 dòng/lượt công tác",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "tuan", "type": "TEXT NOT NULL"},
          {"name": "ngay_bc", "type": "TEXT (ISO date)"},
          {"name": "nha_may_id", "type": "INTEGER FK -> nha_may.id"},
          {"name": "nguoi_bc", "type": "TEXT", "desc": "VD 'Quang'"},
          {"name": "muc_canh_tranh", "type": "TEXT", "desc": "Enum muc_canh_tranh"},
          {"name": "kh_chu_luc", "type": "TEXT NULL", "desc": "Khách hàng chủ lực"},
          {"name": "noi_dung", "type": "TEXT NULL", "desc": "SX/Mẫu/Phân công/Phản hồi"}
        ]
      },
      {
        "name": "su_co_kph",
        "desc": "Khiếu nại phản hồi (KPH) — 1 dòng/vụ việc",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "id_vu_viec", "type": "TEXT UNIQUE", "desc": "VD 'KPH-3108645'"},
          {"name": "ngay_tao", "type": "TEXT (ISO date)"},
          {"name": "nguoi_tao", "type": "TEXT"},
          {"name": "giao_cho", "type": "TEXT"},
          {"name": "ten_vu_viec", "type": "TEXT"},
          {"name": "nha_may_id", "type": "INTEGER FK -> nha_may.id NULL"},
          {"name": "san_pham_mau", "type": "TEXT", "desc": "Tên sản phẩm/màu + MSSX"},
          {"name": "mo_ta_su_co", "type": "TEXT"},
          {"name": "loai_sai", "type": "TEXT", "desc": "Enum loai_sai_kph"},
          {"name": "giai_doan", "type": "TEXT", "desc": "Enum giai_doan_kph"},
          {"name": "trang_thai", "type": "TEXT", "desc": "Enum trang_thai_kph"},
          {"name": "ngay_kt", "type": "TEXT (ISO date) NULL"},
          {"name": "nguyen_nhan", "type": "TEXT NULL", "desc": "Nguyên nhân gốc"},
          {"name": "ket_qua", "type": "TEXT NULL", "desc": "Kết quả xử lý"},
          {"name": "phuong_an_xu_ly", "type": "TEXT NULL"},
          {"name": "ngay_hoan_thanh", "type": "TEXT (ISO date) NULL"},
          {"name": "nguoi_theo_doi", "type": "TEXT NULL"}
        ]
      },
      {
        "name": "bao_cao_kt_tuan",
        "desc": "Báo cáo kỹ thuật tuần — 2 tầng: tổng hợp + chi tiết cụm",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "tuan", "type": "TEXT NOT NULL"},
          {"name": "ngay_lap", "type": "TEXT (ISO date)"},
          {"name": "kt_id", "type": "INTEGER FK -> phai_vien_kt.id"},
          {"name": "cum_nha_may", "type": "TEXT"},
          {"name": "loai", "type": "TEXT", "desc": "Enum loai_bc_kt (Sản xuất/Làm mẫu/Cạnh tranh/Nhân sự/Vấn đề/Đề xuất)"},
          {"name": "noi_dung", "type": "TEXT NOT NULL"},
          {"name": "ghi_chu", "type": "TEXT NULL"}
        ]
      },
      {
        "name": "nguyen_lieu",
        "desc": "Danh mục nguyên liệu (master data)",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "ten", "type": "TEXT UNIQUE NOT NULL"},
          {"name": "nhom", "type": "TEXT", "desc": "VD 'MÀU VÀNG', 'BỘT'"},
          {"name": "don_vi", "type": "TEXT NULL", "desc": "kg/lít"}
        ]
      },
      {
        "name": "gia_nguyen_lieu",
        "desc": "Lịch sử giá nguyên liệu — 1 dòng/lần báo giá",
        "columns": [
          {"name": "id", "type": "INTEGER PK"},
          {"name": "nguyen_lieu_id", "type": "INTEGER FK -> nguyen_lieu.id"},
          {"name": "ngay", "type": "TEXT (ISO date)"},
          {"name": "loai_gia", "type": "TEXT", "desc": "Tồn kho/Đặt hàng/Giá báo"},
          {"name": "gia_vnd", "type": "REAL", "desc": "VND/kg"},
          {"name": "ghi_chu", "type": "TEXT NULL", "desc": "VD 'hàng cont', 'hàng lẻ'"}
        ]
      }
    ]
  },

  "input_formats": {
    "bao_cao_sx_tuan": {
      "nguon": "BANG_BC_SX_TUAN_XX_DA-LAM-SACH.xlsx (sheet 'T39')",
      "cau_truc": "Header 3 dòng (BÁO CÁO SẢN XUẤT KHÁCH / Nội dung báo cáo / TT|Tên Nhà Máy|KHU VỰC|Số cont|QUI MÔ NHÀ MÁY|Chi tiết|Mẫu mới|Tình trạng|Tình hình/ sự cố/ khó khăn|Cạnh tranh)",
      "quy_tac": [
        "Dòng KV: 'KV: BÌNH DƯƠNG' → gán khu_vuc cho các nhà máy phía dưới",
        "Dòng nhóm (cột QUI MÔ, không có tên NM) → gán nhom_nha_may",
        "Số cont có thể thập phân (7.5), trống = NULL",
        "Mỗi nhà máy 1 dòng, không trùng"
      ]
    },
    "bao_cao_mau_tuan": {
      "nguon": "Tuan_XX_..._DA-LAM-SACH.xlsx (sheet 'Làm sạch') hoặc 3 file nguồn gộp",
      "cau_truc": "Stt|Nhà máy|Mã PT/KH|Mã NM|Khách hàng|Ngày nhận|Ngày HT|Loại mẫu|SP|Số lượng|Kỹ thuật|Trạng thái|Có ĐH|Ghi chú",
      "quy_tac": [
        "Tên nhà máy viết hoa chuẩn (MINH DƯƠNG) → chuẩn hóa về dạng thường hoa chuẩn",
        "Loại mẫu: Mới/Nhân/Bộ",
        "Trạng thái: HT (hoàn thành)/DK (đã ký)/ĐL (đang làm)",
        "Ngày định dạng DD/MM/YYYY → chuyển ISO"
      ]
    },
    "bao_cao_cskh": {
      "nguon": "Bao_cao_CSKH_tong_hop (DOCX) — bảng tổng quan + chi tiết từng NM",
      "cau_truc": "Bảng: #|Nhà máy|Ngày BC|Người BC|Cạnh tranh|KH chủ lực + mục chi tiết '1. Tên NM — DD/MM/YYYY (Người)' gồm SX/Mẫu/Phân công KT/Cạnh tranh/Phản hồi",
      "quy_tac": [
        "Mỗi lượt công tác = 1 dòng CSKH",
        "Mức cạnh tranh chuẩn hóa về enum (Không/Nhẹ/TB/Mạnh/Khác)"
      ]
    },
    "bao_cao_kt_tuan": {
      "nguon": "Bao_cao_tong_hop_TuanXX (DOCX) — I. Tổng quan, II. Chi tiết 9 cụm, III. Cạnh tranh",
      "cau_truc": "Mỗi cụm = 1 KTV: Sản xuất / Làm mẫu / Kỹ thuật / Định mức / Cạnh tranh / Phân công / Vấn đề",
      "quy_tac": [
        "Tách nội dung mỗi cụm thành các mục loai_bc_kt",
        "KTV dùng tên đầy đủ, khớp bảng phai_vien_kt",
        "Bảng cạnh tranh (III) → tách riêng từng đối thủ"
      ]
    },
    "su_co_kph": {
      "nguon": "extracted_tasks.json / sheet KPH (Done/Failed/Processing)",
      "cau_truc": "Các trường theo bảng su_co_kph ở trên",
      "quy_tac": [
        "id_vu_viec unique (VD '3108645' → 'KPH-3108645')",
        "Loại sai chuẩn hóa về enum",
        "Nhiều vụ cùng nhà máy → nhiều dòng, cùng nha_may_id"
      ]
    }
  }
}
