Files
gps-backend/models/UsersModels.js
meusinfirmary f4ce94cab9 update
2025-06-17 10:39:22 +09:00

120 lines
2.6 KiB
JavaScript
Executable File

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;