wifiConfig.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.WiFiConfigModel = void 0;
  4. const database_1 = require("../config/database");
  5. class WiFiConfigModel {
  6. static async create(configData) {
  7. const query = `
  8. INSERT INTO wifi_configurations (device_clientid, ssid, password, status, sent_at)
  9. VALUES (?, ?, ?, ?, NOW())
  10. `;
  11. const values = [
  12. configData.device_clientid,
  13. configData.ssid,
  14. configData.password,
  15. configData.status || 'sent'
  16. ];
  17. const result = await (0, database_1.executeQuery)(query, values);
  18. return {
  19. id: result.insertId,
  20. ...configData,
  21. sent_at: new Date(),
  22. created_at: new Date(),
  23. updated_at: new Date()
  24. };
  25. }
  26. static async getLatestByDeviceId(deviceClientId) {
  27. const query = `
  28. SELECT * FROM wifi_configurations
  29. WHERE device_clientid = ?
  30. ORDER BY created_at DESC
  31. LIMIT 1
  32. `;
  33. const configs = await (0, database_1.executeQuery)(query, [deviceClientId]);
  34. return configs.length > 0 ? configs[0] : null;
  35. }
  36. static async getByDeviceId(deviceClientId, limit) {
  37. let query = `
  38. SELECT * FROM wifi_configurations
  39. WHERE device_clientid = ?
  40. ORDER BY created_at DESC
  41. `;
  42. const params = [deviceClientId];
  43. if (limit) {
  44. query += ' LIMIT ?';
  45. params.push(limit);
  46. }
  47. return await (0, database_1.executeQuery)(query, params);
  48. }
  49. static async updateStatus(id, status) {
  50. const query = `
  51. UPDATE wifi_configurations
  52. SET status = ?, updated_at = NOW()
  53. ${status === 'applied' ? ', applied_at = NOW()' : ''}
  54. WHERE id = ?
  55. `;
  56. const result = await (0, database_1.executeQuery)(query, [status, id]);
  57. return result.affectedRows > 0;
  58. }
  59. static async getAll(limit, offset) {
  60. let query = 'SELECT * FROM wifi_configurations ORDER BY created_at DESC';
  61. const params = [];
  62. if (limit !== undefined) {
  63. query += ' LIMIT ?';
  64. params.push(limit);
  65. if (offset !== undefined) {
  66. query += ' OFFSET ?';
  67. params.push(offset);
  68. }
  69. }
  70. return await (0, database_1.executeQuery)(query, params);
  71. }
  72. static async getById(id) {
  73. const query = 'SELECT * FROM wifi_configurations WHERE id = ?';
  74. const configs = await (0, database_1.executeQuery)(query, [id]);
  75. return configs.length > 0 ? configs[0] : null;
  76. }
  77. static async delete(id) {
  78. const query = 'DELETE FROM wifi_configurations WHERE id = ?';
  79. const result = await (0, database_1.executeQuery)(query, [id]);
  80. return result.affectedRows > 0;
  81. }
  82. }
  83. exports.WiFiConfigModel = WiFiConfigModel;
  84. //# sourceMappingURL=wifiConfig.js.map