const db = uniCloud.database()
module.exports = async function ({
  data = {},
  success = true,
  type = 'login'
} = {}) {
  const now = Date.now()
  const uniIdLogCollection = db.collection('uni-id-log')
  const requiredDataKeyList = ['user_id', 'username', 'email', 'mobile']
  const dataCopy = {}
  for (let i = 0; i < requiredDataKeyList.length; i++) {
    const key = requiredDataKeyList[i]
    if (key in data && typeof data[key] === 'string') {
      dataCopy[key] = data[key]
    }
  }
  const {
    appId,
    clientIP,
    deviceId,
    userAgent
  } = this.getClientInfo()
  const logData = {
    appid: appId,
    device_id: deviceId,
    ip: clientIP,
    type,
    ua: userAgent,
    create_date: now,
    ...dataCopy
  }

  if (success) {
    logData.state = 1
  } else {
    logData.state = 0
  }
  return uniIdLogCollection.add(logData)
}
