"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WiFiConfigModel = void 0; const database_1 = require("../config/database"); class WiFiConfigModel { static async create(configData) { const query = ` INSERT INTO wifi_configurations (device_clientid, ssid, password, status, sent_at) VALUES (?, ?, ?, ?, NOW()) `; const values = [ configData.device_clientid, configData.ssid, configData.password, configData.status || 'sent' ]; const result = await (0, database_1.executeQuery)(query, values); return { id: result.insertId, ...configData, sent_at: new Date(), created_at: new Date(), updated_at: new Date() }; } static async getLatestByDeviceId(deviceClientId) { const query = ` SELECT * FROM wifi_configurations WHERE device_clientid = ? ORDER BY created_at DESC LIMIT 1 `; const configs = await (0, database_1.executeQuery)(query, [deviceClientId]); return configs.length > 0 ? configs[0] : null; } static async getByDeviceId(deviceClientId, limit) { let query = ` SELECT * FROM wifi_configurations WHERE device_clientid = ? ORDER BY created_at DESC `; const params = [deviceClientId]; if (limit) { query += ' LIMIT ?'; params.push(limit); } return await (0, database_1.executeQuery)(query, params); } static async updateStatus(id, status) { const query = ` UPDATE wifi_configurations SET status = ?, updated_at = NOW() ${status === 'applied' ? ', applied_at = NOW()' : ''} WHERE id = ? `; const result = await (0, database_1.executeQuery)(query, [status, id]); return result.affectedRows > 0; } static async getAll(limit, offset) { let query = 'SELECT * FROM wifi_configurations ORDER BY created_at DESC'; const params = []; if (limit !== undefined) { query += ' LIMIT ?'; params.push(limit); if (offset !== undefined) { query += ' OFFSET ?'; params.push(offset); } } return await (0, database_1.executeQuery)(query, params); } static async getById(id) { const query = 'SELECT * FROM wifi_configurations WHERE id = ?'; const configs = await (0, database_1.executeQuery)(query, [id]); return configs.length > 0 ? configs[0] : null; } static async delete(id) { const query = 'DELETE FROM wifi_configurations WHERE id = ?'; const result = await (0, database_1.executeQuery)(query, [id]); return result.affectedRows > 0; } } exports.WiFiConfigModel = WiFiConfigModel; //# sourceMappingURL=wifiConfig.js.map