const db = require('src/utils/database.js');

class Base {
  constructor() {
    this.cols = [];
    this.schema = 'public';
    this.table = '';
    this.db = db;
  }

  async transaction(trxFunc) {
    if (typeof trxFunc !== 'function') throw new Error('transaction function type error');
    return this.db.transaction(trxFunc);
  }

  async checkSchema() {
    await this.db
      .withSchema(this.schema)
      .from(this.table)
      .select(...this.cols)
      .limit(1);
  }
}

module.exports = Base;
