const db = require(`../config/dbMysqlConn`); class UsersModels { static ROLE_SU = 1; // unused static ROLE_SUPERADMIN = 7; static ROLE_ADMIN = 2; static ROLE_VENDOR = 8; static ROLE_CHECKER = 9; static ROLE_USER = 3; // unused static ROLE_CLIENT_ADMIN = 4; static ROLE_CLIENT_STAFF = 5; // unused static ROLE_CLIENT_USER = 6; // unused static ROLE_SPECIAL_TRACKING = 10; static ROLE_FINANCE = 11; static STATUS_ACTIVE = 1; static STATUS_NOT_ACTIVE = 2; static STATUS_SUSPEND = 3; static CHK_TYPE_PICKUP = 1; static CHK_TYPE_DROP = 2; static DEFAULT_UID = 1; // swanusa account static DEFAULT_PHONE_CODE = 62; static async all() { return new Promise((resolve, reject) => { const query = `SELECT * FROM t_users;`; db.query(query, (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async getUsersActiveByRole(role) { return new Promise((resolve, reject) => { const query = `SELECT * FROM t_users WHERE dlt is null AND status = ${UsersModels.STATUS_ACTIVE} AND role = ?;`; db.query(query, [role], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async find(id) { return new Promise((resolve, reject) => { const query = `SELECT * FROM t_users WHERE id = ? LIMIT 1;`; db.query(query, [id], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async findEmail(email) { return new Promise((resolve, reject) => { const query = `SELECT * FROM t_users WHERE email = ? LIMIT 1;`; db.query(query, [email], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async create(data) { return new Promise((resolve, reject) => { const query = `INSERT INTO t_users SET ?;`; db.query(query, data, (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async update(data, id) { return new Promise((resolve, reject) => { const query = `UPDATE t_users SET ? WHERE id = ?;`; db.query(query, [data, id], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } static async delete(id) { return new Promise((resolve, reject) => { const query = `DELETE FROM t_users WHERE id = ?;`; db.query(query, [id], (err, results) => { if (err) { reject(err); return false; } resolve(results); }); }); } } module.exports = UsersModels;