feat: inicializacion de Help Desk segun estandar Telcotronics con bitacora de errores e integracion MCP
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
const db = require('../config/db');
|
||||
|
||||
const Company = {
|
||||
findAll: async () => {
|
||||
const [rows] = await db.query('SELECT * FROM companies ORDER BY created_at DESC');
|
||||
return rows;
|
||||
},
|
||||
findById: async (id) => {
|
||||
const [rows] = await db.query('SELECT * FROM companies WHERE id = ?', [id]);
|
||||
return rows[0];
|
||||
},
|
||||
findBySlug: async (slug) => {
|
||||
const [rows] = await db.query('SELECT * FROM companies WHERE slug = ?', [slug]);
|
||||
return rows[0];
|
||||
},
|
||||
create: async (name, slug, plan = 'free') => {
|
||||
const [result] = await db.query(
|
||||
'INSERT INTO companies (name, slug, plan) VALUES (?, ?, ?)',
|
||||
[name, slug, plan]
|
||||
);
|
||||
return result.insertId;
|
||||
},
|
||||
update: async (id, data) => {
|
||||
const fields = [];
|
||||
const values = [];
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
fields.push(`${key} = ?`);
|
||||
values.push(value);
|
||||
}
|
||||
if (fields.length === 0) return;
|
||||
values.push(id);
|
||||
await db.query(`UPDATE companies SET ${fields.join(', ')} WHERE id = ?`, values);
|
||||
},
|
||||
countUsers: async (companyId) => {
|
||||
const [rows] = await db.query('SELECT COUNT(*) as total FROM users WHERE company_id = ? AND is_active = 1', [companyId]);
|
||||
return rows[0].total;
|
||||
},
|
||||
countTickets: async (companyId) => {
|
||||
const [rows] = await db.query('SELECT COUNT(*) as total FROM tickets WHERE company_id = ?', [companyId]);
|
||||
return rows[0].total;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = Company;
|
||||
Reference in New Issue
Block a user