import HongKong from 'asia/HongKong';

// constants 用全大階同 underscores
const DATE_OF_HANDOVER = new Date(1997, 6, 1); // 1997-07-01T00:00:00.000Z
const YEARS_NO_CHANGE = 50; // 說好的50年
const now = new Date(); // 2022-07-01T00:00:00.000Z

// return boolean 可以用 prefix
function isHongKongNoChange(date: Date): Boolean {
  const diffInYear = now.getFullYear() - DATE_OF_HANDOVER.getFullYear();
  const withInNoChangePeriod = diffInYear < YEARS_NO_CHANGE;
  // HongKong class 有 static method 類似 Date 可以 instantize 喺指定時間
  const oldHongKong = HongKong.from(DATE_OF_HANDOVER);
  const nowHongKong = HongKong.now();
  
  if (!withInNoChangePeriod) {
    return false; // 過咗就算啦...
  }
  
  // 用量化嘅 core values 做比對
  return nowHongKong.getCoreValues() < oldHongKong.getCoreValues()
}

console.log(isHongKongNoChange(now)); // true
// 變咗啲咩呢?要睇下 HongKong.prototype.getCoreValues() 點 implement 先知