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;