points_balance_view.cjs 574 Bytes
const viewName = 'points_balance_view'

function createViewSql() {
  return 'CREATE VIEW points_balance_view AS SELECT user_id, COALESCE(SUM(amount), 0) AS balance FROM billing_ledger GROUP BY user_id'
}

function createEmptyViewSql(dialect) {
  if (dialect === 'mysql2') {
    return 'CREATE OR REPLACE VIEW points_balance_view AS SELECT NULL AS user_id, 0 AS balance FROM DUAL WHERE 1=0'
  }
  return 'CREATE VIEW IF NOT EXISTS points_balance_view AS SELECT NULL AS user_id, 0 AS balance WHERE 0'
}

module.exports = {
  viewName,
  createViewSql,
  createEmptyViewSql,
}