/* global window */
// Taxai — mock domain data & scripted AI logic.

const BUSINESS_TYPES = [
  { id: 'registered', label: 'Đã đăng ký HKD/DN', desc: 'Đã có hộ kinh doanh hoặc doanh nghiệp đăng ký chính thức', icon: 'check-circle' },
  { id: 'unregistered', label: 'Chưa đăng ký HKD/DN', desc: 'Đang kinh doanh cá nhân hoặc chưa đăng ký với cơ quan thuế', icon: 'circle-dashed' },
];

const INDUSTRIES = [
  'Thương mại điện tử', 'Dịch vụ ăn uống (F&B)', 'Thiết kế / Sáng tạo', 'Công nghệ / Phần mềm',
  'Giáo dục / Đào tạo', 'Bán lẻ', 'Tư vấn / Dịch vụ', 'Xây dựng', 'Vận tải / Logistics', 'Khác',
];

const REVENUE_BANDS = [
  { id: 'lt1b', label: 'Dưới 1 tỷ / năm', icon: 'store' },
  { id: '1b-3b', label: 'Từ 1 – 3 tỷ / năm', icon: 'briefcase' },
  { id: '3b-50b', label: 'Từ 3 – 50 tỷ / năm', icon: 'building' },
  { id: 'gt50b', label: 'Trên 50 tỷ / năm', icon: 'landmark' },
];

const TAX_METHODS = [
  { id: 'unknown', label: 'Tôi chưa rõ', desc: 'Để Taxai gợi ý phương pháp phù hợp' },
  { id: 'khoan', label: 'Thuế khoán', desc: 'Nộp mức cố định theo cơ quan thuế ấn định' },
  { id: 'kekhai', label: 'Kê khai', desc: 'Tự kê khai theo doanh thu thực tế' },
];

// Suggested starter prompts shown in empty chat
const SUGGESTED = [
  { id: 's1', icon: 'percent', text: 'Hộ kinh doanh doanh thu 90 triệu/tháng thì đóng những loại thuế nào?' },
  { id: 's2', icon: 'file-text', text: 'Tôi là freelancer, khi nào bắt buộc phải xuất hóa đơn?' },
  { id: 's3', icon: 'calendar-clock', text: 'Các mốc thời hạn kê khai & nộp thuế tôi cần nhớ trong năm?' },
  { id: 's4', icon: 'git-branch', text: 'Tôi nên chuyển từ hộ kinh doanh lên công ty TNHH không?', hard: true },
];

// --- Scripted AI answers --------------------------------------------------
// Each answer is an array of blocks: {type:'p'|'h'|'ul'|'note', text|items}
function aiAnswer(text) {
  const t = text.toLowerCase();

  // HARD → escalate to expert
  const hardHints = ['chuyển từ hộ', 'lên công ty', 'thành lập', 'chuyển đổi', 'góp vốn', 'cổ phần', 'sáp nhập', 'mở công ty', 'tối ưu thuế', 'cơ cấu', 'đầu tư nước ngoài'];
  const isHard = hardHints.some((h) => t.includes(h));
  if (isHard) {
    const service = (t.includes('thành lập') || t.includes('mở công ty') || t.includes('lên công ty')) ? 'formation' : 'tax';
    return {
      escalate: true,
      service,
      blocks: [
        { type: 'p', text: 'Đây là một tình huống cần đánh giá kỹ trên hồ sơ thực tế của bạn — doanh thu, cơ cấu chi phí, số lao động và định hướng phát triển đều ảnh hưởng tới quyết định. Mình có thể phân tích sơ bộ, nhưng để ra quyết định an toàn về pháp lý và tối ưu nghĩa vụ thuế, bạn nên trao đổi trực tiếp với chuyên gia.' },
        { type: 'h', text: 'Vài yếu tố mình đã cân nhắc' },
        { type: 'ul', items: [
          'Ngưỡng doanh thu và mức thuế khoán hiện tại của bạn',
          'Khả năng khấu trừ chi phí khi lên mô hình kê khai',
          'Nghĩa vụ kế toán, hóa đơn và bảo hiểm phát sinh thêm',
        ] },
        { type: 'note', text: 'Mình đánh giá đây là câu hỏi cần chuyên gia tư vấn để có phương án chính xác cho riêng bạn.' },
      ],
    };
  }

  // Known answers by keyword
  if (t.includes('90 triệu') || t.includes('loại thuế') || t.includes('đóng những loại') || (t.includes('hộ kinh doanh') && t.includes('thuế'))) {
    return { blocks: [
      { type: 'p', text: 'Với hộ kinh doanh có doanh thu khoảng 90 triệu/tháng (~1,08 tỷ/năm), bạn vượt ngưỡng miễn thuế (100 triệu/năm) nên sẽ phát sinh 3 nghĩa vụ chính:' },
      { type: 'ul', items: [
        'Thuế môn bài: 1.000.000 đ/năm (doanh thu trên 500 triệu/năm).',
        'Thuế GTGT: 1% trên doanh thu (ngành phân phối, bán lẻ hàng hóa).',
        'Thuế TNCN: 0,5% trên doanh thu (ngành phân phối, bán lẻ).',
      ] },
      { type: 'h', text: 'Ước tính nhanh theo tháng' },
      { type: 'p', text: 'GTGT ≈ 900.000 đ + TNCN ≈ 450.000 đ ≈ 1.350.000 đ/tháng (chưa gồm môn bài). Tỷ lệ % thay đổi theo ngành nghề — hãy cho mình biết bạn kinh doanh gì để tính chính xác hơn.' },
      { type: 'note', text: 'Con số mang tính minh hoạ theo phương pháp khoán/khoán quản. Tỷ lệ thực tế phụ thuộc nhóm ngành.' },
    ] };
  }

  if (t.includes('hóa đơn') || t.includes('xuất hóa đơn')) {
    return { blocks: [
      { type: 'p', text: 'Là freelancer (cá nhân chưa đăng ký kinh doanh), bạn không tự phát hành hóa đơn được. Tùy tình huống:' },
      { type: 'ul', items: [
        'Khách là doanh nghiệp cần hóa đơn: bạn lên cơ quan thuế đề nghị cấp hóa đơn lẻ cho từng lần, nộp thuế ngay khi cấp.',
        'Tổng thu nhập vượt 100 triệu/năm: phát sinh nghĩa vụ thuế GTGT 5% + TNCN 2% với dịch vụ.',
        'Làm thường xuyên, nhiều khách: nên cân nhắc đăng ký hộ kinh doanh để chủ động hóa đơn và chi phí.',
      ] },
      { type: 'note', text: 'Nếu khách hàng ở nước ngoài, cơ chế thuế nhà thầu và hoàn thuế có thể khác — cho mình biết thêm để tư vấn cụ thể.' },
    ] };
  }

  if (t.includes('thời hạn') || t.includes('mốc') || t.includes('deadline') || t.includes('khi nào nộp')) {
    return { blocks: [
      { type: 'h', text: 'Các mốc thời hạn quan trọng trong năm' },
      { type: 'ul', items: [
        'Thuế môn bài: nộp chậm nhất 30/01 hằng năm.',
        'Hộ khoán: thông báo thuế cả năm, nộp theo quý — hạn cuối ngày cuối quý.',
        'Kê khai theo tháng: nộp tờ khai & tiền thuế chậm nhất ngày 20 tháng sau.',
        'Kê khai theo quý: chậm nhất ngày cuối tháng đầu quý sau.',
        'Quyết toán thuế TNCN năm: chậm nhất ngày cuối tháng 3 năm sau (cá nhân tự quyết toán đến hết tháng 4).',
      ] },
      { type: 'note', text: 'Taxai sẽ nhắc bạn trước mỗi hạn 7 ngày khi bạn bật thông báo.' },
    ] };
  }

  // Fallback — helpful generic answer
  return { blocks: [
    { type: 'p', text: 'Mình hiểu câu hỏi của bạn. Để trả lời chính xác theo đúng hồ sơ, mình cần thêm vài thông tin: ngành nghề cụ thể, doanh thu ước tính và bạn đang áp dụng phương pháp khoán hay kê khai?' },
    { type: 'p', text: 'Bạn có thể trả lời ngắn gọn, hoặc chọn một trong các câu hỏi gợi ý bên dưới để mình minh hoạ cách tính.' },
  ] };
}

// --- Experts --------------------------------------------------------------
const EXPERTS = [
  { id: 'e1', name: 'Nguyễn Thu Hà', title: 'Chuyên gia thuế cấp cao', svc: 'tax', rating: 4.9, reviews: 212, price: 300000, years: 12, tags: ['Hộ kinh doanh', 'Thuế TNCN', 'Quyết toán'], next: 'Hôm nay, 16:00', bg: '#B90D00' },
  { id: 'e2', name: 'Trần Quốc Bảo', title: 'Kế toán trưởng · Tư vấn thuế', svc: 'tax', rating: 4.8, reviews: 156, price: 250000, years: 9, tags: ['Thuế GTGT', 'Hóa đơn', 'TMĐT'], next: 'Ngày mai, 09:30', bg: '#2563EB' },
  { id: 'e3', name: 'Lê Minh Châu', title: 'Luật sư thuế', svc: 'tax', rating: 5.0, reviews: 98, price: 450000, years: 15, tags: ['Tranh chấp thuế', 'Thanh tra', 'Doanh nghiệp'], next: 'Thứ 5, 14:00', bg: '#15A65B' },
  { id: 'e4', name: 'Phạm Hoàng Long', title: 'Chuyên gia thành lập DN', svc: 'formation', rating: 4.9, reviews: 178, price: 350000, years: 11, tags: ['Thành lập công ty', 'Giấy phép', 'Vốn điều lệ'], next: 'Hôm nay, 17:30', bg: '#7A0AE0' },
  { id: 'e5', name: 'Đỗ Khánh Vy', title: 'Tư vấn pháp lý doanh nghiệp', svc: 'formation', rating: 4.7, reviews: 134, price: 280000, years: 8, tags: ['Hộ KD → Công ty', 'Ngành nghề', 'Con dấu'], next: 'Ngày mai, 11:00', bg: '#DD1000' },
  { id: 'e6', name: 'Vũ Anh Tuấn', title: 'Cố vấn khởi nghiệp & thuế', svc: 'formation', rating: 4.8, reviews: 89, price: 320000, years: 10, tags: ['Startup', 'Cơ cấu vốn', 'Ưu đãi thuế'], next: 'Thứ 6, 10:00', bg: '#0E7490' },
];

const SERVICES = [
  { id: 'tax', label: 'Tư vấn thuế', desc: 'Kê khai, tối ưu nghĩa vụ thuế, quyết toán, xử lý vướng mắc', icon: 'receipt' },
  { id: 'formation', label: 'Tư vấn thành lập doanh nghiệp', desc: 'Lập hộ KD/công ty, giấy phép, cơ cấu vốn, ngành nghề', icon: 'building-2' },
];

const DAYS = [
  { id: 'd0', dow: 'Hôm nay', date: '02/06' },
  { id: 'd1', dow: 'T.Tư', date: '03/06' },
  { id: 'd2', dow: 'T.Năm', date: '04/06' },
  { id: 'd3', dow: 'T.Sáu', date: '05/06' },
  { id: 'd4', dow: 'T.Bảy', date: '06/06' },
];

const SLOTS = ['09:00', '09:30', '10:00', '11:00', '14:00', '14:30', '16:00', '16:30', '17:30'];

Object.assign(window, { BUSINESS_TYPES, INDUSTRIES, REVENUE_BANDS, TAX_METHODS, SUGGESTED, aiAnswer, EXPERTS, SERVICES, DAYS, SLOTS });
