@fastybird/smart-panel-backend 0.12.0-alpha.0 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1037) hide show
  1. package/dist/app.constants.js.map +1 -1
  2. package/dist/app.module.js +44 -17
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/common/filters/bad-request-exception.filter.js +0 -6
  5. package/dist/common/filters/bad-request-exception.filter.js.map +1 -1
  6. package/dist/common/filters/global-error.filter.js +2 -6
  7. package/dist/common/filters/global-error.filter.js.map +1 -1
  8. package/dist/common/filters/internal-server-error-exception.filter.js +0 -5
  9. package/dist/common/filters/internal-server-error-exception.filter.js.map +1 -1
  10. package/dist/common/filters/not-found-exception.filter.d.ts +4 -0
  11. package/dist/common/filters/not-found-exception.filter.js +22 -3
  12. package/dist/common/filters/not-found-exception.filter.js.map +1 -1
  13. package/dist/common/filters/query-failed-exception.filter.js +0 -5
  14. package/dist/common/filters/query-failed-exception.filter.js.map +1 -1
  15. package/dist/common/filters/unprocessable-entity-exception.filter.js +0 -5
  16. package/dist/common/filters/unprocessable-entity-exception.filter.js.map +1 -1
  17. package/dist/common/plugin-relations/relation-loader.interface.d.ts +5 -0
  18. package/dist/common/plugin-relations/relation-loader.interface.js +3 -0
  19. package/dist/common/plugin-relations/relation-loader.interface.js.map +1 -0
  20. package/dist/common/services/app-instance-holder.service.d.ts +1 -2
  21. package/dist/common/services/app-instance-holder.service.js.map +1 -1
  22. package/dist/common/utils/config.utils.d.ts +0 -1
  23. package/dist/common/utils/config.utils.js +1 -11
  24. package/dist/common/utils/config.utils.js.map +1 -1
  25. package/dist/main.js +25 -6
  26. package/dist/main.js.map +1 -1
  27. package/dist/migrations/1000000000000-InitialSetup.js +8 -0
  28. package/dist/migrations/1000000000000-InitialSetup.js.map +1 -1
  29. package/dist/migrations/1000000000002-AddTokenLastUsedAt.d.ts +6 -0
  30. package/dist/migrations/1000000000002-AddTokenLastUsedAt.js +15 -0
  31. package/dist/migrations/1000000000002-AddTokenLastUsedAt.js.map +1 -0
  32. package/dist/migrations/1000000000003-UnifySpaceRoleTables.d.ts +6 -0
  33. package/dist/migrations/1000000000003-UnifySpaceRoleTables.js +88 -0
  34. package/dist/migrations/1000000000003-UnifySpaceRoleTables.js.map +1 -0
  35. package/dist/migrations/1000000000004-DisplaysSpaceOnly.d.ts +6 -0
  36. package/dist/migrations/1000000000004-DisplaysSpaceOnly.js +165 -0
  37. package/dist/migrations/1000000000004-DisplaysSpaceOnly.js.map +1 -0
  38. package/dist/migrations/1000000000005-SpacesSignageInfoPanel.d.ts +6 -0
  39. package/dist/migrations/1000000000005-SpacesSignageInfoPanel.js +66 -0
  40. package/dist/migrations/1000000000005-SpacesSignageInfoPanel.js.map +1 -0
  41. package/dist/migrations/1000000000006-DropLegacyRoleTables.d.ts +6 -0
  42. package/dist/migrations/1000000000006-DropLegacyRoleTables.js +32 -0
  43. package/dist/migrations/1000000000006-DropLegacyRoleTables.js.map +1 -0
  44. package/dist/modules/api/interceptors/open-api-response.interceptor.js +1 -1
  45. package/dist/modules/api/interceptors/open-api-response.interceptor.js.map +1 -1
  46. package/dist/modules/auth/auth.module.js +44 -28
  47. package/dist/modules/auth/auth.module.js.map +1 -1
  48. package/dist/modules/auth/controllers/auth.controller.js +6 -0
  49. package/dist/modules/auth/controllers/auth.controller.js.map +1 -1
  50. package/dist/modules/auth/controllers/tokens.controller.d.ts +10 -3
  51. package/dist/modules/auth/controllers/tokens.controller.js +96 -7
  52. package/dist/modules/auth/controllers/tokens.controller.js.map +1 -1
  53. package/dist/modules/auth/dto/create-personal-token.dto.d.ts +8 -0
  54. package/dist/modules/auth/dto/create-personal-token.dto.js +75 -0
  55. package/dist/modules/auth/dto/create-personal-token.dto.js.map +1 -0
  56. package/dist/modules/auth/dto/register.dto.d.ts +1 -1
  57. package/dist/modules/auth/dto/register.dto.js +13 -11
  58. package/dist/modules/auth/dto/register.dto.js.map +1 -1
  59. package/dist/modules/auth/entities/auth.entity.d.ts +1 -0
  60. package/dist/modules/auth/entities/auth.entity.js +13 -0
  61. package/dist/modules/auth/entities/auth.entity.js.map +1 -1
  62. package/dist/modules/auth/guards/auth.guard.d.ts +0 -1
  63. package/dist/modules/auth/guards/auth.guard.js +8 -26
  64. package/dist/modules/auth/guards/auth.guard.js.map +1 -1
  65. package/dist/modules/auth/guards/display-aware-throttler.guard.d.ts +16 -0
  66. package/dist/modules/auth/guards/display-aware-throttler.guard.js +133 -0
  67. package/dist/modules/auth/guards/display-aware-throttler.guard.js.map +1 -0
  68. package/dist/modules/auth/services/auth.service.js +1 -1
  69. package/dist/modules/auth/services/auth.service.js.map +1 -1
  70. package/dist/modules/auth/services/tokens.service.d.ts +10 -0
  71. package/dist/modules/auth/services/tokens.service.js +35 -0
  72. package/dist/modules/auth/services/tokens.service.js.map +1 -1
  73. package/dist/modules/auth/utils/token.utils.d.ts +7 -0
  74. package/dist/modules/auth/utils/token.utils.js +12 -1
  75. package/dist/modules/auth/utils/token.utils.js.map +1 -1
  76. package/dist/modules/buddy/buddy.module.d.ts +5 -1
  77. package/dist/modules/buddy/buddy.module.js +42 -15
  78. package/dist/modules/buddy/buddy.module.js.map +1 -1
  79. package/dist/modules/buddy/buddy.utils.d.ts +8 -0
  80. package/dist/modules/buddy/buddy.utils.js +49 -0
  81. package/dist/modules/buddy/buddy.utils.js.map +1 -1
  82. package/dist/modules/buddy/controllers/buddy-suggestions.controller.js +2 -2
  83. package/dist/modules/buddy/controllers/buddy-suggestions.controller.js.map +1 -1
  84. package/dist/modules/buddy/entities/buddy-conversation.entity.js +3 -3
  85. package/dist/modules/buddy/entities/buddy-conversation.entity.js.map +1 -1
  86. package/dist/modules/buddy/entities/buddy-message.entity.js +2 -2
  87. package/dist/modules/buddy/entities/buddy-message.entity.js.map +1 -1
  88. package/dist/modules/buddy/entities/buddy-suggestion.entity.d.ts +19 -0
  89. package/dist/modules/buddy/entities/buddy-suggestion.entity.js +93 -0
  90. package/dist/modules/buddy/entities/buddy-suggestion.entity.js.map +1 -0
  91. package/dist/modules/buddy/listeners/media-activity-event.listener.js +3 -3
  92. package/dist/modules/buddy/listeners/media-activity-event.listener.js.map +1 -1
  93. package/dist/modules/buddy/platforms/llm-provider.platform.d.ts +6 -0
  94. package/dist/modules/buddy/platforms/openai-sdk.utils.d.ts +2 -1
  95. package/dist/modules/buddy/platforms/openai-sdk.utils.js +12 -1
  96. package/dist/modules/buddy/platforms/openai-sdk.utils.js.map +1 -1
  97. package/dist/modules/buddy/services/buddy-context.service.js +2 -2
  98. package/dist/modules/buddy/services/buddy-context.service.js.map +1 -1
  99. package/dist/modules/buddy/services/buddy-conversation.service.js +23 -8
  100. package/dist/modules/buddy/services/buddy-conversation.service.js.map +1 -1
  101. package/dist/modules/buddy/services/buddy-personality.service.d.ts +1 -1
  102. package/dist/modules/buddy/services/buddy-personality.service.js.map +1 -1
  103. package/dist/modules/buddy/services/heartbeat.service.js +2 -2
  104. package/dist/modules/buddy/services/heartbeat.service.js.map +1 -1
  105. package/dist/modules/buddy/services/llm-provider.service.js +2 -10
  106. package/dist/modules/buddy/services/llm-provider.service.js.map +1 -1
  107. package/dist/modules/buddy/services/module-reset.service.d.ts +3 -1
  108. package/dist/modules/buddy/services/module-reset.service.js +6 -1
  109. package/dist/modules/buddy/services/module-reset.service.js.map +1 -1
  110. package/dist/modules/buddy/services/pattern-detector.service.d.ts +4 -1
  111. package/dist/modules/buddy/services/pattern-detector.service.js +10 -3
  112. package/dist/modules/buddy/services/pattern-detector.service.js.map +1 -1
  113. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.d.ts +4 -1
  114. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.js +10 -4
  115. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.js.map +1 -1
  116. package/dist/modules/buddy/services/stt-provider.service.js +2 -10
  117. package/dist/modules/buddy/services/stt-provider.service.js.map +1 -1
  118. package/dist/modules/buddy/services/suggestion-engine.service.d.ts +19 -13
  119. package/dist/modules/buddy/services/suggestion-engine.service.js +170 -103
  120. package/dist/modules/buddy/services/suggestion-engine.service.js.map +1 -1
  121. package/dist/modules/buddy/services/tts-provider.service.js +2 -10
  122. package/dist/modules/buddy/services/tts-provider.service.js.map +1 -1
  123. package/dist/modules/config/config.constants.d.ts +2 -1
  124. package/dist/modules/config/config.constants.js +1 -0
  125. package/dist/modules/config/config.constants.js.map +1 -1
  126. package/dist/modules/config/config.module.d.ts +5 -1
  127. package/dist/modules/config/config.module.js +78 -14
  128. package/dist/modules/config/config.module.js.map +1 -1
  129. package/dist/modules/config/services/config.service.d.ts +1 -0
  130. package/dist/modules/config/services/config.service.js +11 -1
  131. package/dist/modules/config/services/config.service.js.map +1 -1
  132. package/dist/modules/dashboard/dashboard.module.js +21 -18
  133. package/dist/modules/dashboard/dashboard.module.js.map +1 -1
  134. package/dist/modules/dashboard/entities/dashboard.relations.d.ts +1 -5
  135. package/dist/modules/devices/devices.module.js +24 -16
  136. package/dist/modules/devices/devices.module.js.map +1 -1
  137. package/dist/modules/devices/services/device-zones.service.js +2 -2
  138. package/dist/modules/devices/services/device-zones.service.js.map +1 -1
  139. package/dist/modules/devices/services/devices.service.js.map +1 -1
  140. package/dist/modules/displays/displays.constants.d.ts +0 -5
  141. package/dist/modules/displays/displays.constants.js +1 -7
  142. package/dist/modules/displays/displays.constants.js.map +1 -1
  143. package/dist/modules/displays/displays.module.js +27 -23
  144. package/dist/modules/displays/displays.module.js.map +1 -1
  145. package/dist/modules/displays/dto/update-display.dto.d.ts +2 -3
  146. package/dist/modules/displays/dto/update-display.dto.js +4 -19
  147. package/dist/modules/displays/dto/update-display.dto.js.map +1 -1
  148. package/dist/modules/displays/entities/displays.entity.d.ts +3 -4
  149. package/dist/modules/displays/entities/displays.entity.js +8 -25
  150. package/dist/modules/displays/entities/displays.entity.js.map +1 -1
  151. package/dist/modules/displays/services/displays.service.d.ts +4 -2
  152. package/dist/modules/displays/services/displays.service.js +19 -24
  153. package/dist/modules/displays/services/displays.service.js.map +1 -1
  154. package/dist/modules/displays/services/home-resolution.service.d.ts +7 -2
  155. package/dist/modules/displays/services/home-resolution.service.js +50 -6
  156. package/dist/modules/displays/services/home-resolution.service.js.map +1 -1
  157. package/dist/modules/displays/services/space-home-page-resolver-registry.service.d.ts +9 -0
  158. package/dist/modules/displays/services/space-home-page-resolver-registry.service.js +26 -0
  159. package/dist/modules/displays/services/space-home-page-resolver-registry.service.js.map +1 -0
  160. package/dist/modules/displays/services/space-selection-validator-registry.service.d.ts +9 -0
  161. package/dist/modules/displays/services/space-selection-validator-registry.service.js +26 -0
  162. package/dist/modules/displays/services/space-selection-validator-registry.service.js.map +1 -0
  163. package/dist/modules/energy/energy.module.js +29 -15
  164. package/dist/modules/energy/energy.module.js.map +1 -1
  165. package/dist/modules/extensions/controllers/actions.controller.d.ts +9 -4
  166. package/dist/modules/extensions/controllers/actions.controller.js +63 -10
  167. package/dist/modules/extensions/controllers/actions.controller.js.map +1 -1
  168. package/dist/modules/extensions/extensions.module.js +31 -28
  169. package/dist/modules/extensions/extensions.module.js.map +1 -1
  170. package/dist/modules/extensions/extensions.openapi.d.ts +3 -3
  171. package/dist/modules/extensions/extensions.openapi.js +2 -0
  172. package/dist/modules/extensions/extensions.openapi.js.map +1 -1
  173. package/dist/modules/extensions/models/action.model.d.ts +13 -0
  174. package/dist/modules/extensions/models/action.model.js +89 -3
  175. package/dist/modules/extensions/models/action.model.js.map +1 -1
  176. package/dist/modules/extensions/models/actions-response.model.d.ts +4 -1
  177. package/dist/modules/extensions/models/actions-response.model.js +19 -1
  178. package/dist/modules/extensions/models/actions-response.model.js.map +1 -1
  179. package/dist/modules/extensions/models/extension.model.js +5 -0
  180. package/dist/modules/extensions/models/extension.model.js.map +1 -1
  181. package/dist/modules/extensions/models/service-status.model.js +7 -0
  182. package/dist/modules/extensions/models/service-status.model.js.map +1 -1
  183. package/dist/modules/extensions/services/action-audit.service.d.ts +21 -0
  184. package/dist/modules/extensions/services/action-audit.service.js +49 -0
  185. package/dist/modules/extensions/services/action-audit.service.js.map +1 -0
  186. package/dist/modules/extensions/services/base-managed-plugin.service.d.ts +11 -0
  187. package/dist/modules/extensions/services/base-managed-plugin.service.js +28 -0
  188. package/dist/modules/extensions/services/base-managed-plugin.service.js.map +1 -0
  189. package/dist/modules/extensions/services/extension-action-registry.service.d.ts +6 -1
  190. package/dist/modules/extensions/services/extension-action-registry.service.js +22 -3
  191. package/dist/modules/extensions/services/extension-action-registry.service.js.map +1 -1
  192. package/dist/modules/extensions/services/extension-action.interface.d.ts +3 -0
  193. package/dist/modules/extensions/services/extension-action.interface.js +3 -1
  194. package/dist/modules/extensions/services/extension-action.interface.js.map +1 -1
  195. package/dist/modules/intents/intents.module.js +27 -26
  196. package/dist/modules/intents/intents.module.js.map +1 -1
  197. package/dist/modules/mdns/mdns.module.js +24 -19
  198. package/dist/modules/mdns/mdns.module.js.map +1 -1
  199. package/dist/modules/platform/dto/system-info.dto.d.ts +2 -0
  200. package/dist/modules/platform/dto/system-info.dto.js +7 -0
  201. package/dist/modules/platform/dto/system-info.dto.js.map +1 -1
  202. package/dist/modules/platform/platform.module.js +25 -17
  203. package/dist/modules/platform/platform.module.js.map +1 -1
  204. package/dist/modules/platform/platforms/abstract.platform.d.ts +44 -0
  205. package/dist/modules/platform/platforms/abstract.platform.js +267 -0
  206. package/dist/modules/platform/platforms/abstract.platform.js.map +1 -1
  207. package/dist/modules/platform/platforms/docker.platform.d.ts +2 -0
  208. package/dist/modules/platform/platforms/docker.platform.js +3 -0
  209. package/dist/modules/platform/platforms/docker.platform.js.map +1 -1
  210. package/dist/modules/platform/platforms/generic.platform.d.ts +2 -1
  211. package/dist/modules/platform/platforms/generic.platform.js +17 -15
  212. package/dist/modules/platform/platforms/generic.platform.js.map +1 -1
  213. package/dist/modules/platform/platforms/home-assistant.platform.d.ts +4 -0
  214. package/dist/modules/platform/platforms/home-assistant.platform.js +21 -0
  215. package/dist/modules/platform/platforms/home-assistant.platform.js.map +1 -1
  216. package/dist/modules/platform/platforms/raspberry.platform.js +22 -40
  217. package/dist/modules/platform/platforms/raspberry.platform.js.map +1 -1
  218. package/dist/modules/platform/services/platform.service.d.ts +2 -0
  219. package/dist/modules/platform/services/platform.service.js +7 -0
  220. package/dist/modules/platform/services/platform.service.js.map +1 -1
  221. package/dist/modules/scenes/scenes.module.js +18 -18
  222. package/dist/modules/scenes/scenes.module.js.map +1 -1
  223. package/dist/modules/security/security.module.js +22 -17
  224. package/dist/modules/security/security.module.js.map +1 -1
  225. package/dist/modules/spaces/controllers/spaces.controller.d.ts +5 -115
  226. package/dist/modules/spaces/controllers/spaces.controller.js +22 -1922
  227. package/dist/modules/spaces/controllers/spaces.controller.js.map +1 -1
  228. package/dist/modules/spaces/dto/create-space.dto.d.ts +1 -5
  229. package/dist/modules/spaces/dto/create-space.dto.js +0 -61
  230. package/dist/modules/spaces/dto/create-space.dto.js.map +1 -1
  231. package/dist/modules/spaces/dto/update-space.dto.d.ts +1 -5
  232. package/dist/modules/spaces/dto/update-space.dto.js +0 -61
  233. package/dist/modules/spaces/dto/update-space.dto.js.map +1 -1
  234. package/dist/modules/spaces/entities/space-role.entity.d.ts +8 -0
  235. package/dist/modules/spaces/entities/space-role.entity.js +58 -0
  236. package/dist/modules/spaces/entities/space-role.entity.js.map +1 -0
  237. package/dist/modules/spaces/entities/space.entity.d.ts +3 -6
  238. package/dist/modules/spaces/entities/space.entity.js +11 -74
  239. package/dist/modules/spaces/entities/space.entity.js.map +1 -1
  240. package/dist/modules/spaces/entities/space.relations.d.ts +11 -0
  241. package/dist/modules/spaces/entities/space.relations.js +3 -0
  242. package/dist/modules/spaces/entities/space.relations.js.map +1 -0
  243. package/dist/modules/spaces/models/spaces-response.model.d.ts +1 -522
  244. package/dist/modules/spaces/models/spaces-response.model.js +23 -4150
  245. package/dist/modules/spaces/models/spaces-response.model.js.map +1 -1
  246. package/dist/modules/spaces/services/space-create-builder-registry.service.d.ts +6 -0
  247. package/dist/modules/spaces/services/space-create-builder-registry.service.js +26 -0
  248. package/dist/modules/spaces/services/space-create-builder-registry.service.js.map +1 -0
  249. package/dist/modules/spaces/services/space-relations-loader-registry.service.d.ts +6 -0
  250. package/dist/modules/spaces/services/space-relations-loader-registry.service.js +26 -0
  251. package/dist/modules/spaces/services/space-relations-loader-registry.service.js.map +1 -0
  252. package/dist/modules/spaces/services/space-roles-type-mapper.service.d.ts +12 -0
  253. package/dist/modules/spaces/services/space-roles-type-mapper.service.js +39 -0
  254. package/dist/modules/spaces/services/space-roles-type-mapper.service.js.map +1 -0
  255. package/dist/modules/spaces/services/spaces-type-mapper.service.d.ts +17 -0
  256. package/dist/modules/spaces/services/spaces-type-mapper.service.js +36 -0
  257. package/dist/modules/spaces/services/spaces-type-mapper.service.js.map +1 -0
  258. package/dist/modules/spaces/services/spaces.service.d.ts +4 -12
  259. package/dist/modules/spaces/services/spaces.service.js +120 -160
  260. package/dist/modules/spaces/services/spaces.service.js.map +1 -1
  261. package/dist/modules/spaces/spaces.constants.d.ts +13 -292
  262. package/dist/modules/spaces/spaces.constants.js +13 -1449
  263. package/dist/modules/spaces/spaces.constants.js.map +1 -1
  264. package/dist/modules/spaces/spaces.module.d.ts +2 -9
  265. package/dist/modules/spaces/spaces.module.js +51 -108
  266. package/dist/modules/spaces/spaces.module.js.map +1 -1
  267. package/dist/modules/spaces/spaces.openapi.d.ts +3 -16
  268. package/dist/modules/spaces/spaces.openapi.js +0 -136
  269. package/dist/modules/spaces/spaces.openapi.js.map +1 -1
  270. package/dist/modules/stats/controllers/prometheus.controller.js +0 -2
  271. package/dist/modules/stats/controllers/prometheus.controller.js.map +1 -1
  272. package/dist/modules/storage/models/config.model.js +2 -4
  273. package/dist/modules/storage/models/config.model.js.map +1 -1
  274. package/dist/modules/storage/services/storage.service.d.ts +4 -10
  275. package/dist/modules/storage/services/storage.service.js +21 -60
  276. package/dist/modules/storage/services/storage.service.js.map +1 -1
  277. package/dist/modules/storage/storage.constants.d.ts +2 -0
  278. package/dist/modules/storage/storage.constants.js +3 -1
  279. package/dist/modules/storage/storage.constants.js.map +1 -1
  280. package/dist/modules/storage/storage.module.js +26 -7
  281. package/dist/modules/storage/storage.module.js.map +1 -1
  282. package/dist/modules/swagger/commands/serve-swagger.command.d.ts +14 -0
  283. package/dist/modules/swagger/commands/serve-swagger.command.js +60 -0
  284. package/dist/modules/swagger/commands/serve-swagger.command.js.map +1 -0
  285. package/dist/modules/swagger/swagger.module.js +2 -0
  286. package/dist/modules/swagger/swagger.module.js.map +1 -1
  287. package/dist/modules/system/backup-contribution.module.d.ts +2 -0
  288. package/dist/modules/system/backup-contribution.module.js +22 -0
  289. package/dist/modules/system/backup-contribution.module.js.map +1 -0
  290. package/dist/modules/system/controllers/backup.controller.d.ts +17 -0
  291. package/dist/modules/system/controllers/backup.controller.js +308 -0
  292. package/dist/modules/system/controllers/backup.controller.js.map +1 -0
  293. package/dist/modules/system/dto/create-backup.dto.d.ts +6 -0
  294. package/dist/modules/system/dto/create-backup.dto.js +43 -0
  295. package/dist/modules/system/dto/create-backup.dto.js.map +1 -0
  296. package/dist/modules/system/models/backup-response.model.d.ts +8 -0
  297. package/dist/modules/system/models/backup-response.model.js +46 -0
  298. package/dist/modules/system/models/backup-response.model.js.map +1 -0
  299. package/dist/modules/system/models/backup.model.d.ts +14 -0
  300. package/dist/modules/system/models/backup.model.js +103 -0
  301. package/dist/modules/system/models/backup.model.js.map +1 -0
  302. package/dist/modules/system/models/system.model.d.ts +3 -1
  303. package/dist/modules/system/models/system.model.js +26 -0
  304. package/dist/modules/system/models/system.model.js.map +1 -1
  305. package/dist/modules/system/scripts/update-worker.sh +304 -0
  306. package/dist/modules/system/services/backup-contribution-registry.service.d.ts +24 -0
  307. package/dist/modules/system/services/backup-contribution-registry.service.js +52 -0
  308. package/dist/modules/system/services/backup-contribution-registry.service.js.map +1 -0
  309. package/dist/modules/system/services/backup.service.d.ts +52 -0
  310. package/dist/modules/system/services/backup.service.js +630 -0
  311. package/dist/modules/system/services/backup.service.js.map +1 -0
  312. package/dist/modules/system/services/house-mode-actions.service.d.ts +1 -1
  313. package/dist/modules/system/services/house-mode-actions.service.js +5 -5
  314. package/dist/modules/system/services/house-mode-actions.service.js.map +1 -1
  315. package/dist/modules/system/services/system-command.service.d.ts +7 -1
  316. package/dist/modules/system/services/system-command.service.js +24 -4
  317. package/dist/modules/system/services/system-command.service.js.map +1 -1
  318. package/dist/modules/system/services/system.service.js +4 -1
  319. package/dist/modules/system/services/system.service.js.map +1 -1
  320. package/dist/modules/system/services/update-executor.service.d.ts +4 -0
  321. package/dist/modules/system/services/update-executor.service.js +130 -10
  322. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  323. package/dist/modules/system/system.constants.d.ts +7 -0
  324. package/dist/modules/system/system.constants.js +9 -1
  325. package/dist/modules/system/system.constants.js.map +1 -1
  326. package/dist/modules/system/system.module.d.ts +5 -1
  327. package/dist/modules/system/system.module.js +95 -31
  328. package/dist/modules/system/system.module.js.map +1 -1
  329. package/dist/modules/system/system.openapi.d.ts +4 -1
  330. package/dist/modules/system/system.openapi.js +8 -0
  331. package/dist/modules/system/system.openapi.js.map +1 -1
  332. package/dist/modules/users/controllers/users.controller.js +9 -0
  333. package/dist/modules/users/controllers/users.controller.js.map +1 -1
  334. package/dist/modules/users/dto/create-user.dto.js +1 -0
  335. package/dist/modules/users/dto/create-user.dto.js.map +1 -1
  336. package/dist/modules/users/dto/update-user.dto.d.ts +1 -0
  337. package/dist/modules/users/dto/update-user.dto.js +15 -1
  338. package/dist/modules/users/dto/update-user.dto.js.map +1 -1
  339. package/dist/modules/users/services/users.service.d.ts +1 -0
  340. package/dist/modules/users/services/users.service.js +12 -2
  341. package/dist/modules/users/services/users.service.js.map +1 -1
  342. package/dist/modules/users/users.constants.d.ts +3 -0
  343. package/dist/modules/users/users.constants.js +35 -1
  344. package/dist/modules/users/users.constants.js.map +1 -1
  345. package/dist/modules/users/users.module.js +29 -13
  346. package/dist/modules/users/users.module.js.map +1 -1
  347. package/dist/modules/weather/weather.module.js +20 -18
  348. package/dist/modules/weather/weather.module.js.map +1 -1
  349. package/dist/modules/websocket/dto/client-user.dto.js +25 -0
  350. package/dist/modules/websocket/dto/client-user.dto.js.map +1 -1
  351. package/dist/modules/websocket/dto/ws-client.dto.js +26 -0
  352. package/dist/modules/websocket/dto/ws-client.dto.js.map +1 -1
  353. package/dist/modules/websocket/gateway/websocket.gateway.d.ts +2 -2
  354. package/dist/modules/websocket/gateway/websocket.gateway.js +27 -9
  355. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  356. package/dist/modules/websocket/services/command-event-registry.service.d.ts +3 -1
  357. package/dist/modules/websocket/services/command-event-registry.service.js +5 -4
  358. package/dist/modules/websocket/services/command-event-registry.service.js.map +1 -1
  359. package/dist/plugins/buddy-claude/buddy-claude.plugin.js +24 -11
  360. package/dist/plugins/buddy-claude/buddy-claude.plugin.js.map +1 -1
  361. package/dist/plugins/buddy-claude-setup-token/buddy-claude-setup-token.plugin.js +21 -11
  362. package/dist/plugins/buddy-claude-setup-token/buddy-claude-setup-token.plugin.js.map +1 -1
  363. package/dist/plugins/buddy-discord/buddy-discord.plugin.js +28 -16
  364. package/dist/plugins/buddy-discord/buddy-discord.plugin.js.map +1 -1
  365. package/dist/plugins/buddy-elevenlabs/buddy-elevenlabs.plugin.js +22 -11
  366. package/dist/plugins/buddy-elevenlabs/buddy-elevenlabs.plugin.js.map +1 -1
  367. package/dist/plugins/buddy-ollama/buddy-ollama.plugin.js +28 -12
  368. package/dist/plugins/buddy-ollama/buddy-ollama.plugin.js.map +1 -1
  369. package/dist/plugins/buddy-openai/buddy-openai.plugin.js +24 -15
  370. package/dist/plugins/buddy-openai/buddy-openai.plugin.js.map +1 -1
  371. package/dist/plugins/buddy-openai/platforms/openai.provider.js +1 -0
  372. package/dist/plugins/buddy-openai/platforms/openai.provider.js.map +1 -1
  373. package/dist/plugins/buddy-openai-codex/buddy-openai-codex.plugin.js +26 -15
  374. package/dist/plugins/buddy-openai-codex/buddy-openai-codex.plugin.js.map +1 -1
  375. package/dist/plugins/buddy-stt-whisper-local/buddy-stt-whisper-local.plugin.js +23 -9
  376. package/dist/plugins/buddy-stt-whisper-local/buddy-stt-whisper-local.plugin.js.map +1 -1
  377. package/dist/plugins/buddy-system-tts/buddy-system-tts.plugin.js +21 -10
  378. package/dist/plugins/buddy-system-tts/buddy-system-tts.plugin.js.map +1 -1
  379. package/dist/plugins/buddy-telegram/buddy-telegram.plugin.js +22 -11
  380. package/dist/plugins/buddy-telegram/buddy-telegram.plugin.js.map +1 -1
  381. package/dist/plugins/buddy-voiceai/buddy-voiceai.plugin.js +22 -12
  382. package/dist/plugins/buddy-voiceai/buddy-voiceai.plugin.js.map +1 -1
  383. package/dist/plugins/buddy-whatsapp/buddy-whatsapp.plugin.js +24 -12
  384. package/dist/plugins/buddy-whatsapp/buddy-whatsapp.plugin.js.map +1 -1
  385. package/dist/plugins/buddy-whatsapp/controllers/whatsapp-webhook.controller.d.ts +2 -2
  386. package/dist/plugins/buddy-whatsapp/controllers/whatsapp-webhook.controller.js +3 -3
  387. package/dist/plugins/buddy-whatsapp/controllers/whatsapp-webhook.controller.js.map +1 -1
  388. package/dist/plugins/buddy-whatsapp/platforms/whatsapp-bot.provider.d.ts +2 -1
  389. package/dist/plugins/buddy-whatsapp/platforms/whatsapp-bot.provider.js +31 -12
  390. package/dist/plugins/buddy-whatsapp/platforms/whatsapp-bot.provider.js.map +1 -1
  391. package/dist/plugins/data-sources-device-channel/data-sources-device-channel.plugin.js +16 -30
  392. package/dist/plugins/data-sources-device-channel/data-sources-device-channel.plugin.js.map +1 -1
  393. package/dist/plugins/data-sources-weather/data-sources-weather.plugin.js +17 -29
  394. package/dist/plugins/data-sources-weather/data-sources-weather.plugin.js.map +1 -1
  395. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js +37 -136
  396. package/dist/plugins/devices-home-assistant/devices-home-assistant.plugin.js.map +1 -1
  397. package/dist/plugins/devices-home-assistant/dto/home-assistant-discovered-helper.dto.js +22 -2
  398. package/dist/plugins/devices-home-assistant/dto/home-assistant-discovered-helper.dto.js.map +1 -1
  399. package/dist/plugins/devices-home-assistant/models/config.model.d.ts +1 -0
  400. package/dist/plugins/devices-home-assistant/models/config.model.js +12 -0
  401. package/dist/plugins/devices-home-assistant/models/config.model.js.map +1 -1
  402. package/dist/plugins/devices-home-assistant/platforms/home-assistant.device.platform.d.ts +3 -1
  403. package/dist/plugins/devices-home-assistant/platforms/home-assistant.device.platform.js +11 -2
  404. package/dist/plugins/devices-home-assistant/platforms/home-assistant.device.platform.js.map +1 -1
  405. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js +0 -6
  406. package/dist/plugins/devices-home-assistant/services/ha-mdns-discoverer.service.js.map +1 -1
  407. package/dist/plugins/devices-home-assistant/services/ha-supervisor.service.d.ts +10 -0
  408. package/dist/plugins/devices-home-assistant/services/ha-supervisor.service.js +47 -0
  409. package/dist/plugins/devices-home-assistant/services/ha-supervisor.service.js.map +1 -0
  410. package/dist/plugins/devices-home-assistant/services/home-assistant-config-validator.service.d.ts +3 -1
  411. package/dist/plugins/devices-home-assistant/services/home-assistant-config-validator.service.js +8 -2
  412. package/dist/plugins/devices-home-assistant/services/home-assistant-config-validator.service.js.map +1 -1
  413. package/dist/plugins/devices-home-assistant/services/home-assistant.http.service.d.ts +5 -1
  414. package/dist/plugins/devices-home-assistant/services/home-assistant.http.service.js +27 -7
  415. package/dist/plugins/devices-home-assistant/services/home-assistant.http.service.js.map +1 -1
  416. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.d.ts +9 -7
  417. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js +58 -24
  418. package/dist/plugins/devices-home-assistant/services/home-assistant.ws.service.js.map +1 -1
  419. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js +1 -0
  420. package/dist/plugins/devices-home-assistant/services/state-changed.event.service.js.map +1 -1
  421. package/dist/plugins/devices-reterminal/devices-reterminal.plugin.js +20 -17
  422. package/dist/plugins/devices-reterminal/devices-reterminal.plugin.js.map +1 -1
  423. package/dist/plugins/devices-shelly-ng/controllers/shelly-ng-devices.controller.d.ts +7 -2
  424. package/dist/plugins/devices-shelly-ng/controllers/shelly-ng-devices.controller.js +83 -2
  425. package/dist/plugins/devices-shelly-ng/controllers/shelly-ng-devices.controller.js.map +1 -1
  426. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.d.ts +4 -0
  427. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +86 -11
  428. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  429. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +8 -0
  430. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +45 -0
  431. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  432. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.openapi.d.ts +3 -3
  433. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.openapi.js +4 -0
  434. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.openapi.js.map +1 -1
  435. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.d.ts +6 -1
  436. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js +72 -21
  437. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.plugin.js.map +1 -1
  438. package/dist/plugins/devices-shelly-ng/dto/update-config.dto.d.ts +1 -0
  439. package/dist/plugins/devices-shelly-ng/dto/update-config.dto.js +24 -6
  440. package/dist/plugins/devices-shelly-ng/dto/update-config.dto.js.map +1 -1
  441. package/dist/plugins/devices-shelly-ng/entities/devices-shelly-ng.entity.js +12 -0
  442. package/dist/plugins/devices-shelly-ng/entities/devices-shelly-ng.entity.js.map +1 -1
  443. package/dist/plugins/devices-shelly-ng/entities/shelly-ng-device-address.entity.js +2 -0
  444. package/dist/plugins/devices-shelly-ng/entities/shelly-ng-device-address.entity.js.map +1 -1
  445. package/dist/plugins/devices-shelly-ng/models/config.model.d.ts +1 -0
  446. package/dist/plugins/devices-shelly-ng/models/config.model.js +18 -6
  447. package/dist/plugins/devices-shelly-ng/models/config.model.js.map +1 -1
  448. package/dist/plugins/devices-shelly-ng/models/shelly-ng-response.model.d.ts +4 -1
  449. package/dist/plugins/devices-shelly-ng/models/shelly-ng-response.model.js +15 -1
  450. package/dist/plugins/devices-shelly-ng/models/shelly-ng-response.model.js.map +1 -1
  451. package/dist/plugins/devices-shelly-ng/models/shelly-ng.model.d.ts +30 -0
  452. package/dist/plugins/devices-shelly-ng/models/shelly-ng.model.js +269 -1
  453. package/dist/plugins/devices-shelly-ng/models/shelly-ng.model.js.map +1 -1
  454. package/dist/plugins/devices-shelly-ng/services/device-manager.service.js.map +1 -1
  455. package/dist/plugins/devices-shelly-ng/services/shelly-ng-discovery.service.d.ts +64 -0
  456. package/dist/plugins/devices-shelly-ng/services/shelly-ng-discovery.service.js +301 -0
  457. package/dist/plugins/devices-shelly-ng/services/shelly-ng-discovery.service.js.map +1 -0
  458. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.d.ts +17 -7
  459. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +110 -15
  460. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  461. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.d.ts +5 -0
  462. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js +3 -0
  463. package/dist/plugins/devices-shelly-ng/services/shelly-rpc-client.service.js.map +1 -1
  464. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.d.ts +28 -0
  465. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js +197 -0
  466. package/dist/plugins/devices-shelly-ng/services/shelly-ws-server.service.js.map +1 -0
  467. package/dist/plugins/devices-shelly-v1/controllers/shelly-v1-devices.controller.d.ts +7 -2
  468. package/dist/plugins/devices-shelly-v1/controllers/shelly-v1-devices.controller.js +83 -2
  469. package/dist/plugins/devices-shelly-v1/controllers/shelly-v1-devices.controller.js.map +1 -1
  470. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.openapi.d.ts +3 -3
  471. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.openapi.js +4 -0
  472. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.openapi.js.map +1 -1
  473. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js +27 -23
  474. package/dist/plugins/devices-shelly-v1/devices-shelly-v1.plugin.js.map +1 -1
  475. package/dist/plugins/devices-shelly-v1/models/shelly-v1-response.model.d.ts +4 -1
  476. package/dist/plugins/devices-shelly-v1/models/shelly-v1-response.model.js +15 -1
  477. package/dist/plugins/devices-shelly-v1/models/shelly-v1-response.model.js.map +1 -1
  478. package/dist/plugins/devices-shelly-v1/models/shelly-v1.model.d.ts +31 -0
  479. package/dist/plugins/devices-shelly-v1/models/shelly-v1.model.js +279 -1
  480. package/dist/plugins/devices-shelly-v1/models/shelly-v1.model.js.map +1 -1
  481. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.d.ts +0 -1
  482. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js +2 -9
  483. package/dist/plugins/devices-shelly-v1/platforms/shelly-v1.device.platform.js.map +1 -1
  484. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.d.ts +0 -1
  485. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js +2 -15
  486. package/dist/plugins/devices-shelly-v1/services/device-mapper.service.js.map +1 -1
  487. package/dist/plugins/devices-shelly-v1/services/shellies-adapter.service.d.ts +9 -2
  488. package/dist/plugins/devices-shelly-v1/services/shellies-adapter.service.js +93 -20
  489. package/dist/plugins/devices-shelly-v1/services/shellies-adapter.service.js.map +1 -1
  490. package/dist/plugins/devices-shelly-v1/services/shelly-v1-discovery.service.d.ts +62 -0
  491. package/dist/plugins/devices-shelly-v1/services/shelly-v1-discovery.service.js +314 -0
  492. package/dist/plugins/devices-shelly-v1/services/shelly-v1-discovery.service.js.map +1 -0
  493. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.d.ts +3 -6
  494. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js +13 -37
  495. package/dist/plugins/devices-shelly-v1/services/shelly-v1.service.js.map +1 -1
  496. package/dist/plugins/devices-shelly-v1/utils/descriptor.utils.d.ts +2 -0
  497. package/dist/plugins/devices-shelly-v1/utils/descriptor.utils.js +23 -0
  498. package/dist/plugins/devices-shelly-v1/utils/descriptor.utils.js.map +1 -0
  499. package/dist/plugins/devices-third-party/devices-third-party.plugin.js +19 -23
  500. package/dist/plugins/devices-third-party/devices-third-party.plugin.js.map +1 -1
  501. package/dist/plugins/devices-wled/devices-wled.plugin.js +30 -20
  502. package/dist/plugins/devices-wled/devices-wled.plugin.js.map +1 -1
  503. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js +0 -6
  504. package/dist/plugins/devices-wled/services/wled-mdns-discoverer.service.js.map +1 -1
  505. package/dist/plugins/devices-wled/services/wled.service.d.ts +3 -6
  506. package/dist/plugins/devices-wled/services/wled.service.js +3 -20
  507. package/dist/plugins/devices-wled/services/wled.service.js.map +1 -1
  508. package/dist/plugins/devices-zigbee2mqtt/controllers/zigbee2mqtt-wizard.controller.d.ts +14 -0
  509. package/dist/plugins/devices-zigbee2mqtt/controllers/zigbee2mqtt-wizard.controller.js +185 -0
  510. package/dist/plugins/devices-zigbee2mqtt/controllers/zigbee2mqtt-wizard.controller.js.map +1 -0
  511. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.d.ts +5 -3
  512. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.js +12 -0
  513. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.openapi.js.map +1 -1
  514. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.plugin.js +43 -54
  515. package/dist/plugins/devices-zigbee2mqtt/devices-zigbee2mqtt.plugin.js.map +1 -1
  516. package/dist/plugins/devices-zigbee2mqtt/dto/wizard-adopt.dto.d.ts +12 -0
  517. package/dist/plugins/devices-zigbee2mqtt/dto/wizard-adopt.dto.js +73 -0
  518. package/dist/plugins/devices-zigbee2mqtt/dto/wizard-adopt.dto.js.map +1 -0
  519. package/dist/plugins/devices-zigbee2mqtt/models/wizard.model.d.ts +38 -0
  520. package/dist/plugins/devices-zigbee2mqtt/models/wizard.model.js +259 -0
  521. package/dist/plugins/devices-zigbee2mqtt/models/wizard.model.js.map +1 -0
  522. package/dist/plugins/devices-zigbee2mqtt/models/zigbee2mqtt-response.model.d.ts +7 -0
  523. package/dist/plugins/devices-zigbee2mqtt/models/zigbee2mqtt-response.model.js +30 -1
  524. package/dist/plugins/devices-zigbee2mqtt/models/zigbee2mqtt-response.model.js.map +1 -1
  525. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.d.ts +1 -0
  526. package/dist/plugins/devices-zigbee2mqtt/services/base-client-adapter.js.map +1 -1
  527. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.d.ts +1 -0
  528. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js +22 -0
  529. package/dist/plugins/devices-zigbee2mqtt/services/mqtt-client-adapter.service.js.map +1 -1
  530. package/dist/plugins/devices-zigbee2mqtt/services/wizard.service.d.ts +70 -0
  531. package/dist/plugins/devices-zigbee2mqtt/services/wizard.service.js +361 -0
  532. package/dist/plugins/devices-zigbee2mqtt/services/wizard.service.js.map +1 -0
  533. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.d.ts +1 -0
  534. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.js +23 -0
  535. package/dist/plugins/devices-zigbee2mqtt/services/ws-client-adapter.service.js.map +1 -1
  536. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.d.ts +10 -7
  537. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js +46 -22
  538. package/dist/plugins/devices-zigbee2mqtt/services/zigbee2mqtt.service.js.map +1 -1
  539. package/dist/{modules/storage/plugins/influx-v1/influx-v1.update-config.dto.d.ts → plugins/influx-v1/dto/update-config.dto.d.ts} +1 -1
  540. package/dist/{modules/storage/plugins/influx-v1/influx-v1.update-config.dto.js → plugins/influx-v1/dto/update-config.dto.js} +3 -3
  541. package/dist/plugins/influx-v1/dto/update-config.dto.js.map +1 -0
  542. package/dist/plugins/influx-v1/influx-v1.constants.js.map +1 -0
  543. package/dist/{modules/storage/plugins → plugins}/influx-v1/influx-v1.openapi.d.ts +1 -1
  544. package/dist/plugins/influx-v1/influx-v1.openapi.js +7 -0
  545. package/dist/plugins/influx-v1/influx-v1.openapi.js.map +1 -0
  546. package/dist/plugins/influx-v1/influx-v1.plugin.d.ts +15 -0
  547. package/dist/plugins/influx-v1/influx-v1.plugin.js +109 -0
  548. package/dist/plugins/influx-v1/influx-v1.plugin.js.map +1 -0
  549. package/dist/{modules/storage/plugins/influx-v1/influx-v1.config.model.d.ts → plugins/influx-v1/models/config.model.d.ts} +1 -1
  550. package/dist/{modules/storage/plugins/influx-v1/influx-v1.config.model.js → plugins/influx-v1/models/config.model.js} +3 -3
  551. package/dist/plugins/influx-v1/models/config.model.js.map +1 -0
  552. package/dist/plugins/influx-v1/services/influx-v1-managed.service.d.ts +20 -0
  553. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js +128 -0
  554. package/dist/plugins/influx-v1/services/influx-v1-managed.service.js.map +1 -0
  555. package/dist/{modules/storage/plugins/influx-v1/influx-v1.plugin.d.ts → plugins/influx-v1/services/influx-v1.storage.d.ts} +3 -3
  556. package/dist/{modules/storage/plugins/influx-v1/influx-v1.plugin.js → plugins/influx-v1/services/influx-v1.storage.js} +9 -9
  557. package/dist/plugins/influx-v1/services/influx-v1.storage.js.map +1 -0
  558. package/dist/plugins/influx-v2/dto/update-config.dto.d.ts +8 -0
  559. package/dist/plugins/influx-v2/dto/update-config.dto.js +82 -0
  560. package/dist/plugins/influx-v2/dto/update-config.dto.js.map +1 -0
  561. package/dist/plugins/influx-v2/influx-v2.constants.d.ts +4 -0
  562. package/dist/plugins/influx-v2/influx-v2.constants.js +8 -0
  563. package/dist/plugins/influx-v2/influx-v2.constants.js.map +1 -0
  564. package/dist/plugins/influx-v2/influx-v2.openapi.d.ts +2 -0
  565. package/dist/plugins/influx-v2/influx-v2.openapi.js +7 -0
  566. package/dist/plugins/influx-v2/influx-v2.openapi.js.map +1 -0
  567. package/dist/plugins/influx-v2/influx-v2.plugin.d.ts +15 -0
  568. package/dist/plugins/influx-v2/influx-v2.plugin.js +109 -0
  569. package/dist/plugins/influx-v2/influx-v2.plugin.js.map +1 -0
  570. package/dist/plugins/influx-v2/models/config.model.d.ts +9 -0
  571. package/dist/plugins/influx-v2/models/config.model.js +93 -0
  572. package/dist/plugins/influx-v2/models/config.model.js.map +1 -0
  573. package/dist/plugins/influx-v2/services/influx-v2-managed.service.d.ts +20 -0
  574. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js +132 -0
  575. package/dist/plugins/influx-v2/services/influx-v2-managed.service.js.map +1 -0
  576. package/dist/plugins/influx-v2/services/influx-v2.storage.d.ts +33 -0
  577. package/dist/plugins/influx-v2/services/influx-v2.storage.js +230 -0
  578. package/dist/plugins/influx-v2/services/influx-v2.storage.js.map +1 -0
  579. package/dist/plugins/logger-rotating-file/logger-rotating-file.plugin.js +20 -29
  580. package/dist/plugins/logger-rotating-file/logger-rotating-file.plugin.js.map +1 -1
  581. package/dist/{modules/storage/plugins/memory/memory.update-config.dto.d.ts → plugins/memory-storage/dto/update-config.dto.d.ts} +1 -1
  582. package/dist/{modules/storage/plugins/memory/memory.update-config.dto.js → plugins/memory-storage/dto/update-config.dto.js} +5 -5
  583. package/dist/plugins/memory-storage/dto/update-config.dto.js.map +1 -0
  584. package/dist/{modules/storage/plugins/memory/memory.constants.js → plugins/memory-storage/memory-storage.constants.js} +1 -1
  585. package/dist/plugins/memory-storage/memory-storage.constants.js.map +1 -0
  586. package/dist/{modules/storage/plugins/memory/memory.openapi.d.ts → plugins/memory-storage/memory-storage.openapi.d.ts} +1 -1
  587. package/dist/plugins/memory-storage/memory-storage.openapi.js +7 -0
  588. package/dist/plugins/memory-storage/memory-storage.openapi.js.map +1 -0
  589. package/dist/plugins/memory-storage/memory-storage.plugin.d.ts +15 -0
  590. package/dist/plugins/memory-storage/memory-storage.plugin.js +92 -0
  591. package/dist/plugins/memory-storage/memory-storage.plugin.js.map +1 -0
  592. package/dist/{modules/storage/plugins/memory/memory.config.model.d.ts → plugins/memory-storage/models/config.model.d.ts} +1 -1
  593. package/dist/{modules/storage/plugins/memory/memory.config.model.js → plugins/memory-storage/models/config.model.js} +5 -5
  594. package/dist/plugins/memory-storage/models/config.model.js.map +1 -0
  595. package/dist/{modules/storage/plugins/memory → plugins/memory-storage/services}/in-memory-timeseries.store.d.ts +1 -1
  596. package/dist/{modules/storage/plugins/memory → plugins/memory-storage/services}/in-memory-timeseries.store.js +4 -4
  597. package/dist/plugins/memory-storage/services/in-memory-timeseries.store.js.map +1 -0
  598. package/dist/plugins/memory-storage/services/influxql-parser.js.map +1 -0
  599. package/dist/plugins/memory-storage/services/memory-storage-managed.service.d.ts +14 -0
  600. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js +87 -0
  601. package/dist/plugins/memory-storage/services/memory-storage-managed.service.js.map +1 -0
  602. package/dist/{modules/storage/plugins/memory/memory.plugin.d.ts → plugins/memory-storage/services/memory-storage.storage.d.ts} +3 -3
  603. package/dist/{modules/storage/plugins/memory/memory.plugin.js → plugins/memory-storage/services/memory-storage.storage.js} +8 -8
  604. package/dist/plugins/memory-storage/services/memory-storage.storage.js.map +1 -0
  605. package/dist/plugins/pages-cards/pages-cards.plugin.js +15 -26
  606. package/dist/plugins/pages-cards/pages-cards.plugin.js.map +1 -1
  607. package/dist/plugins/pages-device-detail/pages-device-detail.plugin.js +16 -25
  608. package/dist/plugins/pages-device-detail/pages-device-detail.plugin.js.map +1 -1
  609. package/dist/plugins/pages-tiles/pages-tiles.plugin.js +15 -26
  610. package/dist/plugins/pages-tiles/pages-tiles.plugin.js.map +1 -1
  611. package/dist/plugins/scenes-local/scenes-local.plugin.js +21 -22
  612. package/dist/plugins/scenes-local/scenes-local.plugin.js.map +1 -1
  613. package/dist/plugins/simulator/services/scenario-executor.service.d.ts +5 -5
  614. package/dist/plugins/simulator/services/scenario-executor.service.js +7 -6
  615. package/dist/plugins/simulator/services/scenario-executor.service.js.map +1 -1
  616. package/dist/plugins/simulator/services/simulator-actions.service.js +3 -0
  617. package/dist/plugins/simulator/services/simulator-actions.service.js.map +1 -1
  618. package/dist/plugins/simulator/simulator.plugin.js +49 -58
  619. package/dist/plugins/simulator/simulator.plugin.js.map +1 -1
  620. package/dist/plugins/spaces-home-control/controllers/spaces-domain.controller.d.ts +119 -0
  621. package/dist/plugins/spaces-home-control/controllers/spaces-domain.controller.js +1958 -0
  622. package/dist/plugins/spaces-home-control/controllers/spaces-domain.controller.js.map +1 -0
  623. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/climate-intent.dto.d.ts +1 -1
  624. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/climate-intent.dto.js +24 -24
  625. package/dist/plugins/spaces-home-control/dto/climate-intent.dto.js.map +1 -0
  626. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/climate-role.dto.d.ts +1 -1
  627. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/climate-role.dto.js +4 -4
  628. package/dist/plugins/spaces-home-control/dto/climate-role.dto.js.map +1 -0
  629. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/covers-intent.dto.d.ts +1 -1
  630. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/covers-intent.dto.js +18 -18
  631. package/dist/plugins/spaces-home-control/dto/covers-intent.dto.js.map +1 -0
  632. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/covers-role.dto.d.ts +1 -1
  633. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/covers-role.dto.js +4 -4
  634. package/dist/plugins/spaces-home-control/dto/covers-role.dto.js.map +1 -0
  635. package/dist/plugins/spaces-home-control/dto/create-home-control-space.dto.d.ts +8 -0
  636. package/dist/plugins/spaces-home-control/dto/create-home-control-space.dto.js +85 -0
  637. package/dist/plugins/spaces-home-control/dto/create-home-control-space.dto.js.map +1 -0
  638. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/lighting-intent.dto.d.ts +1 -1
  639. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/lighting-intent.dto.js +34 -34
  640. package/dist/plugins/spaces-home-control/dto/lighting-intent.dto.js.map +1 -0
  641. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/lighting-role.dto.d.ts +1 -1
  642. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/lighting-role.dto.js +4 -4
  643. package/dist/plugins/spaces-home-control/dto/lighting-role.dto.js.map +1 -0
  644. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/media-activity-binding.dto.d.ts +1 -1
  645. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/media-activity-binding.dto.js +4 -4
  646. package/dist/plugins/spaces-home-control/dto/media-activity-binding.dto.js.map +1 -0
  647. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/sensor-role.dto.d.ts +1 -1
  648. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/sensor-role.dto.js +4 -4
  649. package/dist/plugins/spaces-home-control/dto/sensor-role.dto.js.map +1 -0
  650. package/dist/plugins/spaces-home-control/dto/status-widget.dto.js.map +1 -0
  651. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/suggestion.dto.d.ts +2 -1
  652. package/dist/{modules/spaces → plugins/spaces-home-control}/dto/suggestion.dto.js +5 -4
  653. package/dist/plugins/spaces-home-control/dto/suggestion.dto.js.map +1 -0
  654. package/dist/plugins/spaces-home-control/dto/update-config.dto.d.ts +5 -0
  655. package/dist/plugins/spaces-home-control/dto/update-config.dto.js +34 -0
  656. package/dist/plugins/spaces-home-control/dto/update-config.dto.js.map +1 -0
  657. package/dist/plugins/spaces-home-control/dto/update-home-control-space.dto.d.ts +8 -0
  658. package/dist/plugins/spaces-home-control/dto/update-home-control-space.dto.js +85 -0
  659. package/dist/plugins/spaces-home-control/dto/update-home-control-space.dto.js.map +1 -0
  660. package/dist/plugins/spaces-home-control/entities/room-space.entity.d.ts +8 -0
  661. package/dist/plugins/spaces-home-control/entities/room-space.entity.js +91 -0
  662. package/dist/plugins/spaces-home-control/entities/room-space.entity.js.map +1 -0
  663. package/dist/plugins/spaces-home-control/entities/space-active-media-activity.entity.d.ts +11 -0
  664. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-active-media-activity.entity.js +23 -30
  665. package/dist/plugins/spaces-home-control/entities/space-active-media-activity.entity.js.map +1 -0
  666. package/dist/plugins/spaces-home-control/entities/space-climate-role.entity.d.ts +13 -0
  667. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-climate-role.entity.js +25 -32
  668. package/dist/plugins/spaces-home-control/entities/space-climate-role.entity.js.map +1 -0
  669. package/dist/plugins/spaces-home-control/entities/space-covers-role.entity.d.ts +13 -0
  670. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-covers-role.entity.js +27 -34
  671. package/dist/plugins/spaces-home-control/entities/space-covers-role.entity.js.map +1 -0
  672. package/dist/plugins/spaces-home-control/entities/space-lighting-role.entity.d.ts +13 -0
  673. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-lighting-role.entity.js +27 -34
  674. package/dist/plugins/spaces-home-control/entities/space-lighting-role.entity.js.map +1 -0
  675. package/dist/plugins/spaces-home-control/entities/space-media-activity-binding.entity.d.ts +15 -0
  676. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-media-activity-binding.entity.js +20 -28
  677. package/dist/plugins/spaces-home-control/entities/space-media-activity-binding.entity.js.map +1 -0
  678. package/dist/plugins/spaces-home-control/entities/space-sensor-role.entity.d.ts +13 -0
  679. package/dist/{modules/spaces → plugins/spaces-home-control}/entities/space-sensor-role.entity.js +27 -34
  680. package/dist/plugins/spaces-home-control/entities/space-sensor-role.entity.js.map +1 -0
  681. package/dist/plugins/spaces-home-control/entities/zone-space.entity.d.ts +8 -0
  682. package/dist/plugins/spaces-home-control/entities/zone-space.entity.js +91 -0
  683. package/dist/plugins/spaces-home-control/entities/zone-space.entity.js.map +1 -0
  684. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-activity.listener.d.ts +2 -2
  685. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-activity.listener.js +4 -4
  686. package/dist/plugins/spaces-home-control/listeners/space-activity.listener.js.map +1 -0
  687. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-climate-state.listener.d.ts +1 -1
  688. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-climate-state.listener.js +6 -5
  689. package/dist/plugins/spaces-home-control/listeners/space-climate-state.listener.js.map +1 -0
  690. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-lighting-state.listener.d.ts +1 -1
  691. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-lighting-state.listener.js +6 -5
  692. package/dist/plugins/spaces-home-control/listeners/space-lighting-state.listener.js.map +1 -0
  693. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-sensor-state.listener.d.ts +1 -1
  694. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/space-sensor-state.listener.js +9 -8
  695. package/dist/plugins/spaces-home-control/listeners/space-sensor-state.listener.js.map +1 -0
  696. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/websocket-exchange.listener.d.ts +2 -2
  697. package/dist/{modules/spaces → plugins/spaces-home-control}/listeners/websocket-exchange.listener.js +5 -5
  698. package/dist/plugins/spaces-home-control/listeners/websocket-exchange.listener.js.map +1 -0
  699. package/dist/plugins/spaces-home-control/models/config.model.d.ts +5 -0
  700. package/dist/plugins/spaces-home-control/models/config.model.js +49 -0
  701. package/dist/plugins/spaces-home-control/models/config.model.js.map +1 -0
  702. package/dist/{modules/spaces → plugins/spaces-home-control}/models/derived-media-endpoint.model.d.ts +2 -2
  703. package/dist/{modules/spaces → plugins/spaces-home-control}/models/derived-media-endpoint.model.js +4 -4
  704. package/dist/plugins/spaces-home-control/models/derived-media-endpoint.model.js.map +1 -0
  705. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-activity-binding.model.d.ts +1 -1
  706. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-activity-binding.model.js +1 -1
  707. package/dist/plugins/spaces-home-control/models/media-activity-binding.model.js.map +1 -0
  708. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-activity.model.d.ts +2 -2
  709. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-activity.model.js +6 -6
  710. package/dist/plugins/spaces-home-control/models/media-activity.model.js.map +1 -0
  711. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-routing.model.d.ts +2 -2
  712. package/dist/{modules/spaces → plugins/spaces-home-control}/models/media-routing.model.js +4 -4
  713. package/dist/plugins/spaces-home-control/models/media-routing.model.js.map +1 -0
  714. package/dist/plugins/spaces-home-control/models/spaces-response.model.d.ts +524 -0
  715. package/dist/plugins/spaces-home-control/models/spaces-response.model.js +4145 -0
  716. package/dist/plugins/spaces-home-control/models/spaces-response.model.js.map +1 -0
  717. package/dist/{modules/spaces → plugins/spaces-home-control}/services/__fixtures__/media-scenario-templates.d.ts +1 -1
  718. package/dist/{modules/spaces → plugins/spaces-home-control}/services/__fixtures__/media-scenario-templates.js +3 -3
  719. package/dist/plugins/spaces-home-control/services/__fixtures__/media-scenario-templates.js.map +1 -0
  720. package/dist/{modules/spaces → plugins/spaces-home-control}/services/__fixtures__/media-test-harness.d.ts +1 -1
  721. package/dist/plugins/spaces-home-control/services/__fixtures__/media-test-harness.js.map +1 -0
  722. package/dist/{modules/spaces → plugins/spaces-home-control}/services/climate-intent.service.d.ts +5 -5
  723. package/dist/{modules/spaces → plugins/spaces-home-control}/services/climate-intent.service.js +35 -34
  724. package/dist/plugins/spaces-home-control/services/climate-intent.service.js.map +1 -0
  725. package/dist/{modules/spaces → plugins/spaces-home-control}/services/covers-intent.service.d.ts +5 -5
  726. package/dist/{modules/spaces → plugins/spaces-home-control}/services/covers-intent.service.js +48 -47
  727. package/dist/plugins/spaces-home-control/services/covers-intent.service.js.map +1 -0
  728. package/dist/{modules/spaces → plugins/spaces-home-control}/services/derived-media-endpoint.service.d.ts +1 -1
  729. package/dist/{modules/spaces → plugins/spaces-home-control}/services/derived-media-endpoint.service.js +28 -27
  730. package/dist/plugins/spaces-home-control/services/derived-media-endpoint.service.js.map +1 -0
  731. package/dist/plugins/spaces-home-control/services/home-control-home-page.resolver.d.ts +4 -0
  732. package/dist/plugins/spaces-home-control/services/home-control-home-page.resolver.js +20 -0
  733. package/dist/plugins/spaces-home-control/services/home-control-home-page.resolver.js.map +1 -0
  734. package/dist/plugins/spaces-home-control/services/home-control-spaces.service.d.ts +24 -0
  735. package/dist/plugins/spaces-home-control/services/home-control-spaces.service.js +182 -0
  736. package/dist/plugins/spaces-home-control/services/home-control-spaces.service.js.map +1 -0
  737. package/dist/{modules/spaces → plugins/spaces-home-control}/services/lighting-intent.service.d.ts +6 -6
  738. package/dist/{modules/spaces → plugins/spaces-home-control}/services/lighting-intent.service.js +68 -67
  739. package/dist/plugins/spaces-home-control/services/lighting-intent.service.js.map +1 -0
  740. package/dist/{modules/spaces → plugins/spaces-home-control}/services/media-capability.service.d.ts +1 -1
  741. package/dist/{modules/spaces → plugins/spaces-home-control}/services/media-capability.service.js +20 -19
  742. package/dist/plugins/spaces-home-control/services/media-capability.service.js.map +1 -0
  743. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-climate-role.service.d.ts +4 -4
  744. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-climate-role.service.js +18 -17
  745. package/dist/plugins/spaces-home-control/services/space-climate-role.service.js.map +1 -0
  746. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-climate-state.service.d.ts +5 -5
  747. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-climate-state.service.js +32 -31
  748. package/dist/plugins/spaces-home-control/services/space-climate-state.service.js.map +1 -0
  749. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-context-snapshot.service.d.ts +2 -2
  750. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-context-snapshot.service.js +7 -6
  751. package/dist/plugins/spaces-home-control/services/space-context-snapshot.service.js.map +1 -0
  752. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-covers-role.service.d.ts +3 -3
  753. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-covers-role.service.js +28 -25
  754. package/dist/plugins/spaces-home-control/services/space-covers-role.service.js.map +1 -0
  755. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-covers-state.service.d.ts +4 -4
  756. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-covers-state.service.js +9 -8
  757. package/dist/plugins/spaces-home-control/services/space-covers-state.service.js.map +1 -0
  758. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-intent-base.service.d.ts +1 -1
  759. package/dist/plugins/spaces-home-control/services/space-intent-base.service.js.map +1 -0
  760. package/dist/plugins/spaces-home-control/services/space-intent.service.js.map +1 -0
  761. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-role.service.d.ts +3 -3
  762. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-role.service.js +25 -22
  763. package/dist/plugins/spaces-home-control/services/space-lighting-role.service.js.map +1 -0
  764. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-state.service.d.ts +3 -3
  765. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-state.service.js +20 -19
  766. package/dist/plugins/spaces-home-control/services/space-lighting-state.service.js.map +1 -0
  767. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-tool.service.d.ts +4 -4
  768. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-lighting-tool.service.js +8 -7
  769. package/dist/plugins/spaces-home-control/services/space-lighting-tool.service.js.map +1 -0
  770. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-media-activity-binding.service.d.ts +2 -2
  771. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-media-activity-binding.service.js +31 -30
  772. package/dist/plugins/spaces-home-control/services/space-media-activity-binding.service.js.map +1 -0
  773. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-media-activity.service.d.ts +3 -3
  774. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-media-activity.service.js +38 -37
  775. package/dist/plugins/spaces-home-control/services/space-media-activity.service.js.map +1 -0
  776. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-sensor-role.service.d.ts +4 -4
  777. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-sensor-role.service.js +24 -23
  778. package/dist/plugins/spaces-home-control/services/space-sensor-role.service.js.map +1 -0
  779. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-sensor-state.service.d.ts +3 -3
  780. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-sensor-state.service.js +19 -18
  781. package/dist/plugins/spaces-home-control/services/space-sensor-state.service.js.map +1 -0
  782. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-suggestion-heartbeat.service.d.ts +2 -2
  783. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-suggestion-heartbeat.service.js +10 -9
  784. package/dist/plugins/spaces-home-control/services/space-suggestion-heartbeat.service.js.map +1 -0
  785. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-suggestion.service.d.ts +4 -3
  786. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-suggestion.service.js +8 -7
  787. package/dist/plugins/spaces-home-control/services/space-suggestion.service.js.map +1 -0
  788. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-undo-history.service.d.ts +3 -3
  789. package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-undo-history.service.js +5 -5
  790. package/dist/plugins/spaces-home-control/services/space-undo-history.service.js.map +1 -0
  791. package/dist/{modules/spaces → plugins/spaces-home-control}/services/spaces-seeder.service.d.ts +2 -2
  792. package/dist/{modules/spaces → plugins/spaces-home-control}/services/spaces-seeder.service.js +5 -5
  793. package/dist/plugins/spaces-home-control/services/spaces-seeder.service.js.map +1 -0
  794. package/dist/plugins/spaces-home-control/spaces-home-control.constants.d.ts +297 -0
  795. package/dist/plugins/spaces-home-control/spaces-home-control.constants.js +1460 -0
  796. package/dist/plugins/spaces-home-control/spaces-home-control.constants.js.map +1 -0
  797. package/dist/plugins/spaces-home-control/spaces-home-control.openapi.d.ts +2 -0
  798. package/dist/plugins/spaces-home-control/spaces-home-control.openapi.js +155 -0
  799. package/dist/plugins/spaces-home-control/spaces-home-control.openapi.js.map +1 -0
  800. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.d.ts +29 -0
  801. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js +334 -0
  802. package/dist/plugins/spaces-home-control/spaces-home-control.plugin.js.map +1 -0
  803. package/dist/plugins/spaces-home-control/spec/index.js.map +1 -0
  804. package/dist/{modules/spaces → plugins/spaces-home-control}/spec/intent-spec-loader.service.d.ts +1 -1
  805. package/dist/{modules/spaces → plugins/spaces-home-control}/spec/intent-spec-loader.service.js +1 -1
  806. package/dist/plugins/spaces-home-control/spec/intent-spec-loader.service.js.map +1 -0
  807. package/dist/plugins/spaces-home-control/spec/intent-spec.types.js.map +1 -0
  808. package/dist/{modules/spaces → plugins/spaces-home-control}/validators/at-least-one-setpoint.validator.js +2 -2
  809. package/dist/plugins/spaces-home-control/validators/at-least-one-setpoint.validator.js.map +1 -0
  810. package/dist/plugins/spaces-home-control/validators/setpoint-order-constraint.validator.js.map +1 -0
  811. package/dist/{modules/spaces → plugins/spaces-home-control}/validators/space-category-constraint.validator.js +1 -1
  812. package/dist/plugins/spaces-home-control/validators/space-category-constraint.validator.js.map +1 -0
  813. package/dist/plugins/spaces-signage-info-panel/controllers/signage-announcements.controller.d.ts +18 -0
  814. package/dist/plugins/spaces-signage-info-panel/controllers/signage-announcements.controller.js +219 -0
  815. package/dist/plugins/spaces-signage-info-panel/controllers/signage-announcements.controller.js.map +1 -0
  816. package/dist/plugins/spaces-signage-info-panel/dto/create-announcement.dto.d.ts +13 -0
  817. package/dist/plugins/spaces-signage-info-panel/dto/create-announcement.dto.js +143 -0
  818. package/dist/plugins/spaces-signage-info-panel/dto/create-announcement.dto.js.map +1 -0
  819. package/dist/plugins/spaces-signage-info-panel/dto/create-signage-info-panel-space.dto.d.ts +13 -0
  820. package/dist/plugins/spaces-signage-info-panel/dto/create-signage-info-panel-space.dto.js +130 -0
  821. package/dist/plugins/spaces-signage-info-panel/dto/create-signage-info-panel-space.dto.js.map +1 -0
  822. package/dist/plugins/spaces-signage-info-panel/dto/reorder-announcements.dto.d.ts +10 -0
  823. package/dist/plugins/spaces-signage-info-panel/dto/reorder-announcements.dto.js +78 -0
  824. package/dist/plugins/spaces-signage-info-panel/dto/reorder-announcements.dto.js.map +1 -0
  825. package/dist/plugins/spaces-signage-info-panel/dto/update-announcement.dto.d.ts +12 -0
  826. package/dist/plugins/spaces-signage-info-panel/dto/update-announcement.dto.js +134 -0
  827. package/dist/plugins/spaces-signage-info-panel/dto/update-announcement.dto.js.map +1 -0
  828. package/dist/plugins/spaces-signage-info-panel/dto/update-config.dto.d.ts +5 -0
  829. package/dist/plugins/spaces-signage-info-panel/dto/update-config.dto.js +34 -0
  830. package/dist/plugins/spaces-signage-info-panel/dto/update-config.dto.js.map +1 -0
  831. package/dist/plugins/spaces-signage-info-panel/dto/update-signage-info-panel-space.dto.d.ts +13 -0
  832. package/dist/plugins/spaces-signage-info-panel/dto/update-signage-info-panel-space.dto.js +130 -0
  833. package/dist/plugins/spaces-signage-info-panel/dto/update-signage-info-panel-space.dto.js.map +1 -0
  834. package/dist/plugins/spaces-signage-info-panel/entities/signage-announcement.entity.d.ts +13 -0
  835. package/dist/plugins/spaces-signage-info-panel/entities/signage-announcement.entity.js +161 -0
  836. package/dist/plugins/spaces-signage-info-panel/entities/signage-announcement.entity.js.map +1 -0
  837. package/dist/plugins/spaces-signage-info-panel/entities/signage-info-panel-space.entity.d.ts +13 -0
  838. package/dist/plugins/spaces-signage-info-panel/entities/signage-info-panel-space.entity.js +147 -0
  839. package/dist/plugins/spaces-signage-info-panel/entities/signage-info-panel-space.entity.js.map +1 -0
  840. package/dist/plugins/spaces-signage-info-panel/models/config.model.d.ts +5 -0
  841. package/dist/plugins/spaces-signage-info-panel/models/config.model.js +49 -0
  842. package/dist/plugins/spaces-signage-info-panel/models/config.model.js.map +1 -0
  843. package/dist/plugins/spaces-signage-info-panel/models/signage-announcement-response.model.d.ts +8 -0
  844. package/dist/plugins/spaces-signage-info-panel/models/signage-announcement-response.model.js +46 -0
  845. package/dist/plugins/spaces-signage-info-panel/models/signage-announcement-response.model.js.map +1 -0
  846. package/dist/plugins/spaces-signage-info-panel/services/signage-announcements.service.d.ts +28 -0
  847. package/dist/plugins/spaces-signage-info-panel/services/signage-announcements.service.js +181 -0
  848. package/dist/plugins/spaces-signage-info-panel/services/signage-announcements.service.js.map +1 -0
  849. package/dist/plugins/spaces-signage-info-panel/services/signage-home-page.resolver.d.ts +4 -0
  850. package/dist/plugins/spaces-signage-info-panel/services/signage-home-page.resolver.js +20 -0
  851. package/dist/plugins/spaces-signage-info-panel/services/signage-home-page.resolver.js.map +1 -0
  852. package/dist/plugins/spaces-signage-info-panel/services/signage-info-panel-reset.service.d.ts +14 -0
  853. package/dist/plugins/spaces-signage-info-panel/services/signage-info-panel-reset.service.js +59 -0
  854. package/dist/plugins/spaces-signage-info-panel/services/signage-info-panel-reset.service.js.map +1 -0
  855. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.constants.d.ts +17 -0
  856. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.constants.js +23 -0
  857. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.constants.js.map +1 -0
  858. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.exceptions.d.ts +9 -0
  859. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.exceptions.js +25 -0
  860. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.exceptions.js.map +1 -0
  861. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.openapi.d.ts +2 -0
  862. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.openapi.js +31 -0
  863. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.openapi.js.map +1 -0
  864. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.plugin.d.ts +23 -0
  865. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.plugin.js +159 -0
  866. package/dist/plugins/spaces-signage-info-panel/spaces-signage-info-panel.plugin.js.map +1 -0
  867. package/dist/plugins/spaces-synthetic-entry/dto/create-entry-space.dto.d.ts +5 -0
  868. package/dist/plugins/spaces-synthetic-entry/dto/create-entry-space.dto.js +31 -0
  869. package/dist/plugins/spaces-synthetic-entry/dto/create-entry-space.dto.js.map +1 -0
  870. package/dist/plugins/spaces-synthetic-entry/dto/update-config.dto.d.ts +5 -0
  871. package/dist/plugins/spaces-synthetic-entry/dto/update-config.dto.js +34 -0
  872. package/dist/plugins/spaces-synthetic-entry/dto/update-config.dto.js.map +1 -0
  873. package/dist/plugins/spaces-synthetic-entry/dto/update-entry-space.dto.d.ts +5 -0
  874. package/dist/plugins/spaces-synthetic-entry/dto/update-entry-space.dto.js +31 -0
  875. package/dist/plugins/spaces-synthetic-entry/dto/update-entry-space.dto.js.map +1 -0
  876. package/dist/plugins/spaces-synthetic-entry/entities/entry-space.entity.d.ts +5 -0
  877. package/dist/plugins/spaces-synthetic-entry/entities/entry-space.entity.js +39 -0
  878. package/dist/plugins/spaces-synthetic-entry/entities/entry-space.entity.js.map +1 -0
  879. package/dist/plugins/spaces-synthetic-entry/models/config.model.d.ts +5 -0
  880. package/dist/plugins/spaces-synthetic-entry/models/config.model.js +49 -0
  881. package/dist/plugins/spaces-synthetic-entry/models/config.model.js.map +1 -0
  882. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.constants.d.ts +7 -0
  883. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.constants.js +11 -0
  884. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.constants.js.map +1 -0
  885. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.openapi.d.ts +2 -0
  886. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.openapi.js +16 -0
  887. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.openapi.js.map +1 -0
  888. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.plugin.d.ts +15 -0
  889. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.plugin.js +124 -0
  890. package/dist/plugins/spaces-synthetic-entry/spaces-synthetic-entry.plugin.js.map +1 -0
  891. package/dist/plugins/spaces-synthetic-master/dto/create-master-space.dto.d.ts +5 -0
  892. package/dist/plugins/spaces-synthetic-master/dto/create-master-space.dto.js +31 -0
  893. package/dist/plugins/spaces-synthetic-master/dto/create-master-space.dto.js.map +1 -0
  894. package/dist/plugins/spaces-synthetic-master/dto/update-config.dto.d.ts +5 -0
  895. package/dist/plugins/spaces-synthetic-master/dto/update-config.dto.js +34 -0
  896. package/dist/plugins/spaces-synthetic-master/dto/update-config.dto.js.map +1 -0
  897. package/dist/plugins/spaces-synthetic-master/dto/update-master-space.dto.d.ts +5 -0
  898. package/dist/plugins/spaces-synthetic-master/dto/update-master-space.dto.js +31 -0
  899. package/dist/plugins/spaces-synthetic-master/dto/update-master-space.dto.js.map +1 -0
  900. package/dist/plugins/spaces-synthetic-master/entities/master-space.entity.d.ts +5 -0
  901. package/dist/plugins/spaces-synthetic-master/entities/master-space.entity.js +39 -0
  902. package/dist/plugins/spaces-synthetic-master/entities/master-space.entity.js.map +1 -0
  903. package/dist/plugins/spaces-synthetic-master/models/config.model.d.ts +5 -0
  904. package/dist/plugins/spaces-synthetic-master/models/config.model.js +49 -0
  905. package/dist/plugins/spaces-synthetic-master/models/config.model.js.map +1 -0
  906. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.constants.d.ts +7 -0
  907. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.constants.js +11 -0
  908. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.constants.js.map +1 -0
  909. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.openapi.d.ts +2 -0
  910. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.openapi.js +16 -0
  911. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.openapi.js.map +1 -0
  912. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.plugin.d.ts +15 -0
  913. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.plugin.js +124 -0
  914. package/dist/plugins/spaces-synthetic-master/spaces-synthetic-master.plugin.js.map +1 -0
  915. package/dist/plugins/tiles-device-preview/tiles-device-preview.plugin.js +16 -22
  916. package/dist/plugins/tiles-device-preview/tiles-device-preview.plugin.js.map +1 -1
  917. package/dist/plugins/tiles-scene/tiles-scene.plugin.js +15 -21
  918. package/dist/plugins/tiles-scene/tiles-scene.plugin.js.map +1 -1
  919. package/dist/plugins/tiles-time/tiles-time.plugin.js +13 -19
  920. package/dist/plugins/tiles-time/tiles-time.plugin.js.map +1 -1
  921. package/dist/plugins/tiles-weather/tiles-weather.plugin.js +16 -19
  922. package/dist/plugins/tiles-weather/tiles-weather.plugin.js.map +1 -1
  923. package/dist/plugins/weather-open-meteo/weather-open-meteo.plugin.js +32 -21
  924. package/dist/plugins/weather-open-meteo/weather-open-meteo.plugin.js.map +1 -1
  925. package/dist/plugins/weather-openweathermap/weather-openweathermap.plugin.js +22 -23
  926. package/dist/plugins/weather-openweathermap/weather-openweathermap.plugin.js.map +1 -1
  927. package/dist/plugins/weather-openweathermap-onecall/weather-openweathermap-onecall.plugin.js +27 -23
  928. package/dist/plugins/weather-openweathermap-onecall/weather-openweathermap-onecall.plugin.js.map +1 -1
  929. package/dist/tsconfig.build.tsbuildinfo +1 -1
  930. package/package.json +10 -6
  931. package/dist/modules/spaces/dto/climate-intent.dto.js.map +0 -1
  932. package/dist/modules/spaces/dto/climate-role.dto.js.map +0 -1
  933. package/dist/modules/spaces/dto/covers-intent.dto.js.map +0 -1
  934. package/dist/modules/spaces/dto/covers-role.dto.js.map +0 -1
  935. package/dist/modules/spaces/dto/lighting-intent.dto.js.map +0 -1
  936. package/dist/modules/spaces/dto/lighting-role.dto.js.map +0 -1
  937. package/dist/modules/spaces/dto/media-activity-binding.dto.js.map +0 -1
  938. package/dist/modules/spaces/dto/sensor-role.dto.js.map +0 -1
  939. package/dist/modules/spaces/dto/status-widget.dto.js.map +0 -1
  940. package/dist/modules/spaces/dto/suggestion.dto.js.map +0 -1
  941. package/dist/modules/spaces/entities/space-active-media-activity.entity.d.ts +0 -12
  942. package/dist/modules/spaces/entities/space-active-media-activity.entity.js.map +0 -1
  943. package/dist/modules/spaces/entities/space-climate-role.entity.d.ts +0 -14
  944. package/dist/modules/spaces/entities/space-climate-role.entity.js.map +0 -1
  945. package/dist/modules/spaces/entities/space-covers-role.entity.d.ts +0 -14
  946. package/dist/modules/spaces/entities/space-covers-role.entity.js.map +0 -1
  947. package/dist/modules/spaces/entities/space-lighting-role.entity.d.ts +0 -14
  948. package/dist/modules/spaces/entities/space-lighting-role.entity.js.map +0 -1
  949. package/dist/modules/spaces/entities/space-media-activity-binding.entity.d.ts +0 -16
  950. package/dist/modules/spaces/entities/space-media-activity-binding.entity.js.map +0 -1
  951. package/dist/modules/spaces/entities/space-sensor-role.entity.d.ts +0 -14
  952. package/dist/modules/spaces/entities/space-sensor-role.entity.js.map +0 -1
  953. package/dist/modules/spaces/listeners/space-activity.listener.js.map +0 -1
  954. package/dist/modules/spaces/listeners/space-climate-state.listener.js.map +0 -1
  955. package/dist/modules/spaces/listeners/space-lighting-state.listener.js.map +0 -1
  956. package/dist/modules/spaces/listeners/space-sensor-state.listener.js.map +0 -1
  957. package/dist/modules/spaces/listeners/websocket-exchange.listener.js.map +0 -1
  958. package/dist/modules/spaces/models/derived-media-endpoint.model.js.map +0 -1
  959. package/dist/modules/spaces/models/media-activity-binding.model.js.map +0 -1
  960. package/dist/modules/spaces/models/media-activity.model.js.map +0 -1
  961. package/dist/modules/spaces/models/media-routing.model.js.map +0 -1
  962. package/dist/modules/spaces/services/__fixtures__/media-scenario-templates.js.map +0 -1
  963. package/dist/modules/spaces/services/__fixtures__/media-test-harness.js.map +0 -1
  964. package/dist/modules/spaces/services/climate-intent.service.js.map +0 -1
  965. package/dist/modules/spaces/services/covers-intent.service.js.map +0 -1
  966. package/dist/modules/spaces/services/derived-media-endpoint.service.js.map +0 -1
  967. package/dist/modules/spaces/services/lighting-intent.service.js.map +0 -1
  968. package/dist/modules/spaces/services/media-capability.service.js.map +0 -1
  969. package/dist/modules/spaces/services/space-climate-role.service.js.map +0 -1
  970. package/dist/modules/spaces/services/space-climate-state.service.js.map +0 -1
  971. package/dist/modules/spaces/services/space-context-snapshot.service.js.map +0 -1
  972. package/dist/modules/spaces/services/space-covers-role.service.js.map +0 -1
  973. package/dist/modules/spaces/services/space-covers-state.service.js.map +0 -1
  974. package/dist/modules/spaces/services/space-intent-base.service.js.map +0 -1
  975. package/dist/modules/spaces/services/space-intent.service.js.map +0 -1
  976. package/dist/modules/spaces/services/space-lighting-role.service.js.map +0 -1
  977. package/dist/modules/spaces/services/space-lighting-state.service.js.map +0 -1
  978. package/dist/modules/spaces/services/space-lighting-tool.service.js.map +0 -1
  979. package/dist/modules/spaces/services/space-media-activity-binding.service.js.map +0 -1
  980. package/dist/modules/spaces/services/space-media-activity.service.js.map +0 -1
  981. package/dist/modules/spaces/services/space-sensor-role.service.js.map +0 -1
  982. package/dist/modules/spaces/services/space-sensor-state.service.js.map +0 -1
  983. package/dist/modules/spaces/services/space-suggestion-heartbeat.service.js.map +0 -1
  984. package/dist/modules/spaces/services/space-suggestion.service.js.map +0 -1
  985. package/dist/modules/spaces/services/space-undo-history.service.js.map +0 -1
  986. package/dist/modules/spaces/services/spaces-seeder.service.js.map +0 -1
  987. package/dist/modules/spaces/spec/definitions/climate-intents.yaml +0 -94
  988. package/dist/modules/spaces/spec/definitions/covers-modes.yaml +0 -83
  989. package/dist/modules/spaces/spec/definitions/enums.yaml +0 -119
  990. package/dist/modules/spaces/spec/definitions/lighting-intents.yaml +0 -181
  991. package/dist/modules/spaces/spec/definitions/lighting-modes.yaml +0 -119
  992. package/dist/modules/spaces/spec/definitions/suggestions.yaml +0 -47
  993. package/dist/modules/spaces/spec/index.js.map +0 -1
  994. package/dist/modules/spaces/spec/intent-spec-loader.service.js.map +0 -1
  995. package/dist/modules/spaces/spec/intent-spec.types.js.map +0 -1
  996. package/dist/modules/spaces/validators/at-least-one-setpoint.validator.js.map +0 -1
  997. package/dist/modules/spaces/validators/setpoint-order-constraint.validator.js.map +0 -1
  998. package/dist/modules/spaces/validators/space-category-constraint.validator.js.map +0 -1
  999. package/dist/modules/storage/plugins/influx-v1/influx-v1.config.model.js.map +0 -1
  1000. package/dist/modules/storage/plugins/influx-v1/influx-v1.constants.js.map +0 -1
  1001. package/dist/modules/storage/plugins/influx-v1/influx-v1.module.d.ts +0 -17
  1002. package/dist/modules/storage/plugins/influx-v1/influx-v1.module.js +0 -94
  1003. package/dist/modules/storage/plugins/influx-v1/influx-v1.module.js.map +0 -1
  1004. package/dist/modules/storage/plugins/influx-v1/influx-v1.openapi.js +0 -7
  1005. package/dist/modules/storage/plugins/influx-v1/influx-v1.openapi.js.map +0 -1
  1006. package/dist/modules/storage/plugins/influx-v1/influx-v1.plugin.js.map +0 -1
  1007. package/dist/modules/storage/plugins/influx-v1/influx-v1.update-config.dto.js.map +0 -1
  1008. package/dist/modules/storage/plugins/memory/in-memory-timeseries.store.js.map +0 -1
  1009. package/dist/modules/storage/plugins/memory/influxql-parser.js.map +0 -1
  1010. package/dist/modules/storage/plugins/memory/memory.config.model.js.map +0 -1
  1011. package/dist/modules/storage/plugins/memory/memory.constants.js.map +0 -1
  1012. package/dist/modules/storage/plugins/memory/memory.module.d.ts +0 -13
  1013. package/dist/modules/storage/plugins/memory/memory.module.js +0 -75
  1014. package/dist/modules/storage/plugins/memory/memory.module.js.map +0 -1
  1015. package/dist/modules/storage/plugins/memory/memory.openapi.js +0 -7
  1016. package/dist/modules/storage/plugins/memory/memory.openapi.js.map +0 -1
  1017. package/dist/modules/storage/plugins/memory/memory.plugin.js.map +0 -1
  1018. package/dist/modules/storage/plugins/memory/memory.update-config.dto.js.map +0 -1
  1019. /package/dist/{modules/storage/plugins → plugins}/influx-v1/influx-v1.constants.d.ts +0 -0
  1020. /package/dist/{modules/storage/plugins → plugins}/influx-v1/influx-v1.constants.js +0 -0
  1021. /package/dist/{modules/storage/plugins/memory/memory.constants.d.ts → plugins/memory-storage/memory-storage.constants.d.ts} +0 -0
  1022. /package/dist/{modules/storage/plugins/memory → plugins/memory-storage/services}/influxql-parser.d.ts +0 -0
  1023. /package/dist/{modules/storage/plugins/memory → plugins/memory-storage/services}/influxql-parser.js +0 -0
  1024. /package/dist/{modules/spaces → plugins/spaces-home-control}/dto/status-widget.dto.d.ts +0 -0
  1025. /package/dist/{modules/spaces → plugins/spaces-home-control}/dto/status-widget.dto.js +0 -0
  1026. /package/dist/{modules/spaces → plugins/spaces-home-control}/services/__fixtures__/media-test-harness.js +0 -0
  1027. /package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-intent-base.service.js +0 -0
  1028. /package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-intent.service.d.ts +0 -0
  1029. /package/dist/{modules/spaces → plugins/spaces-home-control}/services/space-intent.service.js +0 -0
  1030. /package/dist/{modules/spaces → plugins/spaces-home-control}/spec/index.d.ts +0 -0
  1031. /package/dist/{modules/spaces → plugins/spaces-home-control}/spec/index.js +0 -0
  1032. /package/dist/{modules/spaces → plugins/spaces-home-control}/spec/intent-spec.types.d.ts +0 -0
  1033. /package/dist/{modules/spaces → plugins/spaces-home-control}/spec/intent-spec.types.js +0 -0
  1034. /package/dist/{modules/spaces → plugins/spaces-home-control}/validators/at-least-one-setpoint.validator.d.ts +0 -0
  1035. /package/dist/{modules/spaces → plugins/spaces-home-control}/validators/setpoint-order-constraint.validator.d.ts +0 -0
  1036. /package/dist/{modules/spaces → plugins/spaces-home-control}/validators/setpoint-order-constraint.validator.js +0 -0
  1037. /package/dist/{modules/spaces → plugins/spaces-home-control}/validators/space-category-constraint.validator.d.ts +0 -0
@@ -8,18 +8,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var RoleCoversStateDataModel_1, CoversStateDataModel_1, RoleAggregatedStateDataModel_1, OtherLightsStateDataModel_1, RolesStateMapDataModel_1, LightingStateDataModel_1;
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.LightingRoleMetaDataModel = exports.QuickActionDataModel = exports.IntentCategoryDataModel = exports.IntentTypeDataModel = exports.IntentParamDataModel = exports.IntentEnumValueDataModel = exports.CategoryTemplatesResponseModel = exports.CategoryTemplateDataModel = exports.SuggestionFeedbackResponseModel = exports.SuggestionFeedbackResultDataModel = exports.SuggestionResponseModel = exports.SuggestionDataModel = exports.BulkCoversRolesResponseModel = exports.BulkCoversRolesResultDataModel = exports.BulkCoversRoleResultItemModel = exports.CoversRoleResponseModel = exports.CoversTargetsResponseModel = exports.CoversTargetDataModel = exports.CoversIntentResponseModel = exports.CoversIntentResultDataModel = exports.CoversStateResponseModel = exports.CoversStateDataModel = exports.RoleCoversStateDataModel = exports.BulkClimateRolesResponseModel = exports.BulkClimateRolesResultDataModel = exports.BulkClimateRoleResultItemModel = exports.ClimateRolesResponseModel = exports.ClimateRoleResponseModel = exports.ClimateTargetsResponseModel = exports.ClimateTargetDataModel = exports.BulkLightingRolesResponseModel = exports.BulkLightingRolesResultDataModel = exports.BulkLightingRoleResultItemModel = exports.LightingRolesResponseModel = exports.LightingRoleResponseModel = exports.LightTargetsResponseModel = exports.LightTargetDataModel = exports.ClimateIntentResponseModel = exports.ClimateIntentResultDataModel = exports.ClimateStateResponseModel = exports.ClimateStateDataModel = exports.LightingIntentResponseModel = exports.LightingIntentResultDataModel = exports.ProposedSpacesResponseModel = exports.ProposedSpaceDataModel = exports.BulkAssignmentResponseModel = exports.BulkAssignmentResultDataModel = exports.BulkAssignmentDataModel = exports.SpacesResponseModel = exports.SpaceResponseModel = void 0;
14
- exports.BulkSensorRolesResponseModel = exports.BulkSensorRolesResultDataModel = exports.BulkSensorRoleResultItemModel = exports.SensorRoleResponseModel = exports.SensorTargetsResponseModel = exports.SensorTargetDataModel = exports.SensorStateResponseModel = exports.SensorStateDataModel = exports.SafetyAlertDataModel = exports.EnvironmentSummaryDataModel = exports.SensorRoleReadingsDataModel = exports.SensorReadingDataModel = exports.SensorAdditionalReadingDataModel = exports.LightingStateResponseModel = exports.LightingStateDataModel = exports.RolesStateMapDataModel = exports.OtherLightsStateDataModel = exports.RoleAggregatedStateDataModel = exports.RoleLastIntentDataModel = exports.UndoResultResponseModel = exports.UndoResultDataModel = exports.UndoStateResponseModel = exports.UndoStateDataModel = exports.ContextSnapshotResponseModel = exports.ContextSnapshotDataModel = exports.LightingContextDataModel = exports.LightingSummaryDataModel = exports.LightStateSnapshotDataModel = exports.IntentCatalogResponseModel = exports.IntentCatalogDataModel = exports.CoversModeOrchestrationDataModel = exports.CoversRolePositionRuleDataModel = exports.LightingModeOrchestrationDataModel = exports.LightingRoleBrightnessRuleDataModel = void 0;
12
+ exports.CategoryTemplatesResponseModel = exports.CategoryTemplateDataModel = exports.BulkAssignmentResponseModel = exports.BulkAssignmentResultDataModel = exports.BulkAssignmentDataModel = exports.SpacesResponseModel = exports.SpaceResponseModel = void 0;
15
13
  const class_transformer_1 = require("class-transformer");
16
14
  const swagger_1 = require("@nestjs/swagger");
17
15
  const api_response_model_1 = require("../../api/models/api-response.model");
18
- const devices_constants_1 = require("../../devices/devices.constants");
19
- const space_climate_role_entity_1 = require("../entities/space-climate-role.entity");
20
- const space_covers_role_entity_1 = require("../entities/space-covers-role.entity");
21
- const space_lighting_role_entity_1 = require("../entities/space-lighting-role.entity");
22
- const space_sensor_role_entity_1 = require("../entities/space-sensor-role.entity");
23
16
  const space_entity_1 = require("../entities/space.entity");
24
17
  const spaces_constants_1 = require("../spaces.constants");
25
18
  let SpaceResponseModel = class SpaceResponseModel extends api_response_model_1.BaseSuccessResponseModel {
@@ -129,4173 +122,53 @@ __decorate([
129
122
  exports.BulkAssignmentResponseModel = BulkAssignmentResponseModel = __decorate([
130
123
  (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResBulkAssignment' })
131
124
  ], BulkAssignmentResponseModel);
132
- let ProposedSpaceDataModel = class ProposedSpaceDataModel {
125
+ let CategoryTemplateDataModel = class CategoryTemplateDataModel {
133
126
  };
134
- exports.ProposedSpaceDataModel = ProposedSpaceDataModel;
135
- __decorate([
136
- (0, swagger_1.ApiProperty)({
137
- description: 'Proposed space name',
138
- type: 'string',
139
- example: 'Living Room',
140
- }),
141
- (0, class_transformer_1.Expose)(),
142
- __metadata("design:type", String)
143
- ], ProposedSpaceDataModel.prototype, "name", void 0);
127
+ exports.CategoryTemplateDataModel = CategoryTemplateDataModel;
144
128
  __decorate([
145
129
  (0, swagger_1.ApiProperty)({
146
- description: 'Proposed space type',
147
- enum: spaces_constants_1.SpaceType,
148
- example: spaces_constants_1.SpaceType.ROOM,
149
- }),
150
- (0, class_transformer_1.Expose)(),
151
- __metadata("design:type", String)
152
- ], ProposedSpaceDataModel.prototype, "type", void 0);
153
- __decorate([
154
- (0, swagger_1.ApiPropertyOptional)({
155
- description: 'Proposed space category (based on detected room/zone type)',
130
+ description: 'Category identifier',
156
131
  enum: spaces_constants_1.ALL_SPACE_CATEGORIES,
157
- nullable: true,
158
132
  example: spaces_constants_1.SpaceRoomCategory.LIVING_ROOM,
159
133
  }),
160
134
  (0, class_transformer_1.Expose)(),
161
135
  __metadata("design:type", String)
162
- ], ProposedSpaceDataModel.prototype, "category", void 0);
163
- __decorate([
164
- (0, swagger_1.ApiProperty)({
165
- name: 'device_ids',
166
- description: 'Array of device IDs that match this space',
167
- type: 'array',
168
- items: { type: 'string', format: 'uuid' },
169
- example: ['f1e09ba1-429f-4c6a-a2fd-aca6a7c4a8c6'],
170
- }),
171
- (0, class_transformer_1.Expose)({ name: 'device_ids' }),
172
- __metadata("design:type", Array)
173
- ], ProposedSpaceDataModel.prototype, "deviceIds", void 0);
174
- __decorate([
175
- (0, swagger_1.ApiProperty)({
176
- name: 'device_count',
177
- description: 'Number of devices matching this space',
178
- type: 'integer',
179
- example: 3,
180
- }),
181
- (0, class_transformer_1.Expose)({ name: 'device_count' }),
182
- __metadata("design:type", Number)
183
- ], ProposedSpaceDataModel.prototype, "deviceCount", void 0);
184
- exports.ProposedSpaceDataModel = ProposedSpaceDataModel = __decorate([
185
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataProposedSpace' })
186
- ], ProposedSpaceDataModel);
187
- let ProposedSpacesResponseModel = class ProposedSpacesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
188
- };
189
- exports.ProposedSpacesResponseModel = ProposedSpacesResponseModel;
190
- __decorate([
191
- (0, swagger_1.ApiProperty)({
192
- description: 'Array of proposed spaces based on device names',
193
- type: () => [ProposedSpaceDataModel],
194
- }),
195
- (0, class_transformer_1.Expose)(),
196
- (0, class_transformer_1.Type)(() => ProposedSpaceDataModel),
197
- __metadata("design:type", Array)
198
- ], ProposedSpacesResponseModel.prototype, "data", void 0);
199
- exports.ProposedSpacesResponseModel = ProposedSpacesResponseModel = __decorate([
200
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResProposedSpaces' })
201
- ], ProposedSpacesResponseModel);
202
- let LightingIntentResultDataModel = class LightingIntentResultDataModel {
203
- };
204
- exports.LightingIntentResultDataModel = LightingIntentResultDataModel;
205
- __decorate([
206
- (0, swagger_1.ApiProperty)({
207
- description: 'Whether the intent was successfully executed',
208
- type: 'boolean',
209
- example: true,
210
- }),
211
- (0, class_transformer_1.Expose)(),
212
- __metadata("design:type", Boolean)
213
- ], LightingIntentResultDataModel.prototype, "success", void 0);
214
- __decorate([
215
- (0, swagger_1.ApiProperty)({
216
- name: 'affected_devices',
217
- description: 'Number of devices affected by the intent',
218
- type: 'integer',
219
- example: 3,
220
- }),
221
- (0, class_transformer_1.Expose)({ name: 'affected_devices' }),
222
- __metadata("design:type", Number)
223
- ], LightingIntentResultDataModel.prototype, "affectedDevices", void 0);
224
- __decorate([
225
- (0, swagger_1.ApiProperty)({
226
- name: 'failed_devices',
227
- description: 'Number of devices that failed to respond',
228
- type: 'integer',
229
- example: 0,
230
- }),
231
- (0, class_transformer_1.Expose)({ name: 'failed_devices' }),
232
- __metadata("design:type", Number)
233
- ], LightingIntentResultDataModel.prototype, "failedDevices", void 0);
234
- __decorate([
235
- (0, swagger_1.ApiPropertyOptional)({
236
- name: 'skipped_offline_devices',
237
- description: 'Number of devices skipped because they are offline',
238
- type: 'integer',
239
- example: 1,
240
- }),
241
- (0, class_transformer_1.Expose)({ name: 'skipped_offline_devices' }),
242
- __metadata("design:type", Number)
243
- ], LightingIntentResultDataModel.prototype, "skippedOfflineDevices", void 0);
244
- __decorate([
245
- (0, swagger_1.ApiPropertyOptional)({
246
- name: 'offline_device_ids',
247
- description: 'IDs of devices that were skipped because they are offline',
248
- type: 'array',
249
- items: { type: 'string', format: 'uuid' },
250
- example: ['a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7'],
251
- }),
252
- (0, class_transformer_1.Expose)({ name: 'offline_device_ids' }),
253
- __metadata("design:type", Array)
254
- ], LightingIntentResultDataModel.prototype, "offlineDeviceIds", void 0);
255
- __decorate([
256
- (0, swagger_1.ApiPropertyOptional)({
257
- name: 'failed_targets',
258
- description: 'List of device IDs where command execution failed',
259
- type: [String],
260
- nullable: true,
261
- example: ['device-uuid-1'],
262
- }),
263
- (0, class_transformer_1.Expose)({ name: 'failed_targets' }),
264
- __metadata("design:type", Array)
265
- ], LightingIntentResultDataModel.prototype, "failedTargets", void 0);
266
- exports.LightingIntentResultDataModel = LightingIntentResultDataModel = __decorate([
267
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingIntentResult' })
268
- ], LightingIntentResultDataModel);
269
- let LightingIntentResponseModel = class LightingIntentResponseModel extends api_response_model_1.BaseSuccessResponseModel {
270
- };
271
- exports.LightingIntentResponseModel = LightingIntentResponseModel;
272
- __decorate([
273
- (0, swagger_1.ApiProperty)({
274
- description: 'The result of the lighting intent execution',
275
- type: () => LightingIntentResultDataModel,
276
- }),
277
- (0, class_transformer_1.Expose)(),
278
- (0, class_transformer_1.Type)(() => LightingIntentResultDataModel),
279
- __metadata("design:type", LightingIntentResultDataModel)
280
- ], LightingIntentResponseModel.prototype, "data", void 0);
281
- exports.LightingIntentResponseModel = LightingIntentResponseModel = __decorate([
282
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResLightingIntent' })
283
- ], LightingIntentResponseModel);
284
- let ClimateStateDataModel = class ClimateStateDataModel {
285
- };
286
- exports.ClimateStateDataModel = ClimateStateDataModel;
287
- __decorate([
288
- (0, swagger_1.ApiProperty)({
289
- name: 'has_climate',
290
- description: 'Whether the space has climate-capable devices',
291
- type: 'boolean',
292
- example: true,
293
- }),
294
- (0, class_transformer_1.Expose)({ name: 'has_climate' }),
295
- __metadata("design:type", Boolean)
296
- ], ClimateStateDataModel.prototype, "hasClimate", void 0);
297
- __decorate([
298
- (0, swagger_1.ApiProperty)({
299
- name: 'mode',
300
- description: 'Current climate mode detected from device states',
301
- enum: ['heat', 'cool', 'auto', 'off'],
302
- example: 'heat',
303
- }),
304
- (0, class_transformer_1.Expose)({ name: 'mode' }),
305
- __metadata("design:type", String)
306
- ], ClimateStateDataModel.prototype, "mode", void 0);
307
- __decorate([
308
- (0, swagger_1.ApiProperty)({
309
- name: 'current_temperature',
310
- description: 'Current temperature reading in degrees Celsius (averaged from all primary devices)',
311
- type: 'number',
312
- nullable: true,
313
- example: 22.5,
314
- }),
315
- (0, class_transformer_1.Expose)({ name: 'current_temperature' }),
316
- __metadata("design:type", Number)
317
- ], ClimateStateDataModel.prototype, "currentTemperature", void 0);
318
- __decorate([
319
- (0, swagger_1.ApiProperty)({
320
- name: 'current_humidity',
321
- description: 'Current humidity reading in percent (averaged from all devices with humidity)',
322
- type: 'number',
323
- nullable: true,
324
- example: 45,
325
- }),
326
- (0, class_transformer_1.Expose)({ name: 'current_humidity' }),
327
- __metadata("design:type", Number)
328
- ], ClimateStateDataModel.prototype, "currentHumidity", void 0);
329
- __decorate([
330
- (0, swagger_1.ApiProperty)({
331
- name: 'heating_setpoint',
332
- description: 'Heating setpoint - target temperature for heating (used in HEAT and AUTO modes)',
333
- type: 'number',
334
- nullable: true,
335
- example: 20.0,
336
- }),
337
- (0, class_transformer_1.Expose)({ name: 'heating_setpoint' }),
338
- __metadata("design:type", Number)
339
- ], ClimateStateDataModel.prototype, "heatingSetpoint", void 0);
340
- __decorate([
341
- (0, swagger_1.ApiProperty)({
342
- name: 'cooling_setpoint',
343
- description: 'Cooling setpoint - target temperature for cooling (used in COOL and AUTO modes)',
344
- type: 'number',
345
- nullable: true,
346
- example: 24.0,
347
- }),
348
- (0, class_transformer_1.Expose)({ name: 'cooling_setpoint' }),
349
- __metadata("design:type", Number)
350
- ], ClimateStateDataModel.prototype, "coolingSetpoint", void 0);
351
- __decorate([
352
- (0, swagger_1.ApiProperty)({
353
- name: 'min_setpoint',
354
- description: 'Minimum allowed setpoint temperature (intersection of all device limits)',
355
- type: 'number',
356
- example: 15,
357
- }),
358
- (0, class_transformer_1.Expose)({ name: 'min_setpoint' }),
359
- __metadata("design:type", Number)
360
- ], ClimateStateDataModel.prototype, "minSetpoint", void 0);
361
- __decorate([
362
- (0, swagger_1.ApiProperty)({
363
- name: 'max_setpoint',
364
- description: 'Maximum allowed setpoint temperature (intersection of all device limits)',
365
- type: 'number',
366
- example: 30,
367
- }),
368
- (0, class_transformer_1.Expose)({ name: 'max_setpoint' }),
369
- __metadata("design:type", Number)
370
- ], ClimateStateDataModel.prototype, "maxSetpoint", void 0);
371
- __decorate([
372
- (0, swagger_1.ApiProperty)({
373
- name: 'supports_heating',
374
- description: 'Whether any device in the space supports heating',
375
- type: 'boolean',
376
- example: true,
377
- }),
378
- (0, class_transformer_1.Expose)({ name: 'supports_heating' }),
379
- __metadata("design:type", Boolean)
380
- ], ClimateStateDataModel.prototype, "supportsHeating", void 0);
381
- __decorate([
382
- (0, swagger_1.ApiProperty)({
383
- name: 'supports_cooling',
384
- description: 'Whether any device in the space supports cooling',
385
- type: 'boolean',
386
- example: true,
387
- }),
388
- (0, class_transformer_1.Expose)({ name: 'supports_cooling' }),
389
- __metadata("design:type", Boolean)
390
- ], ClimateStateDataModel.prototype, "supportsCooling", void 0);
391
- __decorate([
392
- (0, swagger_1.ApiProperty)({
393
- name: 'is_heating',
394
- description: 'Whether any heater device is currently active (ON)',
395
- type: 'boolean',
396
- example: false,
397
- }),
398
- (0, class_transformer_1.Expose)({ name: 'is_heating' }),
399
- __metadata("design:type", Boolean)
400
- ], ClimateStateDataModel.prototype, "isHeating", void 0);
401
- __decorate([
402
- (0, swagger_1.ApiProperty)({
403
- name: 'is_cooling',
404
- description: 'Whether any cooler device is currently active (ON)',
405
- type: 'boolean',
406
- example: false,
407
- }),
408
- (0, class_transformer_1.Expose)({ name: 'is_cooling' }),
409
- __metadata("design:type", Boolean)
410
- ], ClimateStateDataModel.prototype, "isCooling", void 0);
411
- __decorate([
412
- (0, swagger_1.ApiProperty)({
413
- name: 'is_mixed',
414
- description: 'Whether devices have different setpoint values (out of sync)',
415
- type: 'boolean',
416
- example: false,
417
- }),
418
- (0, class_transformer_1.Expose)({ name: 'is_mixed' }),
419
- __metadata("design:type", Boolean)
420
- ], ClimateStateDataModel.prototype, "isMixed", void 0);
136
+ ], CategoryTemplateDataModel.prototype, "category", void 0);
421
137
  __decorate([
422
138
  (0, swagger_1.ApiProperty)({
423
- name: 'devices_count',
424
- description: 'Number of primary climate devices in the space',
425
- type: 'integer',
426
- example: 2,
427
- }),
428
- (0, class_transformer_1.Expose)({ name: 'devices_count' }),
429
- __metadata("design:type", Number)
430
- ], ClimateStateDataModel.prototype, "devicesCount", void 0);
431
- __decorate([
432
- (0, swagger_1.ApiPropertyOptional)({
433
- name: 'last_applied_mode',
434
- description: 'The last climate mode that was explicitly applied via intent (from storage)',
435
- enum: spaces_constants_1.ClimateMode,
436
- nullable: true,
437
- }),
438
- (0, class_transformer_1.Expose)({ name: 'last_applied_mode' }),
439
- __metadata("design:type", String)
440
- ], ClimateStateDataModel.prototype, "lastAppliedMode", void 0);
441
- __decorate([
442
- (0, swagger_1.ApiPropertyOptional)({
443
- name: 'last_applied_at',
444
- description: 'When the last mode was applied',
139
+ description: 'Suggested icon for the category',
445
140
  type: 'string',
446
- format: 'date-time',
447
- nullable: true,
448
- example: null,
449
- }),
450
- (0, class_transformer_1.Expose)({ name: 'last_applied_at' }),
451
- __metadata("design:type", Date)
452
- ], ClimateStateDataModel.prototype, "lastAppliedAt", void 0);
453
- exports.ClimateStateDataModel = ClimateStateDataModel = __decorate([
454
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataClimateState' })
455
- ], ClimateStateDataModel);
456
- let ClimateStateResponseModel = class ClimateStateResponseModel extends api_response_model_1.BaseSuccessResponseModel {
457
- };
458
- exports.ClimateStateResponseModel = ClimateStateResponseModel;
459
- __decorate([
460
- (0, swagger_1.ApiProperty)({
461
- description: 'The climate state data for the space',
462
- type: () => ClimateStateDataModel,
463
- }),
464
- (0, class_transformer_1.Expose)(),
465
- (0, class_transformer_1.Type)(() => ClimateStateDataModel),
466
- __metadata("design:type", ClimateStateDataModel)
467
- ], ClimateStateResponseModel.prototype, "data", void 0);
468
- exports.ClimateStateResponseModel = ClimateStateResponseModel = __decorate([
469
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResClimateState' })
470
- ], ClimateStateResponseModel);
471
- let ClimateIntentResultDataModel = class ClimateIntentResultDataModel {
472
- };
473
- exports.ClimateIntentResultDataModel = ClimateIntentResultDataModel;
474
- __decorate([
475
- (0, swagger_1.ApiProperty)({
476
- description: 'Whether the intent was successfully executed',
477
- type: 'boolean',
478
- example: true,
479
- }),
480
- (0, class_transformer_1.Expose)(),
481
- __metadata("design:type", Boolean)
482
- ], ClimateIntentResultDataModel.prototype, "success", void 0);
483
- __decorate([
484
- (0, swagger_1.ApiProperty)({
485
- name: 'affected_devices',
486
- description: 'Number of devices affected by the intent',
487
- type: 'integer',
488
- example: 2,
489
- }),
490
- (0, class_transformer_1.Expose)({ name: 'affected_devices' }),
491
- __metadata("design:type", Number)
492
- ], ClimateIntentResultDataModel.prototype, "affectedDevices", void 0);
493
- __decorate([
494
- (0, swagger_1.ApiProperty)({
495
- name: 'failed_devices',
496
- description: 'Number of devices that failed to respond',
497
- type: 'integer',
498
- example: 0,
499
- }),
500
- (0, class_transformer_1.Expose)({ name: 'failed_devices' }),
501
- __metadata("design:type", Number)
502
- ], ClimateIntentResultDataModel.prototype, "failedDevices", void 0);
503
- __decorate([
504
- (0, swagger_1.ApiPropertyOptional)({
505
- name: 'skipped_offline_devices',
506
- description: 'Number of devices skipped because they are offline',
507
- type: 'integer',
508
- example: 1,
509
- }),
510
- (0, class_transformer_1.Expose)({ name: 'skipped_offline_devices' }),
511
- __metadata("design:type", Number)
512
- ], ClimateIntentResultDataModel.prototype, "skippedOfflineDevices", void 0);
513
- __decorate([
514
- (0, swagger_1.ApiPropertyOptional)({
515
- name: 'offline_device_ids',
516
- description: 'IDs of devices that were skipped because they are offline',
517
- type: 'array',
518
- items: { type: 'string', format: 'uuid' },
519
- example: ['a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7'],
520
- }),
521
- (0, class_transformer_1.Expose)({ name: 'offline_device_ids' }),
522
- __metadata("design:type", Array)
523
- ], ClimateIntentResultDataModel.prototype, "offlineDeviceIds", void 0);
524
- __decorate([
525
- (0, swagger_1.ApiPropertyOptional)({
526
- name: 'failed_targets',
527
- description: 'List of device IDs where command execution failed',
528
- type: [String],
529
- nullable: true,
530
- example: ['device-uuid-1'],
531
- }),
532
- (0, class_transformer_1.Expose)({ name: 'failed_targets' }),
533
- __metadata("design:type", Array)
534
- ], ClimateIntentResultDataModel.prototype, "failedTargets", void 0);
535
- __decorate([
536
- (0, swagger_1.ApiProperty)({
537
- name: 'mode',
538
- description: 'The climate mode after the intent was executed',
539
- enum: ['heat', 'cool', 'auto', 'off'],
540
- example: 'heat',
541
- }),
542
- (0, class_transformer_1.Expose)({ name: 'mode' }),
543
- __metadata("design:type", String)
544
- ], ClimateIntentResultDataModel.prototype, "mode", void 0);
545
- __decorate([
546
- (0, swagger_1.ApiProperty)({
547
- name: 'heating_setpoint',
548
- description: 'The new heating setpoint (used in HEAT and AUTO modes)',
549
- type: 'number',
550
- nullable: true,
551
- example: 20.0,
552
- }),
553
- (0, class_transformer_1.Expose)({ name: 'heating_setpoint' }),
554
- __metadata("design:type", Number)
555
- ], ClimateIntentResultDataModel.prototype, "heatingSetpoint", void 0);
556
- __decorate([
557
- (0, swagger_1.ApiProperty)({
558
- name: 'cooling_setpoint',
559
- description: 'The new cooling setpoint (used in COOL and AUTO modes)',
560
- type: 'number',
561
- nullable: true,
562
- example: 24.0,
563
- }),
564
- (0, class_transformer_1.Expose)({ name: 'cooling_setpoint' }),
565
- __metadata("design:type", Number)
566
- ], ClimateIntentResultDataModel.prototype, "coolingSetpoint", void 0);
567
- exports.ClimateIntentResultDataModel = ClimateIntentResultDataModel = __decorate([
568
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataClimateIntentResult' })
569
- ], ClimateIntentResultDataModel);
570
- let ClimateIntentResponseModel = class ClimateIntentResponseModel extends api_response_model_1.BaseSuccessResponseModel {
571
- };
572
- exports.ClimateIntentResponseModel = ClimateIntentResponseModel;
573
- __decorate([
574
- (0, swagger_1.ApiProperty)({
575
- description: 'The result of the climate intent execution',
576
- type: () => ClimateIntentResultDataModel,
141
+ example: 'mdi:sofa',
577
142
  }),
578
143
  (0, class_transformer_1.Expose)(),
579
- (0, class_transformer_1.Type)(() => ClimateIntentResultDataModel),
580
- __metadata("design:type", ClimateIntentResultDataModel)
581
- ], ClimateIntentResponseModel.prototype, "data", void 0);
582
- exports.ClimateIntentResponseModel = ClimateIntentResponseModel = __decorate([
583
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResClimateIntent' })
584
- ], ClimateIntentResponseModel);
585
- let LightTargetDataModel = class LightTargetDataModel {
586
- };
587
- exports.LightTargetDataModel = LightTargetDataModel;
588
- __decorate([
589
- (0, swagger_1.ApiProperty)({
590
- name: 'device_id',
591
- description: 'ID of the lighting device',
592
- type: 'string',
593
- format: 'uuid',
594
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
595
- }),
596
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
597
- __metadata("design:type", String)
598
- ], LightTargetDataModel.prototype, "deviceId", void 0);
599
- __decorate([
600
- (0, swagger_1.ApiProperty)({
601
- name: 'device_name',
602
- description: 'Name of the lighting device',
603
- type: 'string',
604
- example: 'Living Room Ceiling Light',
605
- }),
606
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
607
- __metadata("design:type", String)
608
- ], LightTargetDataModel.prototype, "deviceName", void 0);
609
- __decorate([
610
- (0, swagger_1.ApiProperty)({
611
- name: 'channel_id',
612
- description: 'ID of the light channel',
613
- type: 'string',
614
- format: 'uuid',
615
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
616
- }),
617
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
618
144
  __metadata("design:type", String)
619
- ], LightTargetDataModel.prototype, "channelId", void 0);
145
+ ], CategoryTemplateDataModel.prototype, "icon", void 0);
620
146
  __decorate([
621
147
  (0, swagger_1.ApiProperty)({
622
- name: 'channel_name',
623
- description: 'Name of the light channel',
148
+ description: 'Default description for the category',
624
149
  type: 'string',
625
- example: 'Light',
626
- }),
627
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
628
- __metadata("design:type", String)
629
- ], LightTargetDataModel.prototype, "channelName", void 0);
630
- __decorate([
631
- (0, swagger_1.ApiPropertyOptional)({
632
- description: 'The lighting role assigned to this target (null if not assigned)',
633
- enum: spaces_constants_1.LightingRole,
634
- nullable: true,
635
- example: spaces_constants_1.LightingRole.MAIN,
150
+ example: 'Main living and entertainment area',
636
151
  }),
637
152
  (0, class_transformer_1.Expose)(),
638
153
  __metadata("design:type", String)
639
- ], LightTargetDataModel.prototype, "role", void 0);
640
- __decorate([
641
- (0, swagger_1.ApiProperty)({
642
- description: 'Priority for selecting defaults within the same role',
643
- type: 'integer',
644
- example: 0,
645
- }),
646
- (0, class_transformer_1.Expose)(),
647
- __metadata("design:type", Number)
648
- ], LightTargetDataModel.prototype, "priority", void 0);
649
- __decorate([
650
- (0, swagger_1.ApiProperty)({
651
- name: 'has_brightness',
652
- description: 'Whether this light supports brightness control',
653
- type: 'boolean',
654
- example: true,
655
- }),
656
- (0, class_transformer_1.Expose)({ name: 'has_brightness' }),
657
- __metadata("design:type", Boolean)
658
- ], LightTargetDataModel.prototype, "hasBrightness", void 0);
659
- __decorate([
660
- (0, swagger_1.ApiProperty)({
661
- name: 'has_color_temp',
662
- description: 'Whether this light supports color temperature control',
663
- type: 'boolean',
664
- example: false,
665
- }),
666
- (0, class_transformer_1.Expose)({ name: 'has_color_temp' }),
667
- __metadata("design:type", Boolean)
668
- ], LightTargetDataModel.prototype, "hasColorTemp", void 0);
669
- __decorate([
670
- (0, swagger_1.ApiProperty)({
671
- name: 'has_color',
672
- description: 'Whether this light supports color (RGB) control',
673
- type: 'boolean',
674
- example: false,
675
- }),
676
- (0, class_transformer_1.Expose)({ name: 'has_color' }),
677
- __metadata("design:type", Boolean)
678
- ], LightTargetDataModel.prototype, "hasColor", void 0);
679
- exports.LightTargetDataModel = LightTargetDataModel = __decorate([
680
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightTarget' })
681
- ], LightTargetDataModel);
682
- let LightTargetsResponseModel = class LightTargetsResponseModel extends api_response_model_1.BaseSuccessResponseModel {
683
- };
684
- exports.LightTargetsResponseModel = LightTargetsResponseModel;
685
- __decorate([
686
- (0, swagger_1.ApiProperty)({
687
- description: 'Array of light targets in the space with their role assignments',
688
- type: () => [LightTargetDataModel],
689
- }),
690
- (0, class_transformer_1.Expose)(),
691
- (0, class_transformer_1.Type)(() => LightTargetDataModel),
692
- __metadata("design:type", Array)
693
- ], LightTargetsResponseModel.prototype, "data", void 0);
694
- exports.LightTargetsResponseModel = LightTargetsResponseModel = __decorate([
695
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResLightTargets' })
696
- ], LightTargetsResponseModel);
697
- let LightingRoleResponseModel = class LightingRoleResponseModel extends api_response_model_1.BaseSuccessResponseModel {
698
- };
699
- exports.LightingRoleResponseModel = LightingRoleResponseModel;
700
- __decorate([
701
- (0, swagger_1.ApiProperty)({
702
- description: 'The lighting role assignment',
703
- type: () => space_lighting_role_entity_1.SpaceLightingRoleEntity,
704
- }),
705
- (0, class_transformer_1.Expose)(),
706
- (0, class_transformer_1.Type)(() => space_lighting_role_entity_1.SpaceLightingRoleEntity),
707
- __metadata("design:type", space_lighting_role_entity_1.SpaceLightingRoleEntity)
708
- ], LightingRoleResponseModel.prototype, "data", void 0);
709
- exports.LightingRoleResponseModel = LightingRoleResponseModel = __decorate([
710
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResLightingRole' })
711
- ], LightingRoleResponseModel);
712
- let LightingRolesResponseModel = class LightingRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
154
+ ], CategoryTemplateDataModel.prototype, "description", void 0);
155
+ exports.CategoryTemplateDataModel = CategoryTemplateDataModel = __decorate([
156
+ (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCategoryTemplate' })
157
+ ], CategoryTemplateDataModel);
158
+ let CategoryTemplatesResponseModel = class CategoryTemplatesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
713
159
  };
714
- exports.LightingRolesResponseModel = LightingRolesResponseModel;
160
+ exports.CategoryTemplatesResponseModel = CategoryTemplatesResponseModel;
715
161
  __decorate([
716
162
  (0, swagger_1.ApiProperty)({
717
- description: 'Array of lighting role assignments',
163
+ description: 'Array of category templates with default values',
718
164
  type: 'array',
719
- items: { $ref: (0, swagger_1.getSchemaPath)(space_lighting_role_entity_1.SpaceLightingRoleEntity) },
165
+ items: { $ref: (0, swagger_1.getSchemaPath)(CategoryTemplateDataModel) },
720
166
  }),
721
167
  (0, class_transformer_1.Expose)(),
722
- (0, class_transformer_1.Type)(() => space_lighting_role_entity_1.SpaceLightingRoleEntity),
168
+ (0, class_transformer_1.Type)(() => CategoryTemplateDataModel),
723
169
  __metadata("design:type", Array)
724
- ], LightingRolesResponseModel.prototype, "data", void 0);
725
- exports.LightingRolesResponseModel = LightingRolesResponseModel = __decorate([
726
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResLightingRoles' })
727
- ], LightingRolesResponseModel);
728
- let BulkLightingRoleResultItemModel = class BulkLightingRoleResultItemModel {
729
- };
730
- exports.BulkLightingRoleResultItemModel = BulkLightingRoleResultItemModel;
731
- __decorate([
732
- (0, swagger_1.ApiProperty)({
733
- name: 'device_id',
734
- description: 'ID of the device',
735
- type: 'string',
736
- format: 'uuid',
737
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
738
- }),
739
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
740
- __metadata("design:type", String)
741
- ], BulkLightingRoleResultItemModel.prototype, "deviceId", void 0);
742
- __decorate([
743
- (0, swagger_1.ApiProperty)({
744
- name: 'channel_id',
745
- description: 'ID of the channel',
746
- type: 'string',
747
- format: 'uuid',
748
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
749
- }),
750
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
751
- __metadata("design:type", String)
752
- ], BulkLightingRoleResultItemModel.prototype, "channelId", void 0);
753
- __decorate([
754
- (0, swagger_1.ApiProperty)({
755
- description: 'Whether this role was set successfully',
756
- type: 'boolean',
757
- example: true,
758
- }),
759
- (0, class_transformer_1.Expose)(),
760
- __metadata("design:type", Boolean)
761
- ], BulkLightingRoleResultItemModel.prototype, "success", void 0);
762
- __decorate([
763
- (0, swagger_1.ApiPropertyOptional)({
764
- description: 'The role that was set (null if failed)',
765
- enum: spaces_constants_1.LightingRole,
766
- nullable: true,
767
- example: spaces_constants_1.LightingRole.MAIN,
768
- }),
769
- (0, class_transformer_1.Expose)(),
770
- __metadata("design:type", String)
771
- ], BulkLightingRoleResultItemModel.prototype, "role", void 0);
772
- __decorate([
773
- (0, swagger_1.ApiPropertyOptional)({
774
- description: 'Error message if the operation failed',
775
- type: 'string',
776
- nullable: true,
777
- example: null,
778
- }),
779
- (0, class_transformer_1.Expose)(),
780
- __metadata("design:type", String)
781
- ], BulkLightingRoleResultItemModel.prototype, "error", void 0);
782
- exports.BulkLightingRoleResultItemModel = BulkLightingRoleResultItemModel = __decorate([
783
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkLightingRoleItem' })
784
- ], BulkLightingRoleResultItemModel);
785
- let BulkLightingRolesResultDataModel = class BulkLightingRolesResultDataModel {
786
- };
787
- exports.BulkLightingRolesResultDataModel = BulkLightingRolesResultDataModel;
788
- __decorate([
789
- (0, swagger_1.ApiProperty)({
790
- description: 'Whether all operations were successful',
791
- type: 'boolean',
792
- example: true,
793
- }),
794
- (0, class_transformer_1.Expose)(),
795
- __metadata("design:type", Boolean)
796
- ], BulkLightingRolesResultDataModel.prototype, "success", void 0);
797
- __decorate([
798
- (0, swagger_1.ApiProperty)({
799
- name: 'total_count',
800
- description: 'Total number of roles in the request',
801
- type: 'integer',
802
- example: 3,
803
- }),
804
- (0, class_transformer_1.Expose)({ name: 'total_count' }),
805
- __metadata("design:type", Number)
806
- ], BulkLightingRolesResultDataModel.prototype, "totalCount", void 0);
807
- __decorate([
808
- (0, swagger_1.ApiProperty)({
809
- name: 'success_count',
810
- description: 'Number of roles successfully created or updated',
811
- type: 'integer',
812
- example: 3,
813
- }),
814
- (0, class_transformer_1.Expose)({ name: 'success_count' }),
815
- __metadata("design:type", Number)
816
- ], BulkLightingRolesResultDataModel.prototype, "successCount", void 0);
817
- __decorate([
818
- (0, swagger_1.ApiProperty)({
819
- name: 'failure_count',
820
- description: 'Number of roles that failed to update',
821
- type: 'integer',
822
- example: 0,
823
- }),
824
- (0, class_transformer_1.Expose)({ name: 'failure_count' }),
825
- __metadata("design:type", Number)
826
- ], BulkLightingRolesResultDataModel.prototype, "failureCount", void 0);
827
- __decorate([
828
- (0, swagger_1.ApiProperty)({
829
- description: 'Detailed results for each role operation',
830
- type: () => [BulkLightingRoleResultItemModel],
831
- }),
832
- (0, class_transformer_1.Expose)(),
833
- (0, class_transformer_1.Type)(() => BulkLightingRoleResultItemModel),
834
- __metadata("design:type", Array)
835
- ], BulkLightingRolesResultDataModel.prototype, "results", void 0);
836
- exports.BulkLightingRolesResultDataModel = BulkLightingRolesResultDataModel = __decorate([
837
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkLightingRolesResult' })
838
- ], BulkLightingRolesResultDataModel);
839
- let BulkLightingRolesResponseModel = class BulkLightingRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
840
- };
841
- exports.BulkLightingRolesResponseModel = BulkLightingRolesResponseModel;
842
- __decorate([
843
- (0, swagger_1.ApiProperty)({
844
- description: 'The result of the bulk lighting role update',
845
- type: () => BulkLightingRolesResultDataModel,
846
- }),
847
- (0, class_transformer_1.Expose)(),
848
- (0, class_transformer_1.Type)(() => BulkLightingRolesResultDataModel),
849
- __metadata("design:type", BulkLightingRolesResultDataModel)
850
- ], BulkLightingRolesResponseModel.prototype, "data", void 0);
851
- exports.BulkLightingRolesResponseModel = BulkLightingRolesResponseModel = __decorate([
852
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResBulkLightingRoles' })
853
- ], BulkLightingRolesResponseModel);
854
- let ClimateTargetDataModel = class ClimateTargetDataModel {
855
- };
856
- exports.ClimateTargetDataModel = ClimateTargetDataModel;
857
- __decorate([
858
- (0, swagger_1.ApiProperty)({
859
- name: 'device_id',
860
- description: 'ID of the climate device',
861
- type: 'string',
862
- format: 'uuid',
863
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
864
- }),
865
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
866
- __metadata("design:type", String)
867
- ], ClimateTargetDataModel.prototype, "deviceId", void 0);
868
- __decorate([
869
- (0, swagger_1.ApiProperty)({
870
- name: 'device_name',
871
- description: 'Name of the climate device',
872
- type: 'string',
873
- example: 'Living Room Thermostat',
874
- }),
875
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
876
- __metadata("design:type", String)
877
- ], ClimateTargetDataModel.prototype, "deviceName", void 0);
878
- __decorate([
879
- (0, swagger_1.ApiProperty)({
880
- name: 'device_category',
881
- description: 'Category of the climate device',
882
- enum: devices_constants_1.DeviceCategory,
883
- example: devices_constants_1.DeviceCategory.THERMOSTAT,
884
- }),
885
- (0, class_transformer_1.Expose)({ name: 'device_category' }),
886
- __metadata("design:type", String)
887
- ], ClimateTargetDataModel.prototype, "deviceCategory", void 0);
888
- __decorate([
889
- (0, swagger_1.ApiPropertyOptional)({
890
- name: 'channel_id',
891
- description: 'ID of the channel (for sensor roles)',
892
- type: 'string',
893
- format: 'uuid',
894
- nullable: true,
895
- example: 'c3d29ea4-632f-5e8c-c4af-dce8b9e6c0f8',
896
- }),
897
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
898
- __metadata("design:type", String)
899
- ], ClimateTargetDataModel.prototype, "channelId", void 0);
900
- __decorate([
901
- (0, swagger_1.ApiPropertyOptional)({
902
- name: 'channel_name',
903
- description: 'Name of the channel (for sensor roles)',
904
- type: 'string',
905
- nullable: true,
906
- example: 'Temperature Sensor',
907
- }),
908
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
909
- __metadata("design:type", String)
910
- ], ClimateTargetDataModel.prototype, "channelName", void 0);
911
- __decorate([
912
- (0, swagger_1.ApiPropertyOptional)({
913
- name: 'channel_category',
914
- description: 'Category of the channel (for sensor roles) - indicates sensor type',
915
- enum: devices_constants_1.ChannelCategory,
916
- nullable: true,
917
- example: devices_constants_1.ChannelCategory.TEMPERATURE,
918
- }),
919
- (0, class_transformer_1.Expose)({ name: 'channel_category' }),
920
- __metadata("design:type", String)
921
- ], ClimateTargetDataModel.prototype, "channelCategory", void 0);
922
- __decorate([
923
- (0, swagger_1.ApiPropertyOptional)({
924
- description: 'The climate role assigned to this target (null if not assigned)',
925
- enum: spaces_constants_1.ClimateRole,
926
- nullable: true,
927
- example: spaces_constants_1.ClimateRole.AUTO,
928
- }),
929
- (0, class_transformer_1.Expose)(),
930
- __metadata("design:type", String)
931
- ], ClimateTargetDataModel.prototype, "role", void 0);
932
- __decorate([
933
- (0, swagger_1.ApiProperty)({
934
- description: 'Priority for selecting defaults within the same role',
935
- type: 'integer',
936
- example: 0,
937
- }),
938
- (0, class_transformer_1.Expose)(),
939
- __metadata("design:type", Number)
940
- ], ClimateTargetDataModel.prototype, "priority", void 0);
941
- __decorate([
942
- (0, swagger_1.ApiProperty)({
943
- name: 'has_temperature',
944
- description: 'Whether this target is a temperature sensor channel',
945
- type: 'boolean',
946
- example: true,
947
- }),
948
- (0, class_transformer_1.Expose)({ name: 'has_temperature' }),
949
- __metadata("design:type", Boolean)
950
- ], ClimateTargetDataModel.prototype, "hasTemperature", void 0);
951
- __decorate([
952
- (0, swagger_1.ApiProperty)({
953
- name: 'has_humidity',
954
- description: 'Whether this target is a humidity sensor channel',
955
- type: 'boolean',
956
- example: false,
957
- }),
958
- (0, class_transformer_1.Expose)({ name: 'has_humidity' }),
959
- __metadata("design:type", Boolean)
960
- ], ClimateTargetDataModel.prototype, "hasHumidity", void 0);
961
- __decorate([
962
- (0, swagger_1.ApiProperty)({
963
- name: 'has_air_quality',
964
- description: 'Whether this target is an air quality sensor channel',
965
- type: 'boolean',
966
- example: false,
967
- }),
968
- (0, class_transformer_1.Expose)({ name: 'has_air_quality' }),
969
- __metadata("design:type", Boolean)
970
- ], ClimateTargetDataModel.prototype, "hasAirQuality", void 0);
971
- __decorate([
972
- (0, swagger_1.ApiProperty)({
973
- name: 'has_air_particulate',
974
- description: 'Whether this target is an air particulate (PM2.5/PM10) sensor channel',
975
- type: 'boolean',
976
- example: false,
977
- }),
978
- (0, class_transformer_1.Expose)({ name: 'has_air_particulate' }),
979
- __metadata("design:type", Boolean)
980
- ], ClimateTargetDataModel.prototype, "hasAirParticulate", void 0);
981
- __decorate([
982
- (0, swagger_1.ApiProperty)({
983
- name: 'has_carbon_dioxide',
984
- description: 'Whether this target is a carbon dioxide (CO2) sensor channel',
985
- type: 'boolean',
986
- example: false,
987
- }),
988
- (0, class_transformer_1.Expose)({ name: 'has_carbon_dioxide' }),
989
- __metadata("design:type", Boolean)
990
- ], ClimateTargetDataModel.prototype, "hasCarbonDioxide", void 0);
991
- __decorate([
992
- (0, swagger_1.ApiProperty)({
993
- name: 'has_volatile_organic_compounds',
994
- description: 'Whether this target is a volatile organic compounds (VOC) sensor channel',
995
- type: 'boolean',
996
- example: false,
997
- }),
998
- (0, class_transformer_1.Expose)({ name: 'has_volatile_organic_compounds' }),
999
- __metadata("design:type", Boolean)
1000
- ], ClimateTargetDataModel.prototype, "hasVolatileOrganicCompounds", void 0);
1001
- __decorate([
1002
- (0, swagger_1.ApiProperty)({
1003
- name: 'has_pressure',
1004
- description: 'Whether this target is an atmospheric pressure sensor channel',
1005
- type: 'boolean',
1006
- example: false,
1007
- }),
1008
- (0, class_transformer_1.Expose)({ name: 'has_pressure' }),
1009
- __metadata("design:type", Boolean)
1010
- ], ClimateTargetDataModel.prototype, "hasPressure", void 0);
1011
- __decorate([
1012
- (0, swagger_1.ApiProperty)({
1013
- name: 'has_mode',
1014
- description: 'Whether this device supports HVAC mode control',
1015
- type: 'boolean',
1016
- example: true,
1017
- }),
1018
- (0, class_transformer_1.Expose)({ name: 'has_mode' }),
1019
- __metadata("design:type", Boolean)
1020
- ], ClimateTargetDataModel.prototype, "hasMode", void 0);
1021
- exports.ClimateTargetDataModel = ClimateTargetDataModel = __decorate([
1022
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataClimateTarget' })
1023
- ], ClimateTargetDataModel);
1024
- let ClimateTargetsResponseModel = class ClimateTargetsResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1025
- };
1026
- exports.ClimateTargetsResponseModel = ClimateTargetsResponseModel;
1027
- __decorate([
1028
- (0, swagger_1.ApiProperty)({
1029
- description: 'Array of climate targets in the space with their role assignments',
1030
- type: () => [ClimateTargetDataModel],
1031
- }),
1032
- (0, class_transformer_1.Expose)(),
1033
- (0, class_transformer_1.Type)(() => ClimateTargetDataModel),
1034
- __metadata("design:type", Array)
1035
- ], ClimateTargetsResponseModel.prototype, "data", void 0);
1036
- exports.ClimateTargetsResponseModel = ClimateTargetsResponseModel = __decorate([
1037
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResClimateTargets' })
1038
- ], ClimateTargetsResponseModel);
1039
- let ClimateRoleResponseModel = class ClimateRoleResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1040
- };
1041
- exports.ClimateRoleResponseModel = ClimateRoleResponseModel;
1042
- __decorate([
1043
- (0, swagger_1.ApiProperty)({
1044
- description: 'The climate role assignment, or null if the role was removed',
1045
- type: () => space_climate_role_entity_1.SpaceClimateRoleEntity,
1046
- nullable: true,
1047
- required: false,
1048
- }),
1049
- (0, class_transformer_1.Expose)(),
1050
- (0, class_transformer_1.Type)(() => space_climate_role_entity_1.SpaceClimateRoleEntity),
1051
- __metadata("design:type", space_climate_role_entity_1.SpaceClimateRoleEntity)
1052
- ], ClimateRoleResponseModel.prototype, "data", void 0);
1053
- exports.ClimateRoleResponseModel = ClimateRoleResponseModel = __decorate([
1054
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResClimateRole' })
1055
- ], ClimateRoleResponseModel);
1056
- let ClimateRolesResponseModel = class ClimateRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1057
- };
1058
- exports.ClimateRolesResponseModel = ClimateRolesResponseModel;
1059
- __decorate([
1060
- (0, swagger_1.ApiProperty)({
1061
- description: 'Array of climate role assignments',
1062
- type: 'array',
1063
- items: { $ref: (0, swagger_1.getSchemaPath)(space_climate_role_entity_1.SpaceClimateRoleEntity) },
1064
- }),
1065
- (0, class_transformer_1.Expose)(),
1066
- (0, class_transformer_1.Type)(() => space_climate_role_entity_1.SpaceClimateRoleEntity),
1067
- __metadata("design:type", Array)
1068
- ], ClimateRolesResponseModel.prototype, "data", void 0);
1069
- exports.ClimateRolesResponseModel = ClimateRolesResponseModel = __decorate([
1070
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResClimateRoles' })
1071
- ], ClimateRolesResponseModel);
1072
- let BulkClimateRoleResultItemModel = class BulkClimateRoleResultItemModel {
1073
- };
1074
- exports.BulkClimateRoleResultItemModel = BulkClimateRoleResultItemModel;
1075
- __decorate([
1076
- (0, swagger_1.ApiProperty)({
1077
- name: 'device_id',
1078
- description: 'ID of the climate device',
1079
- type: 'string',
1080
- format: 'uuid',
1081
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
1082
- }),
1083
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
1084
- __metadata("design:type", String)
1085
- ], BulkClimateRoleResultItemModel.prototype, "deviceId", void 0);
1086
- __decorate([
1087
- (0, swagger_1.ApiPropertyOptional)({
1088
- name: 'channel_id',
1089
- description: 'ID of the channel (for sensor roles)',
1090
- type: 'string',
1091
- format: 'uuid',
1092
- nullable: true,
1093
- example: null,
1094
- }),
1095
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
1096
- __metadata("design:type", String)
1097
- ], BulkClimateRoleResultItemModel.prototype, "channelId", void 0);
1098
- __decorate([
1099
- (0, swagger_1.ApiProperty)({
1100
- description: 'Whether the role was set successfully',
1101
- type: 'boolean',
1102
- example: true,
1103
- }),
1104
- (0, class_transformer_1.Expose)(),
1105
- __metadata("design:type", Boolean)
1106
- ], BulkClimateRoleResultItemModel.prototype, "success", void 0);
1107
- __decorate([
1108
- (0, swagger_1.ApiPropertyOptional)({
1109
- description: 'The role that was set (null if failed)',
1110
- enum: spaces_constants_1.ClimateRole,
1111
- nullable: true,
1112
- example: spaces_constants_1.ClimateRole.AUTO,
1113
- }),
1114
- (0, class_transformer_1.Expose)(),
1115
- __metadata("design:type", String)
1116
- ], BulkClimateRoleResultItemModel.prototype, "role", void 0);
1117
- __decorate([
1118
- (0, swagger_1.ApiPropertyOptional)({
1119
- description: 'Error message if the role assignment failed',
1120
- type: 'string',
1121
- nullable: true,
1122
- example: null,
1123
- }),
1124
- (0, class_transformer_1.Expose)(),
1125
- __metadata("design:type", String)
1126
- ], BulkClimateRoleResultItemModel.prototype, "error", void 0);
1127
- exports.BulkClimateRoleResultItemModel = BulkClimateRoleResultItemModel = __decorate([
1128
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkClimateRoleItem' })
1129
- ], BulkClimateRoleResultItemModel);
1130
- let BulkClimateRolesResultDataModel = class BulkClimateRolesResultDataModel {
1131
- };
1132
- exports.BulkClimateRolesResultDataModel = BulkClimateRolesResultDataModel;
1133
- __decorate([
1134
- (0, swagger_1.ApiProperty)({
1135
- description: 'Whether all role assignments succeeded',
1136
- type: 'boolean',
1137
- example: true,
1138
- }),
1139
- (0, class_transformer_1.Expose)(),
1140
- __metadata("design:type", Boolean)
1141
- ], BulkClimateRolesResultDataModel.prototype, "success", void 0);
1142
- __decorate([
1143
- (0, swagger_1.ApiProperty)({
1144
- name: 'total_count',
1145
- description: 'Total number of role assignments attempted',
1146
- type: 'integer',
1147
- example: 3,
1148
- }),
1149
- (0, class_transformer_1.Expose)({ name: 'total_count' }),
1150
- __metadata("design:type", Number)
1151
- ], BulkClimateRolesResultDataModel.prototype, "totalCount", void 0);
1152
- __decorate([
1153
- (0, swagger_1.ApiProperty)({
1154
- name: 'success_count',
1155
- description: 'Number of successful role assignments',
1156
- type: 'integer',
1157
- example: 3,
1158
- }),
1159
- (0, class_transformer_1.Expose)({ name: 'success_count' }),
1160
- __metadata("design:type", Number)
1161
- ], BulkClimateRolesResultDataModel.prototype, "successCount", void 0);
1162
- __decorate([
1163
- (0, swagger_1.ApiProperty)({
1164
- name: 'failure_count',
1165
- description: 'Number of failed role assignments',
1166
- type: 'integer',
1167
- example: 0,
1168
- }),
1169
- (0, class_transformer_1.Expose)({ name: 'failure_count' }),
1170
- __metadata("design:type", Number)
1171
- ], BulkClimateRolesResultDataModel.prototype, "failureCount", void 0);
1172
- __decorate([
1173
- (0, swagger_1.ApiProperty)({
1174
- description: 'Detailed results for each role assignment',
1175
- type: () => [BulkClimateRoleResultItemModel],
1176
- }),
1177
- (0, class_transformer_1.Expose)(),
1178
- (0, class_transformer_1.Type)(() => BulkClimateRoleResultItemModel),
1179
- __metadata("design:type", Array)
1180
- ], BulkClimateRolesResultDataModel.prototype, "results", void 0);
1181
- exports.BulkClimateRolesResultDataModel = BulkClimateRolesResultDataModel = __decorate([
1182
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkClimateRolesResult' })
1183
- ], BulkClimateRolesResultDataModel);
1184
- let BulkClimateRolesResponseModel = class BulkClimateRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1185
- };
1186
- exports.BulkClimateRolesResponseModel = BulkClimateRolesResponseModel;
1187
- __decorate([
1188
- (0, swagger_1.ApiProperty)({
1189
- description: 'The result of the bulk climate role update',
1190
- type: () => BulkClimateRolesResultDataModel,
1191
- }),
1192
- (0, class_transformer_1.Expose)(),
1193
- (0, class_transformer_1.Type)(() => BulkClimateRolesResultDataModel),
1194
- __metadata("design:type", BulkClimateRolesResultDataModel)
1195
- ], BulkClimateRolesResponseModel.prototype, "data", void 0);
1196
- exports.BulkClimateRolesResponseModel = BulkClimateRolesResponseModel = __decorate([
1197
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResBulkClimateRoles' })
1198
- ], BulkClimateRolesResponseModel);
1199
- let RoleCoversStateDataModel = RoleCoversStateDataModel_1 = class RoleCoversStateDataModel {
1200
- static fromState(roleState) {
1201
- const model = new RoleCoversStateDataModel_1();
1202
- model.role = roleState.role;
1203
- model.position = roleState.position;
1204
- model.isPositionMixed = roleState.isPositionMixed;
1205
- model.tilt = roleState.tilt;
1206
- model.isTiltMixed = roleState.isTiltMixed;
1207
- model.hasTilt = roleState.hasTilt;
1208
- model.isOpen = roleState.isOpen;
1209
- model.isClosed = roleState.isClosed;
1210
- model.devicesCount = roleState.devicesCount;
1211
- model.devicesOpen = roleState.devicesOpen;
1212
- return model;
1213
- }
1214
- };
1215
- exports.RoleCoversStateDataModel = RoleCoversStateDataModel;
1216
- __decorate([
1217
- (0, swagger_1.ApiProperty)({
1218
- description: 'The role for this state',
1219
- enum: spaces_constants_1.CoversRole,
1220
- }),
1221
- (0, class_transformer_1.Expose)(),
1222
- __metadata("design:type", String)
1223
- ], RoleCoversStateDataModel.prototype, "role", void 0);
1224
- __decorate([
1225
- (0, swagger_1.ApiPropertyOptional)({
1226
- description: 'Average position for this role (0-100, null if mixed or no data)',
1227
- type: 'integer',
1228
- nullable: true,
1229
- example: 75,
1230
- }),
1231
- (0, class_transformer_1.Expose)(),
1232
- __metadata("design:type", Number)
1233
- ], RoleCoversStateDataModel.prototype, "position", void 0);
1234
- __decorate([
1235
- (0, swagger_1.ApiProperty)({
1236
- name: 'is_position_mixed',
1237
- description: 'Whether covers in this role have different positions',
1238
- type: 'boolean',
1239
- example: false,
1240
- }),
1241
- (0, class_transformer_1.Expose)({ name: 'is_position_mixed' }),
1242
- __metadata("design:type", Boolean)
1243
- ], RoleCoversStateDataModel.prototype, "isPositionMixed", void 0);
1244
- __decorate([
1245
- (0, swagger_1.ApiPropertyOptional)({
1246
- description: 'Average tilt for this role (0-100, null if no tilt or mixed)',
1247
- type: 'integer',
1248
- nullable: true,
1249
- example: null,
1250
- }),
1251
- (0, class_transformer_1.Expose)(),
1252
- __metadata("design:type", Number)
1253
- ], RoleCoversStateDataModel.prototype, "tilt", void 0);
1254
- __decorate([
1255
- (0, swagger_1.ApiProperty)({
1256
- name: 'is_tilt_mixed',
1257
- description: 'Whether covers in this role have different tilt values',
1258
- type: 'boolean',
1259
- example: false,
1260
- }),
1261
- (0, class_transformer_1.Expose)({ name: 'is_tilt_mixed' }),
1262
- __metadata("design:type", Boolean)
1263
- ], RoleCoversStateDataModel.prototype, "isTiltMixed", void 0);
1264
- __decorate([
1265
- (0, swagger_1.ApiProperty)({
1266
- name: 'has_tilt',
1267
- description: 'Whether any covers in this role support tilt',
1268
- type: 'boolean',
1269
- example: false,
1270
- }),
1271
- (0, class_transformer_1.Expose)({ name: 'has_tilt' }),
1272
- __metadata("design:type", Boolean)
1273
- ], RoleCoversStateDataModel.prototype, "hasTilt", void 0);
1274
- __decorate([
1275
- (0, swagger_1.ApiProperty)({
1276
- name: 'is_open',
1277
- description: 'Whether any covers in this role are open (position > 0)',
1278
- type: 'boolean',
1279
- example: true,
1280
- }),
1281
- (0, class_transformer_1.Expose)({ name: 'is_open' }),
1282
- __metadata("design:type", Boolean)
1283
- ], RoleCoversStateDataModel.prototype, "isOpen", void 0);
1284
- __decorate([
1285
- (0, swagger_1.ApiProperty)({
1286
- name: 'is_closed',
1287
- description: 'Whether all covers in this role are closed (position = 0)',
1288
- type: 'boolean',
1289
- example: false,
1290
- }),
1291
- (0, class_transformer_1.Expose)({ name: 'is_closed' }),
1292
- __metadata("design:type", Boolean)
1293
- ], RoleCoversStateDataModel.prototype, "isClosed", void 0);
1294
- __decorate([
1295
- (0, swagger_1.ApiProperty)({
1296
- name: 'devices_count',
1297
- description: 'Number of devices in this role',
1298
- type: 'integer',
1299
- example: 1,
1300
- }),
1301
- (0, class_transformer_1.Expose)({ name: 'devices_count' }),
1302
- __metadata("design:type", Number)
1303
- ], RoleCoversStateDataModel.prototype, "devicesCount", void 0);
1304
- __decorate([
1305
- (0, swagger_1.ApiProperty)({
1306
- name: 'devices_open',
1307
- description: 'Number of devices that are open in this role',
1308
- type: 'integer',
1309
- example: 1,
1310
- }),
1311
- (0, class_transformer_1.Expose)({ name: 'devices_open' }),
1312
- __metadata("design:type", Number)
1313
- ], RoleCoversStateDataModel.prototype, "devicesOpen", void 0);
1314
- exports.RoleCoversStateDataModel = RoleCoversStateDataModel = RoleCoversStateDataModel_1 = __decorate([
1315
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataRoleCoversState' })
1316
- ], RoleCoversStateDataModel);
1317
- let CoversStateDataModel = CoversStateDataModel_1 = class CoversStateDataModel {
1318
- static fromState(state) {
1319
- const model = new CoversStateDataModel_1();
1320
- model.hasCovers = state.hasCovers;
1321
- model.detectedMode = state.detectedMode;
1322
- model.modeConfidence = state.modeConfidence;
1323
- model.modeMatchPercentage = state.modeMatchPercentage;
1324
- model.isModeFromIntent = state.isModeFromIntent;
1325
- model.averagePosition = state.averagePosition;
1326
- model.isPositionMixed = state.isPositionMixed;
1327
- model.averageTilt = state.averageTilt;
1328
- model.isTiltMixed = state.isTiltMixed;
1329
- model.hasTilt = state.hasTilt;
1330
- model.anyOpen = state.anyOpen;
1331
- model.allClosed = state.allClosed;
1332
- model.devicesCount = state.devicesCount;
1333
- const rolesRecord = {};
1334
- for (const [roleKey, roleState] of Object.entries(state.roles)) {
1335
- const roleModel = RoleCoversStateDataModel.fromState(roleState);
1336
- rolesRecord[roleKey] = (0, class_transformer_1.instanceToPlain)(roleModel, { excludeExtraneousValues: true });
1337
- }
1338
- model.roles = rolesRecord;
1339
- model.coversByRole = { ...state.coversByRole };
1340
- model.lastAppliedMode = state.lastAppliedMode;
1341
- model.lastAppliedAt = state.lastAppliedAt;
1342
- return model;
1343
- }
1344
- };
1345
- exports.CoversStateDataModel = CoversStateDataModel;
1346
- __decorate([
1347
- (0, swagger_1.ApiProperty)({
1348
- name: 'has_covers',
1349
- description: 'Whether the space has any controllable covers',
1350
- type: 'boolean',
1351
- example: true,
1352
- }),
1353
- (0, class_transformer_1.Expose)({ name: 'has_covers' }),
1354
- __metadata("design:type", Boolean)
1355
- ], CoversStateDataModel.prototype, "hasCovers", void 0);
1356
- __decorate([
1357
- (0, swagger_1.ApiPropertyOptional)({
1358
- name: 'detected_mode',
1359
- description: 'The covers mode detected from current device states, null if no mode matches',
1360
- enum: spaces_constants_1.CoversMode,
1361
- nullable: true,
1362
- example: spaces_constants_1.CoversMode.OPEN,
1363
- }),
1364
- (0, class_transformer_1.Expose)({ name: 'detected_mode' }),
1365
- __metadata("design:type", String)
1366
- ], CoversStateDataModel.prototype, "detectedMode", void 0);
1367
- __decorate([
1368
- (0, swagger_1.ApiProperty)({
1369
- name: 'mode_confidence',
1370
- description: 'Confidence level of mode detection: exact (100% match), approximate (70-99% match), none (no match)',
1371
- enum: ['exact', 'approximate', 'none'],
1372
- example: 'exact',
1373
- }),
1374
- (0, class_transformer_1.Expose)({ name: 'mode_confidence' }),
1375
- __metadata("design:type", String)
1376
- ], CoversStateDataModel.prototype, "modeConfidence", void 0);
1377
- __decorate([
1378
- (0, swagger_1.ApiPropertyOptional)({
1379
- name: 'mode_match_percentage',
1380
- description: 'Percentage of role rules that match the detected mode (0-100), null if no mode detected',
1381
- type: 'number',
1382
- nullable: true,
1383
- example: 100,
1384
- }),
1385
- (0, class_transformer_1.Expose)({ name: 'mode_match_percentage' }),
1386
- __metadata("design:type", Number)
1387
- ], CoversStateDataModel.prototype, "modeMatchPercentage", void 0);
1388
- __decorate([
1389
- (0, swagger_1.ApiProperty)({
1390
- name: 'is_mode_from_intent',
1391
- description: 'Whether the current mode was set by intent (true) or achieved by manual adjustments (false)',
1392
- type: 'boolean',
1393
- example: true,
1394
- }),
1395
- (0, class_transformer_1.Expose)({ name: 'is_mode_from_intent' }),
1396
- __metadata("design:type", Boolean)
1397
- ], CoversStateDataModel.prototype, "isModeFromIntent", void 0);
1398
- __decorate([
1399
- (0, swagger_1.ApiPropertyOptional)({
1400
- name: 'average_position',
1401
- description: 'Average position of all covers (0-100, null if no covers)',
1402
- type: 'integer',
1403
- nullable: true,
1404
- example: 75,
1405
- }),
1406
- (0, class_transformer_1.Expose)({ name: 'average_position' }),
1407
- __metadata("design:type", Number)
1408
- ], CoversStateDataModel.prototype, "averagePosition", void 0);
1409
- __decorate([
1410
- (0, swagger_1.ApiProperty)({
1411
- name: 'is_position_mixed',
1412
- description: 'Whether covers have different positions (not uniform)',
1413
- type: 'boolean',
1414
- example: false,
1415
- }),
1416
- (0, class_transformer_1.Expose)({ name: 'is_position_mixed' }),
1417
- __metadata("design:type", Boolean)
1418
- ], CoversStateDataModel.prototype, "isPositionMixed", void 0);
1419
- __decorate([
1420
- (0, swagger_1.ApiPropertyOptional)({
1421
- name: 'average_tilt',
1422
- description: 'Average tilt of all covers with tilt support (0-100, null if none)',
1423
- type: 'integer',
1424
- nullable: true,
1425
- example: null,
1426
- }),
1427
- (0, class_transformer_1.Expose)({ name: 'average_tilt' }),
1428
- __metadata("design:type", Number)
1429
- ], CoversStateDataModel.prototype, "averageTilt", void 0);
1430
- __decorate([
1431
- (0, swagger_1.ApiProperty)({
1432
- name: 'is_tilt_mixed',
1433
- description: 'Whether covers have different tilt values (not uniform)',
1434
- type: 'boolean',
1435
- example: false,
1436
- }),
1437
- (0, class_transformer_1.Expose)({ name: 'is_tilt_mixed' }),
1438
- __metadata("design:type", Boolean)
1439
- ], CoversStateDataModel.prototype, "isTiltMixed", void 0);
1440
- __decorate([
1441
- (0, swagger_1.ApiProperty)({
1442
- name: 'has_tilt',
1443
- description: 'Whether any covers support tilt',
1444
- type: 'boolean',
1445
- example: false,
1446
- }),
1447
- (0, class_transformer_1.Expose)({ name: 'has_tilt' }),
1448
- __metadata("design:type", Boolean)
1449
- ], CoversStateDataModel.prototype, "hasTilt", void 0);
1450
- __decorate([
1451
- (0, swagger_1.ApiProperty)({
1452
- name: 'any_open',
1453
- description: 'Whether any covers are open (position > 0)',
1454
- type: 'boolean',
1455
- example: true,
1456
- }),
1457
- (0, class_transformer_1.Expose)({ name: 'any_open' }),
1458
- __metadata("design:type", Boolean)
1459
- ], CoversStateDataModel.prototype, "anyOpen", void 0);
1460
- __decorate([
1461
- (0, swagger_1.ApiProperty)({
1462
- name: 'all_closed',
1463
- description: 'Whether all covers are closed (position = 0)',
1464
- type: 'boolean',
1465
- example: false,
1466
- }),
1467
- (0, class_transformer_1.Expose)({ name: 'all_closed' }),
1468
- __metadata("design:type", Boolean)
1469
- ], CoversStateDataModel.prototype, "allClosed", void 0);
1470
- __decorate([
1471
- (0, swagger_1.ApiProperty)({
1472
- name: 'devices_count',
1473
- description: 'Total number of cover devices in the space',
1474
- type: 'integer',
1475
- example: 2,
1476
- }),
1477
- (0, class_transformer_1.Expose)({ name: 'devices_count' }),
1478
- __metadata("design:type", Number)
1479
- ], CoversStateDataModel.prototype, "devicesCount", void 0);
1480
- __decorate([
1481
- (0, swagger_1.ApiProperty)({
1482
- description: 'Per-role aggregated state',
1483
- type: 'object',
1484
- additionalProperties: { type: 'object' },
1485
- example: {
1486
- primary: {
1487
- role: 'primary',
1488
- position: 75,
1489
- is_position_mixed: false,
1490
- tilt: null,
1491
- is_tilt_mixed: false,
1492
- has_tilt: false,
1493
- is_open: true,
1494
- is_closed: false,
1495
- devices_count: 1,
1496
- devices_open: 1,
1497
- },
1498
- },
1499
- }),
1500
- (0, class_transformer_1.Expose)(),
1501
- __metadata("design:type", Object)
1502
- ], CoversStateDataModel.prototype, "roles", void 0);
1503
- __decorate([
1504
- (0, swagger_1.ApiProperty)({
1505
- name: 'covers_by_role',
1506
- description: 'Count of covers grouped by role',
1507
- type: 'object',
1508
- additionalProperties: { type: 'integer' },
1509
- example: { primary: 1, blackout: 1 },
1510
- }),
1511
- (0, class_transformer_1.Expose)({ name: 'covers_by_role' }),
1512
- __metadata("design:type", Object)
1513
- ], CoversStateDataModel.prototype, "coversByRole", void 0);
1514
- __decorate([
1515
- (0, swagger_1.ApiPropertyOptional)({
1516
- name: 'last_applied_mode',
1517
- description: 'The last covers mode that was explicitly applied via intent (from storage)',
1518
- enum: spaces_constants_1.CoversMode,
1519
- nullable: true,
1520
- }),
1521
- (0, class_transformer_1.Expose)({ name: 'last_applied_mode' }),
1522
- __metadata("design:type", String)
1523
- ], CoversStateDataModel.prototype, "lastAppliedMode", void 0);
1524
- __decorate([
1525
- (0, swagger_1.ApiPropertyOptional)({
1526
- name: 'last_applied_at',
1527
- description: 'When the last mode was applied',
1528
- type: 'string',
1529
- format: 'date-time',
1530
- nullable: true,
1531
- example: null,
1532
- }),
1533
- (0, class_transformer_1.Expose)({ name: 'last_applied_at' }),
1534
- __metadata("design:type", Date)
1535
- ], CoversStateDataModel.prototype, "lastAppliedAt", void 0);
1536
- exports.CoversStateDataModel = CoversStateDataModel = CoversStateDataModel_1 = __decorate([
1537
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCoversState' })
1538
- ], CoversStateDataModel);
1539
- let CoversStateResponseModel = class CoversStateResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1540
- };
1541
- exports.CoversStateResponseModel = CoversStateResponseModel;
1542
- __decorate([
1543
- (0, swagger_1.ApiProperty)({
1544
- description: 'The covers state data',
1545
- type: () => CoversStateDataModel,
1546
- }),
1547
- (0, class_transformer_1.Expose)(),
1548
- (0, class_transformer_1.Type)(() => CoversStateDataModel),
1549
- __metadata("design:type", CoversStateDataModel)
1550
- ], CoversStateResponseModel.prototype, "data", void 0);
1551
- exports.CoversStateResponseModel = CoversStateResponseModel = __decorate([
1552
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCoversState' })
1553
- ], CoversStateResponseModel);
1554
- let CoversIntentResultDataModel = class CoversIntentResultDataModel {
1555
- };
1556
- exports.CoversIntentResultDataModel = CoversIntentResultDataModel;
1557
- __decorate([
1558
- (0, swagger_1.ApiProperty)({
1559
- description: 'Whether the intent was executed successfully',
1560
- type: 'boolean',
1561
- example: true,
1562
- }),
1563
- (0, class_transformer_1.Expose)(),
1564
- __metadata("design:type", Boolean)
1565
- ], CoversIntentResultDataModel.prototype, "success", void 0);
1566
- __decorate([
1567
- (0, swagger_1.ApiProperty)({
1568
- name: 'affected_devices',
1569
- description: 'Number of devices that were successfully affected',
1570
- type: 'integer',
1571
- example: 2,
1572
- }),
1573
- (0, class_transformer_1.Expose)({ name: 'affected_devices' }),
1574
- __metadata("design:type", Number)
1575
- ], CoversIntentResultDataModel.prototype, "affectedDevices", void 0);
1576
- __decorate([
1577
- (0, swagger_1.ApiProperty)({
1578
- name: 'failed_devices',
1579
- description: 'Number of devices that failed to respond',
1580
- type: 'integer',
1581
- example: 0,
1582
- }),
1583
- (0, class_transformer_1.Expose)({ name: 'failed_devices' }),
1584
- __metadata("design:type", Number)
1585
- ], CoversIntentResultDataModel.prototype, "failedDevices", void 0);
1586
- __decorate([
1587
- (0, swagger_1.ApiPropertyOptional)({
1588
- name: 'skipped_offline_devices',
1589
- description: 'Number of devices skipped because they are offline',
1590
- type: 'integer',
1591
- example: 1,
1592
- }),
1593
- (0, class_transformer_1.Expose)({ name: 'skipped_offline_devices' }),
1594
- __metadata("design:type", Number)
1595
- ], CoversIntentResultDataModel.prototype, "skippedOfflineDevices", void 0);
1596
- __decorate([
1597
- (0, swagger_1.ApiPropertyOptional)({
1598
- name: 'offline_device_ids',
1599
- description: 'IDs of devices that were skipped because they are offline',
1600
- type: 'array',
1601
- items: { type: 'string', format: 'uuid' },
1602
- example: ['a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7'],
1603
- }),
1604
- (0, class_transformer_1.Expose)({ name: 'offline_device_ids' }),
1605
- __metadata("design:type", Array)
1606
- ], CoversIntentResultDataModel.prototype, "offlineDeviceIds", void 0);
1607
- __decorate([
1608
- (0, swagger_1.ApiPropertyOptional)({
1609
- name: 'failed_targets',
1610
- description: 'List of device IDs where command execution failed',
1611
- type: [String],
1612
- nullable: true,
1613
- example: ['device-uuid-1'],
1614
- }),
1615
- (0, class_transformer_1.Expose)({ name: 'failed_targets' }),
1616
- __metadata("design:type", Array)
1617
- ], CoversIntentResultDataModel.prototype, "failedTargets", void 0);
1618
- __decorate([
1619
- (0, swagger_1.ApiPropertyOptional)({
1620
- name: 'new_position',
1621
- description: 'The new average position after the intent (null if not applicable)',
1622
- type: 'integer',
1623
- nullable: true,
1624
- example: 50,
1625
- }),
1626
- (0, class_transformer_1.Expose)({ name: 'new_position' }),
1627
- __metadata("design:type", Number)
1628
- ], CoversIntentResultDataModel.prototype, "newPosition", void 0);
1629
- exports.CoversIntentResultDataModel = CoversIntentResultDataModel = __decorate([
1630
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCoversIntentResult' })
1631
- ], CoversIntentResultDataModel);
1632
- let CoversIntentResponseModel = class CoversIntentResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1633
- };
1634
- exports.CoversIntentResponseModel = CoversIntentResponseModel;
1635
- __decorate([
1636
- (0, swagger_1.ApiProperty)({
1637
- description: 'The result of the covers intent execution',
1638
- type: () => CoversIntentResultDataModel,
1639
- }),
1640
- (0, class_transformer_1.Expose)(),
1641
- (0, class_transformer_1.Type)(() => CoversIntentResultDataModel),
1642
- __metadata("design:type", CoversIntentResultDataModel)
1643
- ], CoversIntentResponseModel.prototype, "data", void 0);
1644
- exports.CoversIntentResponseModel = CoversIntentResponseModel = __decorate([
1645
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCoversIntent' })
1646
- ], CoversIntentResponseModel);
1647
- let CoversTargetDataModel = class CoversTargetDataModel {
1648
- };
1649
- exports.CoversTargetDataModel = CoversTargetDataModel;
1650
- __decorate([
1651
- (0, swagger_1.ApiProperty)({
1652
- name: 'device_id',
1653
- description: 'ID of the window covering device',
1654
- type: 'string',
1655
- format: 'uuid',
1656
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
1657
- }),
1658
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
1659
- __metadata("design:type", String)
1660
- ], CoversTargetDataModel.prototype, "deviceId", void 0);
1661
- __decorate([
1662
- (0, swagger_1.ApiProperty)({
1663
- name: 'device_name',
1664
- description: 'Name of the device',
1665
- type: 'string',
1666
- example: 'Living Room Blinds',
1667
- }),
1668
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
1669
- __metadata("design:type", String)
1670
- ], CoversTargetDataModel.prototype, "deviceName", void 0);
1671
- __decorate([
1672
- (0, swagger_1.ApiProperty)({
1673
- name: 'channel_id',
1674
- description: 'ID of the window covering channel',
1675
- type: 'string',
1676
- format: 'uuid',
1677
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
1678
- }),
1679
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
1680
- __metadata("design:type", String)
1681
- ], CoversTargetDataModel.prototype, "channelId", void 0);
1682
- __decorate([
1683
- (0, swagger_1.ApiProperty)({
1684
- name: 'channel_name',
1685
- description: 'Name of the channel',
1686
- type: 'string',
1687
- example: 'Window Covering',
1688
- }),
1689
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
1690
- __metadata("design:type", String)
1691
- ], CoversTargetDataModel.prototype, "channelName", void 0);
1692
- __decorate([
1693
- (0, swagger_1.ApiPropertyOptional)({
1694
- description: 'The assigned covers role (null if not assigned)',
1695
- enum: spaces_constants_1.CoversRole,
1696
- nullable: true,
1697
- example: spaces_constants_1.CoversRole.PRIMARY,
1698
- }),
1699
- (0, class_transformer_1.Expose)(),
1700
- __metadata("design:type", String)
1701
- ], CoversTargetDataModel.prototype, "role", void 0);
1702
- __decorate([
1703
- (0, swagger_1.ApiProperty)({
1704
- description: 'Priority for role ordering (lower = higher priority)',
1705
- type: 'integer',
1706
- example: 0,
1707
- }),
1708
- (0, class_transformer_1.Expose)(),
1709
- __metadata("design:type", Number)
1710
- ], CoversTargetDataModel.prototype, "priority", void 0);
1711
- __decorate([
1712
- (0, swagger_1.ApiProperty)({
1713
- name: 'has_position',
1714
- description: 'Whether the cover supports position control',
1715
- type: 'boolean',
1716
- example: true,
1717
- }),
1718
- (0, class_transformer_1.Expose)({ name: 'has_position' }),
1719
- __metadata("design:type", Boolean)
1720
- ], CoversTargetDataModel.prototype, "hasPosition", void 0);
1721
- __decorate([
1722
- (0, swagger_1.ApiProperty)({
1723
- name: 'has_command',
1724
- description: 'Whether the cover supports open/close/stop commands',
1725
- type: 'boolean',
1726
- example: true,
1727
- }),
1728
- (0, class_transformer_1.Expose)({ name: 'has_command' }),
1729
- __metadata("design:type", Boolean)
1730
- ], CoversTargetDataModel.prototype, "hasCommand", void 0);
1731
- __decorate([
1732
- (0, swagger_1.ApiProperty)({
1733
- name: 'has_tilt',
1734
- description: 'Whether the cover supports tilt control',
1735
- type: 'boolean',
1736
- example: false,
1737
- }),
1738
- (0, class_transformer_1.Expose)({ name: 'has_tilt' }),
1739
- __metadata("design:type", Boolean)
1740
- ], CoversTargetDataModel.prototype, "hasTilt", void 0);
1741
- __decorate([
1742
- (0, swagger_1.ApiPropertyOptional)({
1743
- name: 'cover_type',
1744
- description: 'Type of cover (curtain, blind, roller, etc.)',
1745
- type: 'string',
1746
- nullable: true,
1747
- example: 'blind',
1748
- }),
1749
- (0, class_transformer_1.Expose)({ name: 'cover_type' }),
1750
- __metadata("design:type", String)
1751
- ], CoversTargetDataModel.prototype, "coverType", void 0);
1752
- exports.CoversTargetDataModel = CoversTargetDataModel = __decorate([
1753
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCoversTarget' })
1754
- ], CoversTargetDataModel);
1755
- let CoversTargetsResponseModel = class CoversTargetsResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1756
- };
1757
- exports.CoversTargetsResponseModel = CoversTargetsResponseModel;
1758
- __decorate([
1759
- (0, swagger_1.ApiProperty)({
1760
- description: 'Array of covers targets in the space with their role assignments',
1761
- type: () => [CoversTargetDataModel],
1762
- }),
1763
- (0, class_transformer_1.Expose)(),
1764
- (0, class_transformer_1.Type)(() => CoversTargetDataModel),
1765
- __metadata("design:type", Array)
1766
- ], CoversTargetsResponseModel.prototype, "data", void 0);
1767
- exports.CoversTargetsResponseModel = CoversTargetsResponseModel = __decorate([
1768
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCoversTargets' })
1769
- ], CoversTargetsResponseModel);
1770
- let CoversRoleResponseModel = class CoversRoleResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1771
- };
1772
- exports.CoversRoleResponseModel = CoversRoleResponseModel;
1773
- __decorate([
1774
- (0, swagger_1.ApiProperty)({
1775
- description: 'The covers role assignment',
1776
- type: () => space_covers_role_entity_1.SpaceCoversRoleEntity,
1777
- }),
1778
- (0, class_transformer_1.Expose)(),
1779
- (0, class_transformer_1.Type)(() => space_covers_role_entity_1.SpaceCoversRoleEntity),
1780
- __metadata("design:type", space_covers_role_entity_1.SpaceCoversRoleEntity)
1781
- ], CoversRoleResponseModel.prototype, "data", void 0);
1782
- exports.CoversRoleResponseModel = CoversRoleResponseModel = __decorate([
1783
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCoversRole' })
1784
- ], CoversRoleResponseModel);
1785
- let BulkCoversRoleResultItemModel = class BulkCoversRoleResultItemModel {
1786
- };
1787
- exports.BulkCoversRoleResultItemModel = BulkCoversRoleResultItemModel;
1788
- __decorate([
1789
- (0, swagger_1.ApiProperty)({
1790
- name: 'device_id',
1791
- description: 'ID of the window covering device',
1792
- type: 'string',
1793
- format: 'uuid',
1794
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
1795
- }),
1796
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
1797
- __metadata("design:type", String)
1798
- ], BulkCoversRoleResultItemModel.prototype, "deviceId", void 0);
1799
- __decorate([
1800
- (0, swagger_1.ApiProperty)({
1801
- name: 'channel_id',
1802
- description: 'ID of the window covering channel',
1803
- type: 'string',
1804
- format: 'uuid',
1805
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
1806
- }),
1807
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
1808
- __metadata("design:type", String)
1809
- ], BulkCoversRoleResultItemModel.prototype, "channelId", void 0);
1810
- __decorate([
1811
- (0, swagger_1.ApiProperty)({
1812
- description: 'Whether the role was set successfully',
1813
- type: 'boolean',
1814
- example: true,
1815
- }),
1816
- (0, class_transformer_1.Expose)(),
1817
- __metadata("design:type", Boolean)
1818
- ], BulkCoversRoleResultItemModel.prototype, "success", void 0);
1819
- __decorate([
1820
- (0, swagger_1.ApiPropertyOptional)({
1821
- description: 'The role that was set (null if failed)',
1822
- enum: spaces_constants_1.CoversRole,
1823
- nullable: true,
1824
- example: spaces_constants_1.CoversRole.PRIMARY,
1825
- }),
1826
- (0, class_transformer_1.Expose)(),
1827
- __metadata("design:type", String)
1828
- ], BulkCoversRoleResultItemModel.prototype, "role", void 0);
1829
- __decorate([
1830
- (0, swagger_1.ApiPropertyOptional)({
1831
- description: 'Error message if the role assignment failed',
1832
- type: 'string',
1833
- nullable: true,
1834
- example: null,
1835
- }),
1836
- (0, class_transformer_1.Expose)(),
1837
- __metadata("design:type", String)
1838
- ], BulkCoversRoleResultItemModel.prototype, "error", void 0);
1839
- exports.BulkCoversRoleResultItemModel = BulkCoversRoleResultItemModel = __decorate([
1840
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkCoversRoleResultItem' })
1841
- ], BulkCoversRoleResultItemModel);
1842
- let BulkCoversRolesResultDataModel = class BulkCoversRolesResultDataModel {
1843
- };
1844
- exports.BulkCoversRolesResultDataModel = BulkCoversRolesResultDataModel;
1845
- __decorate([
1846
- (0, swagger_1.ApiProperty)({
1847
- description: 'Whether all role assignments succeeded',
1848
- type: 'boolean',
1849
- example: true,
1850
- }),
1851
- (0, class_transformer_1.Expose)(),
1852
- __metadata("design:type", Boolean)
1853
- ], BulkCoversRolesResultDataModel.prototype, "success", void 0);
1854
- __decorate([
1855
- (0, swagger_1.ApiProperty)({
1856
- name: 'total_count',
1857
- description: 'Total number of role assignments attempted',
1858
- type: 'integer',
1859
- example: 2,
1860
- }),
1861
- (0, class_transformer_1.Expose)({ name: 'total_count' }),
1862
- __metadata("design:type", Number)
1863
- ], BulkCoversRolesResultDataModel.prototype, "totalCount", void 0);
1864
- __decorate([
1865
- (0, swagger_1.ApiProperty)({
1866
- name: 'success_count',
1867
- description: 'Number of successful role assignments',
1868
- type: 'integer',
1869
- example: 2,
1870
- }),
1871
- (0, class_transformer_1.Expose)({ name: 'success_count' }),
1872
- __metadata("design:type", Number)
1873
- ], BulkCoversRolesResultDataModel.prototype, "successCount", void 0);
1874
- __decorate([
1875
- (0, swagger_1.ApiProperty)({
1876
- name: 'failure_count',
1877
- description: 'Number of failed role assignments',
1878
- type: 'integer',
1879
- example: 0,
1880
- }),
1881
- (0, class_transformer_1.Expose)({ name: 'failure_count' }),
1882
- __metadata("design:type", Number)
1883
- ], BulkCoversRolesResultDataModel.prototype, "failureCount", void 0);
1884
- __decorate([
1885
- (0, swagger_1.ApiProperty)({
1886
- description: 'Detailed results for each role assignment',
1887
- type: () => [BulkCoversRoleResultItemModel],
1888
- }),
1889
- (0, class_transformer_1.Expose)(),
1890
- (0, class_transformer_1.Type)(() => BulkCoversRoleResultItemModel),
1891
- __metadata("design:type", Array)
1892
- ], BulkCoversRolesResultDataModel.prototype, "results", void 0);
1893
- exports.BulkCoversRolesResultDataModel = BulkCoversRolesResultDataModel = __decorate([
1894
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkCoversRolesResult' })
1895
- ], BulkCoversRolesResultDataModel);
1896
- let BulkCoversRolesResponseModel = class BulkCoversRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1897
- };
1898
- exports.BulkCoversRolesResponseModel = BulkCoversRolesResponseModel;
1899
- __decorate([
1900
- (0, swagger_1.ApiProperty)({
1901
- description: 'The result of the bulk covers role update',
1902
- type: () => BulkCoversRolesResultDataModel,
1903
- }),
1904
- (0, class_transformer_1.Expose)(),
1905
- (0, class_transformer_1.Type)(() => BulkCoversRolesResultDataModel),
1906
- __metadata("design:type", BulkCoversRolesResultDataModel)
1907
- ], BulkCoversRolesResponseModel.prototype, "data", void 0);
1908
- exports.BulkCoversRolesResponseModel = BulkCoversRolesResponseModel = __decorate([
1909
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResBulkCoversRoles' })
1910
- ], BulkCoversRolesResponseModel);
1911
- let SuggestionDataModel = class SuggestionDataModel {
1912
- };
1913
- exports.SuggestionDataModel = SuggestionDataModel;
1914
- __decorate([
1915
- (0, swagger_1.ApiProperty)({
1916
- description: 'Type of the suggestion',
1917
- enum: spaces_constants_1.SuggestionType,
1918
- example: spaces_constants_1.SuggestionType.LIGHTING_RELAX,
1919
- }),
1920
- (0, class_transformer_1.Expose)(),
1921
- __metadata("design:type", String)
1922
- ], SuggestionDataModel.prototype, "type", void 0);
1923
- __decorate([
1924
- (0, swagger_1.ApiProperty)({
1925
- description: 'Short title for the suggestion',
1926
- type: 'string',
1927
- example: 'Relax lighting',
1928
- }),
1929
- (0, class_transformer_1.Expose)(),
1930
- __metadata("design:type", String)
1931
- ], SuggestionDataModel.prototype, "title", void 0);
1932
- __decorate([
1933
- (0, swagger_1.ApiPropertyOptional)({
1934
- description: 'Optional reason/explanation for the suggestion',
1935
- type: 'string',
1936
- nullable: true,
1937
- example: 'Evening time - switch to a calmer lighting mode',
1938
- }),
1939
- (0, class_transformer_1.Expose)(),
1940
- __metadata("design:type", String)
1941
- ], SuggestionDataModel.prototype, "reason", void 0);
1942
- __decorate([
1943
- (0, swagger_1.ApiProperty)({
1944
- name: 'intent_type',
1945
- description: 'The intent type this suggestion would execute',
1946
- type: 'string',
1947
- example: 'set_mode',
1948
- }),
1949
- (0, class_transformer_1.Expose)({ name: 'intent_type' }),
1950
- __metadata("design:type", String)
1951
- ], SuggestionDataModel.prototype, "intentType", void 0);
1952
- __decorate([
1953
- (0, swagger_1.ApiPropertyOptional)({
1954
- name: 'intent_mode',
1955
- description: 'The intent mode parameter (if applicable)',
1956
- type: 'string',
1957
- nullable: true,
1958
- example: 'relax',
1959
- }),
1960
- (0, class_transformer_1.Expose)({ name: 'intent_mode' }),
1961
- __metadata("design:type", String)
1962
- ], SuggestionDataModel.prototype, "intentMode", void 0);
1963
- exports.SuggestionDataModel = SuggestionDataModel = __decorate([
1964
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSuggestion' })
1965
- ], SuggestionDataModel);
1966
- let SuggestionResponseModel = class SuggestionResponseModel extends api_response_model_1.BaseSuccessResponseModel {
1967
- };
1968
- exports.SuggestionResponseModel = SuggestionResponseModel;
1969
- __decorate([
1970
- (0, swagger_1.ApiProperty)({
1971
- description: 'The suggestion data (null if no suggestion available)',
1972
- type: () => SuggestionDataModel,
1973
- nullable: true,
1974
- }),
1975
- (0, class_transformer_1.Expose)(),
1976
- (0, class_transformer_1.Type)(() => SuggestionDataModel),
1977
- __metadata("design:type", SuggestionDataModel)
1978
- ], SuggestionResponseModel.prototype, "data", void 0);
1979
- exports.SuggestionResponseModel = SuggestionResponseModel = __decorate([
1980
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResSuggestion' })
1981
- ], SuggestionResponseModel);
1982
- let SuggestionFeedbackResultDataModel = class SuggestionFeedbackResultDataModel {
1983
- };
1984
- exports.SuggestionFeedbackResultDataModel = SuggestionFeedbackResultDataModel;
1985
- __decorate([
1986
- (0, swagger_1.ApiProperty)({
1987
- description: 'Whether the feedback was recorded successfully',
1988
- type: 'boolean',
1989
- example: true,
1990
- }),
1991
- (0, class_transformer_1.Expose)(),
1992
- __metadata("design:type", Boolean)
1993
- ], SuggestionFeedbackResultDataModel.prototype, "success", void 0);
1994
- __decorate([
1995
- (0, swagger_1.ApiPropertyOptional)({
1996
- name: 'intent_executed',
1997
- description: 'Whether the intent was executed (only for applied feedback)',
1998
- type: 'boolean',
1999
- example: true,
2000
- }),
2001
- (0, class_transformer_1.Expose)({ name: 'intent_executed' }),
2002
- __metadata("design:type", Boolean)
2003
- ], SuggestionFeedbackResultDataModel.prototype, "intentExecuted", void 0);
2004
- exports.SuggestionFeedbackResultDataModel = SuggestionFeedbackResultDataModel = __decorate([
2005
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSuggestionFeedbackResult' })
2006
- ], SuggestionFeedbackResultDataModel);
2007
- let SuggestionFeedbackResponseModel = class SuggestionFeedbackResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2008
- };
2009
- exports.SuggestionFeedbackResponseModel = SuggestionFeedbackResponseModel;
2010
- __decorate([
2011
- (0, swagger_1.ApiProperty)({
2012
- description: 'The result of the suggestion feedback',
2013
- type: () => SuggestionFeedbackResultDataModel,
2014
- }),
2015
- (0, class_transformer_1.Expose)(),
2016
- (0, class_transformer_1.Type)(() => SuggestionFeedbackResultDataModel),
2017
- __metadata("design:type", SuggestionFeedbackResultDataModel)
2018
- ], SuggestionFeedbackResponseModel.prototype, "data", void 0);
2019
- exports.SuggestionFeedbackResponseModel = SuggestionFeedbackResponseModel = __decorate([
2020
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResSuggestionFeedback' })
2021
- ], SuggestionFeedbackResponseModel);
2022
- let CategoryTemplateDataModel = class CategoryTemplateDataModel {
2023
- };
2024
- exports.CategoryTemplateDataModel = CategoryTemplateDataModel;
2025
- __decorate([
2026
- (0, swagger_1.ApiProperty)({
2027
- description: 'Category identifier',
2028
- enum: spaces_constants_1.ALL_SPACE_CATEGORIES,
2029
- example: spaces_constants_1.SpaceRoomCategory.LIVING_ROOM,
2030
- }),
2031
- (0, class_transformer_1.Expose)(),
2032
- __metadata("design:type", String)
2033
- ], CategoryTemplateDataModel.prototype, "category", void 0);
2034
- __decorate([
2035
- (0, swagger_1.ApiProperty)({
2036
- description: 'Suggested icon for the category',
2037
- type: 'string',
2038
- example: 'mdi:sofa',
2039
- }),
2040
- (0, class_transformer_1.Expose)(),
2041
- __metadata("design:type", String)
2042
- ], CategoryTemplateDataModel.prototype, "icon", void 0);
2043
- __decorate([
2044
- (0, swagger_1.ApiProperty)({
2045
- description: 'Default description for the category',
2046
- type: 'string',
2047
- example: 'Main living and entertainment area',
2048
- }),
2049
- (0, class_transformer_1.Expose)(),
2050
- __metadata("design:type", String)
2051
- ], CategoryTemplateDataModel.prototype, "description", void 0);
2052
- exports.CategoryTemplateDataModel = CategoryTemplateDataModel = __decorate([
2053
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCategoryTemplate' })
2054
- ], CategoryTemplateDataModel);
2055
- let CategoryTemplatesResponseModel = class CategoryTemplatesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2056
- };
2057
- exports.CategoryTemplatesResponseModel = CategoryTemplatesResponseModel;
2058
- __decorate([
2059
- (0, swagger_1.ApiProperty)({
2060
- description: 'Array of category templates with default values',
2061
- type: 'array',
2062
- items: { $ref: (0, swagger_1.getSchemaPath)(CategoryTemplateDataModel) },
2063
- }),
2064
- (0, class_transformer_1.Expose)(),
2065
- (0, class_transformer_1.Type)(() => CategoryTemplateDataModel),
2066
- __metadata("design:type", Array)
2067
- ], CategoryTemplatesResponseModel.prototype, "data", void 0);
2068
- exports.CategoryTemplatesResponseModel = CategoryTemplatesResponseModel = __decorate([
2069
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCategoryTemplates' })
2070
- ], CategoryTemplatesResponseModel);
2071
- let IntentEnumValueDataModel = class IntentEnumValueDataModel {
2072
- };
2073
- exports.IntentEnumValueDataModel = IntentEnumValueDataModel;
2074
- __decorate([
2075
- (0, swagger_1.ApiProperty)({
2076
- description: 'The enum value identifier',
2077
- type: 'string',
2078
- example: 'work',
2079
- }),
2080
- (0, class_transformer_1.Expose)(),
2081
- __metadata("design:type", String)
2082
- ], IntentEnumValueDataModel.prototype, "value", void 0);
2083
- __decorate([
2084
- (0, swagger_1.ApiProperty)({
2085
- description: 'Human-readable label for the value',
2086
- type: 'string',
2087
- example: 'Work',
2088
- }),
2089
- (0, class_transformer_1.Expose)(),
2090
- __metadata("design:type", String)
2091
- ], IntentEnumValueDataModel.prototype, "label", void 0);
2092
- __decorate([
2093
- (0, swagger_1.ApiPropertyOptional)({
2094
- description: 'Description of what this value does',
2095
- type: 'string',
2096
- example: 'Bright lighting for focus and productivity',
2097
- }),
2098
- (0, class_transformer_1.Expose)(),
2099
- __metadata("design:type", String)
2100
- ], IntentEnumValueDataModel.prototype, "description", void 0);
2101
- __decorate([
2102
- (0, swagger_1.ApiPropertyOptional)({
2103
- description: 'Icon identifier for this value',
2104
- type: 'string',
2105
- example: 'mdi:briefcase',
2106
- }),
2107
- (0, class_transformer_1.Expose)(),
2108
- __metadata("design:type", String)
2109
- ], IntentEnumValueDataModel.prototype, "icon", void 0);
2110
- exports.IntentEnumValueDataModel = IntentEnumValueDataModel = __decorate([
2111
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataIntentEnumValue' })
2112
- ], IntentEnumValueDataModel);
2113
- let IntentParamDataModel = class IntentParamDataModel {
2114
- };
2115
- exports.IntentParamDataModel = IntentParamDataModel;
2116
- __decorate([
2117
- (0, swagger_1.ApiProperty)({
2118
- description: 'Parameter name',
2119
- type: 'string',
2120
- example: 'mode',
2121
- }),
2122
- (0, class_transformer_1.Expose)(),
2123
- __metadata("design:type", String)
2124
- ], IntentParamDataModel.prototype, "name", void 0);
2125
- __decorate([
2126
- (0, swagger_1.ApiProperty)({
2127
- description: 'Parameter type',
2128
- enum: ['enum', 'boolean', 'number'],
2129
- example: 'enum',
2130
- }),
2131
- (0, class_transformer_1.Expose)(),
2132
- __metadata("design:type", String)
2133
- ], IntentParamDataModel.prototype, "type", void 0);
2134
- __decorate([
2135
- (0, swagger_1.ApiProperty)({
2136
- description: 'Whether the parameter is required',
2137
- type: 'boolean',
2138
- example: true,
2139
- }),
2140
- (0, class_transformer_1.Expose)(),
2141
- __metadata("design:type", Boolean)
2142
- ], IntentParamDataModel.prototype, "required", void 0);
2143
- __decorate([
2144
- (0, swagger_1.ApiProperty)({
2145
- description: 'Description of the parameter',
2146
- type: 'string',
2147
- example: 'The lighting mode to apply',
2148
- }),
2149
- (0, class_transformer_1.Expose)(),
2150
- __metadata("design:type", String)
2151
- ], IntentParamDataModel.prototype, "description", void 0);
2152
- __decorate([
2153
- (0, swagger_1.ApiPropertyOptional)({
2154
- name: 'enum_values',
2155
- description: 'Available values for enum type parameters',
2156
- type: () => [IntentEnumValueDataModel],
2157
- }),
2158
- (0, class_transformer_1.Expose)({ name: 'enum_values' }),
2159
- (0, class_transformer_1.Type)(() => IntentEnumValueDataModel),
2160
- __metadata("design:type", Array)
2161
- ], IntentParamDataModel.prototype, "enumValues", void 0);
2162
- __decorate([
2163
- (0, swagger_1.ApiPropertyOptional)({
2164
- name: 'min_value',
2165
- description: 'Minimum value for number type parameters',
2166
- type: 'number',
2167
- example: -10,
2168
- }),
2169
- (0, class_transformer_1.Expose)({ name: 'min_value' }),
2170
- __metadata("design:type", Number)
2171
- ], IntentParamDataModel.prototype, "minValue", void 0);
2172
- __decorate([
2173
- (0, swagger_1.ApiPropertyOptional)({
2174
- name: 'max_value',
2175
- description: 'Maximum value for number type parameters',
2176
- type: 'number',
2177
- example: 50,
2178
- }),
2179
- (0, class_transformer_1.Expose)({ name: 'max_value' }),
2180
- __metadata("design:type", Number)
2181
- ], IntentParamDataModel.prototype, "maxValue", void 0);
2182
- exports.IntentParamDataModel = IntentParamDataModel = __decorate([
2183
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataIntentParam' })
2184
- ], IntentParamDataModel);
2185
- let IntentTypeDataModel = class IntentTypeDataModel {
2186
- };
2187
- exports.IntentTypeDataModel = IntentTypeDataModel;
2188
- __decorate([
2189
- (0, swagger_1.ApiProperty)({
2190
- description: 'Intent type identifier',
2191
- type: 'string',
2192
- example: 'set_mode',
2193
- }),
2194
- (0, class_transformer_1.Expose)(),
2195
- __metadata("design:type", String)
2196
- ], IntentTypeDataModel.prototype, "type", void 0);
2197
- __decorate([
2198
- (0, swagger_1.ApiProperty)({
2199
- description: 'Human-readable label for the intent',
2200
- type: 'string',
2201
- example: 'Set Mode',
2202
- }),
2203
- (0, class_transformer_1.Expose)(),
2204
- __metadata("design:type", String)
2205
- ], IntentTypeDataModel.prototype, "label", void 0);
2206
- __decorate([
2207
- (0, swagger_1.ApiProperty)({
2208
- description: 'Description of what the intent does',
2209
- type: 'string',
2210
- example: 'Set a lighting mode (work/relax/night) with role-based brightness levels',
2211
- }),
2212
- (0, class_transformer_1.Expose)(),
2213
- __metadata("design:type", String)
2214
- ], IntentTypeDataModel.prototype, "description", void 0);
2215
- __decorate([
2216
- (0, swagger_1.ApiProperty)({
2217
- description: 'Icon identifier for the intent',
2218
- type: 'string',
2219
- example: 'mdi:lightbulb-group',
2220
- }),
2221
- (0, class_transformer_1.Expose)(),
2222
- __metadata("design:type", String)
2223
- ], IntentTypeDataModel.prototype, "icon", void 0);
2224
- __decorate([
2225
- (0, swagger_1.ApiProperty)({
2226
- description: 'Parameters for this intent',
2227
- type: () => [IntentParamDataModel],
2228
- }),
2229
- (0, class_transformer_1.Expose)(),
2230
- (0, class_transformer_1.Type)(() => IntentParamDataModel),
2231
- __metadata("design:type", Array)
2232
- ], IntentTypeDataModel.prototype, "params", void 0);
2233
- exports.IntentTypeDataModel = IntentTypeDataModel = __decorate([
2234
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataIntentType' })
2235
- ], IntentTypeDataModel);
2236
- let IntentCategoryDataModel = class IntentCategoryDataModel {
2237
- };
2238
- exports.IntentCategoryDataModel = IntentCategoryDataModel;
2239
- __decorate([
2240
- (0, swagger_1.ApiProperty)({
2241
- description: 'Category identifier',
2242
- enum: spaces_constants_1.IntentCategory,
2243
- example: spaces_constants_1.IntentCategory.LIGHTING,
2244
- }),
2245
- (0, class_transformer_1.Expose)(),
2246
- __metadata("design:type", String)
2247
- ], IntentCategoryDataModel.prototype, "category", void 0);
2248
- __decorate([
2249
- (0, swagger_1.ApiProperty)({
2250
- description: 'Human-readable label for the category',
2251
- type: 'string',
2252
- example: 'Lighting',
2253
- }),
2254
- (0, class_transformer_1.Expose)(),
2255
- __metadata("design:type", String)
2256
- ], IntentCategoryDataModel.prototype, "label", void 0);
2257
- __decorate([
2258
- (0, swagger_1.ApiProperty)({
2259
- description: 'Description of the category',
2260
- type: 'string',
2261
- example: 'Control lights in the space with modes and brightness adjustments',
2262
- }),
2263
- (0, class_transformer_1.Expose)(),
2264
- __metadata("design:type", String)
2265
- ], IntentCategoryDataModel.prototype, "description", void 0);
2266
- __decorate([
2267
- (0, swagger_1.ApiProperty)({
2268
- description: 'Icon identifier for the category',
2269
- type: 'string',
2270
- example: 'mdi:lightbulb-group',
2271
- }),
2272
- (0, class_transformer_1.Expose)(),
2273
- __metadata("design:type", String)
2274
- ], IntentCategoryDataModel.prototype, "icon", void 0);
2275
- __decorate([
2276
- (0, swagger_1.ApiProperty)({
2277
- description: 'Available intents in this category',
2278
- type: () => [IntentTypeDataModel],
2279
- }),
2280
- (0, class_transformer_1.Expose)(),
2281
- (0, class_transformer_1.Type)(() => IntentTypeDataModel),
2282
- __metadata("design:type", Array)
2283
- ], IntentCategoryDataModel.prototype, "intents", void 0);
2284
- exports.IntentCategoryDataModel = IntentCategoryDataModel = __decorate([
2285
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataIntentCategory' })
2286
- ], IntentCategoryDataModel);
2287
- let QuickActionDataModel = class QuickActionDataModel {
2288
- };
2289
- exports.QuickActionDataModel = QuickActionDataModel;
2290
- __decorate([
2291
- (0, swagger_1.ApiProperty)({
2292
- description: 'Quick action type identifier',
2293
- enum: spaces_constants_1.QuickActionType,
2294
- example: spaces_constants_1.QuickActionType.LIGHTING_WORK,
2295
- }),
2296
- (0, class_transformer_1.Expose)(),
2297
- __metadata("design:type", String)
2298
- ], QuickActionDataModel.prototype, "type", void 0);
2299
- __decorate([
2300
- (0, swagger_1.ApiProperty)({
2301
- description: 'Human-readable label for the action',
2302
- type: 'string',
2303
- example: 'Work Mode',
2304
- }),
2305
- (0, class_transformer_1.Expose)(),
2306
- __metadata("design:type", String)
2307
- ], QuickActionDataModel.prototype, "label", void 0);
2308
- __decorate([
2309
- (0, swagger_1.ApiProperty)({
2310
- description: 'Description of the action',
2311
- type: 'string',
2312
- example: 'Bright lighting for focus',
2313
- }),
2314
- (0, class_transformer_1.Expose)(),
2315
- __metadata("design:type", String)
2316
- ], QuickActionDataModel.prototype, "description", void 0);
2317
- __decorate([
2318
- (0, swagger_1.ApiProperty)({
2319
- description: 'Icon identifier for the action',
2320
- type: 'string',
2321
- example: 'mdi:briefcase',
2322
- }),
2323
- (0, class_transformer_1.Expose)(),
2324
- __metadata("design:type", String)
2325
- ], QuickActionDataModel.prototype, "icon", void 0);
2326
- __decorate([
2327
- (0, swagger_1.ApiProperty)({
2328
- description: 'The intent category this action belongs to',
2329
- enum: spaces_constants_1.IntentCategory,
2330
- example: spaces_constants_1.IntentCategory.LIGHTING,
2331
- }),
2332
- (0, class_transformer_1.Expose)(),
2333
- __metadata("design:type", String)
2334
- ], QuickActionDataModel.prototype, "category", void 0);
2335
- exports.QuickActionDataModel = QuickActionDataModel = __decorate([
2336
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataQuickAction' })
2337
- ], QuickActionDataModel);
2338
- let LightingRoleMetaDataModel = class LightingRoleMetaDataModel {
2339
- };
2340
- exports.LightingRoleMetaDataModel = LightingRoleMetaDataModel;
2341
- __decorate([
2342
- (0, swagger_1.ApiProperty)({
2343
- description: 'Role identifier',
2344
- enum: spaces_constants_1.LightingRole,
2345
- example: spaces_constants_1.LightingRole.MAIN,
2346
- }),
2347
- (0, class_transformer_1.Expose)(),
2348
- __metadata("design:type", String)
2349
- ], LightingRoleMetaDataModel.prototype, "value", void 0);
2350
- __decorate([
2351
- (0, swagger_1.ApiProperty)({
2352
- description: 'Human-readable label for the role',
2353
- type: 'string',
2354
- example: 'Main',
2355
- }),
2356
- (0, class_transformer_1.Expose)(),
2357
- __metadata("design:type", String)
2358
- ], LightingRoleMetaDataModel.prototype, "label", void 0);
2359
- __decorate([
2360
- (0, swagger_1.ApiProperty)({
2361
- description: 'Description of the role',
2362
- type: 'string',
2363
- example: 'Primary/ceiling lights',
2364
- }),
2365
- (0, class_transformer_1.Expose)(),
2366
- __metadata("design:type", String)
2367
- ], LightingRoleMetaDataModel.prototype, "description", void 0);
2368
- __decorate([
2369
- (0, swagger_1.ApiPropertyOptional)({
2370
- description: 'Icon identifier for the role',
2371
- type: 'string',
2372
- example: 'mdi:ceiling-light',
2373
- }),
2374
- (0, class_transformer_1.Expose)(),
2375
- __metadata("design:type", String)
2376
- ], LightingRoleMetaDataModel.prototype, "icon", void 0);
2377
- exports.LightingRoleMetaDataModel = LightingRoleMetaDataModel = __decorate([
2378
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingRoleMeta' })
2379
- ], LightingRoleMetaDataModel);
2380
- let LightingRoleBrightnessRuleDataModel = class LightingRoleBrightnessRuleDataModel {
2381
- };
2382
- exports.LightingRoleBrightnessRuleDataModel = LightingRoleBrightnessRuleDataModel;
2383
- __decorate([
2384
- (0, swagger_1.ApiProperty)({
2385
- description: 'Whether lights with this role should be on',
2386
- type: 'boolean',
2387
- example: true,
2388
- }),
2389
- (0, class_transformer_1.Expose)(),
2390
- __metadata("design:type", Boolean)
2391
- ], LightingRoleBrightnessRuleDataModel.prototype, "on", void 0);
2392
- __decorate([
2393
- (0, swagger_1.ApiPropertyOptional)({
2394
- description: 'Brightness level (0-100), null if light should be off',
2395
- type: 'number',
2396
- nullable: true,
2397
- example: 100,
2398
- }),
2399
- (0, class_transformer_1.Expose)(),
2400
- __metadata("design:type", Number)
2401
- ], LightingRoleBrightnessRuleDataModel.prototype, "brightness", void 0);
2402
- exports.LightingRoleBrightnessRuleDataModel = LightingRoleBrightnessRuleDataModel = __decorate([
2403
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingRoleBrightnessRule' })
2404
- ], LightingRoleBrightnessRuleDataModel);
2405
- let LightingModeOrchestrationDataModel = class LightingModeOrchestrationDataModel {
2406
- };
2407
- exports.LightingModeOrchestrationDataModel = LightingModeOrchestrationDataModel;
2408
- __decorate([
2409
- (0, swagger_1.ApiProperty)({
2410
- description: 'Mode identifier',
2411
- enum: spaces_constants_1.LightingMode,
2412
- example: spaces_constants_1.LightingMode.WORK,
2413
- }),
2414
- (0, class_transformer_1.Expose)(),
2415
- __metadata("design:type", String)
2416
- ], LightingModeOrchestrationDataModel.prototype, "mode", void 0);
2417
- __decorate([
2418
- (0, swagger_1.ApiProperty)({
2419
- description: 'Human-readable label for the mode',
2420
- type: 'string',
2421
- example: 'Work',
2422
- }),
2423
- (0, class_transformer_1.Expose)(),
2424
- __metadata("design:type", String)
2425
- ], LightingModeOrchestrationDataModel.prototype, "label", void 0);
2426
- __decorate([
2427
- (0, swagger_1.ApiProperty)({
2428
- description: 'Description of the mode',
2429
- type: 'string',
2430
- example: 'Bright lighting for focus and productivity',
2431
- }),
2432
- (0, class_transformer_1.Expose)(),
2433
- __metadata("design:type", String)
2434
- ], LightingModeOrchestrationDataModel.prototype, "description", void 0);
2435
- __decorate([
2436
- (0, swagger_1.ApiPropertyOptional)({
2437
- description: 'Icon identifier for the mode',
2438
- type: 'string',
2439
- example: 'mdi:briefcase',
2440
- }),
2441
- (0, class_transformer_1.Expose)(),
2442
- __metadata("design:type", String)
2443
- ], LightingModeOrchestrationDataModel.prototype, "icon", void 0);
2444
- __decorate([
2445
- (0, swagger_1.ApiProperty)({
2446
- name: 'mvp_brightness',
2447
- description: 'Brightness level when no roles are configured (0-100)',
2448
- type: 'number',
2449
- example: 100,
2450
- }),
2451
- (0, class_transformer_1.Expose)({ name: 'mvp_brightness' }),
2452
- __metadata("design:type", Number)
2453
- ], LightingModeOrchestrationDataModel.prototype, "mvpBrightness", void 0);
2454
- __decorate([
2455
- (0, swagger_1.ApiProperty)({
2456
- description: 'Role-specific brightness rules for this mode',
2457
- type: 'object',
2458
- additionalProperties: { $ref: (0, swagger_1.getSchemaPath)(LightingRoleBrightnessRuleDataModel) },
2459
- example: { main: { on: true, brightness: 100 }, task: { on: true, brightness: 100 } },
2460
- }),
2461
- (0, class_transformer_1.Expose)(),
2462
- __metadata("design:type", Object)
2463
- ], LightingModeOrchestrationDataModel.prototype, "roles", void 0);
2464
- __decorate([
2465
- (0, swagger_1.ApiPropertyOptional)({
2466
- name: 'fallback_roles',
2467
- description: 'Roles to use as fallback if primary roles have no lights',
2468
- type: [String],
2469
- example: ['main'],
2470
- }),
2471
- (0, class_transformer_1.Expose)({ name: 'fallback_roles' }),
2472
- __metadata("design:type", Array)
2473
- ], LightingModeOrchestrationDataModel.prototype, "fallbackRoles", void 0);
2474
- __decorate([
2475
- (0, swagger_1.ApiPropertyOptional)({
2476
- name: 'fallback_brightness',
2477
- description: 'Brightness level for fallback roles',
2478
- type: 'number',
2479
- example: 20,
2480
- }),
2481
- (0, class_transformer_1.Expose)({ name: 'fallback_brightness' }),
2482
- __metadata("design:type", Number)
2483
- ], LightingModeOrchestrationDataModel.prototype, "fallbackBrightness", void 0);
2484
- exports.LightingModeOrchestrationDataModel = LightingModeOrchestrationDataModel = __decorate([
2485
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingModeOrchestration' }),
2486
- (0, swagger_1.ApiExtraModels)(LightingRoleBrightnessRuleDataModel)
2487
- ], LightingModeOrchestrationDataModel);
2488
- let CoversRolePositionRuleDataModel = class CoversRolePositionRuleDataModel {
2489
- };
2490
- exports.CoversRolePositionRuleDataModel = CoversRolePositionRuleDataModel;
2491
- __decorate([
2492
- (0, swagger_1.ApiProperty)({
2493
- description: 'Position percentage (0=closed, 100=open)',
2494
- type: 'number',
2495
- example: 100,
2496
- }),
2497
- (0, class_transformer_1.Expose)(),
2498
- __metadata("design:type", Number)
2499
- ], CoversRolePositionRuleDataModel.prototype, "position", void 0);
2500
- __decorate([
2501
- (0, swagger_1.ApiPropertyOptional)({
2502
- description: 'Tilt angle (0-100), if supported',
2503
- type: 'number',
2504
- example: 50,
2505
- }),
2506
- (0, class_transformer_1.Expose)(),
2507
- __metadata("design:type", Number)
2508
- ], CoversRolePositionRuleDataModel.prototype, "tilt", void 0);
2509
- exports.CoversRolePositionRuleDataModel = CoversRolePositionRuleDataModel = __decorate([
2510
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCoversRolePositionRule' })
2511
- ], CoversRolePositionRuleDataModel);
2512
- let CoversModeOrchestrationDataModel = class CoversModeOrchestrationDataModel {
2513
- };
2514
- exports.CoversModeOrchestrationDataModel = CoversModeOrchestrationDataModel;
2515
- __decorate([
2516
- (0, swagger_1.ApiProperty)({
2517
- description: 'Mode identifier',
2518
- enum: spaces_constants_1.CoversMode,
2519
- example: spaces_constants_1.CoversMode.OPEN,
2520
- }),
2521
- (0, class_transformer_1.Expose)(),
2522
- __metadata("design:type", String)
2523
- ], CoversModeOrchestrationDataModel.prototype, "mode", void 0);
2524
- __decorate([
2525
- (0, swagger_1.ApiProperty)({
2526
- description: 'Human-readable label for the mode',
2527
- type: 'string',
2528
- example: 'Open',
2529
- }),
2530
- (0, class_transformer_1.Expose)(),
2531
- __metadata("design:type", String)
2532
- ], CoversModeOrchestrationDataModel.prototype, "label", void 0);
2533
- __decorate([
2534
- (0, swagger_1.ApiProperty)({
2535
- description: 'Description of the mode',
2536
- type: 'string',
2537
- example: 'All covers fully open',
2538
- }),
2539
- (0, class_transformer_1.Expose)(),
2540
- __metadata("design:type", String)
2541
- ], CoversModeOrchestrationDataModel.prototype, "description", void 0);
2542
- __decorate([
2543
- (0, swagger_1.ApiPropertyOptional)({
2544
- description: 'Icon identifier for the mode',
2545
- type: 'string',
2546
- example: 'mdi:blinds-open',
2547
- }),
2548
- (0, class_transformer_1.Expose)(),
2549
- __metadata("design:type", String)
2550
- ], CoversModeOrchestrationDataModel.prototype, "icon", void 0);
2551
- __decorate([
2552
- (0, swagger_1.ApiProperty)({
2553
- name: 'mvp_position',
2554
- description: 'Position when no roles are configured (0-100)',
2555
- type: 'number',
2556
- example: 100,
2557
- }),
2558
- (0, class_transformer_1.Expose)({ name: 'mvp_position' }),
2559
- __metadata("design:type", Number)
2560
- ], CoversModeOrchestrationDataModel.prototype, "mvpPosition", void 0);
2561
- __decorate([
2562
- (0, swagger_1.ApiProperty)({
2563
- description: 'Role-specific position rules for this mode',
2564
- type: 'object',
2565
- additionalProperties: { $ref: (0, swagger_1.getSchemaPath)(CoversRolePositionRuleDataModel) },
2566
- example: { primary: { position: 100 }, blackout: { position: 100 } },
2567
- }),
2568
- (0, class_transformer_1.Expose)(),
2569
- __metadata("design:type", Object)
2570
- ], CoversModeOrchestrationDataModel.prototype, "roles", void 0);
2571
- exports.CoversModeOrchestrationDataModel = CoversModeOrchestrationDataModel = __decorate([
2572
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataCoversModeOrchestration' }),
2573
- (0, swagger_1.ApiExtraModels)(CoversRolePositionRuleDataModel)
2574
- ], CoversModeOrchestrationDataModel);
2575
- let IntentCatalogDataModel = class IntentCatalogDataModel {
2576
- };
2577
- exports.IntentCatalogDataModel = IntentCatalogDataModel;
2578
- __decorate([
2579
- (0, swagger_1.ApiProperty)({
2580
- description: 'Available intent categories with their intents',
2581
- type: () => [IntentCategoryDataModel],
2582
- }),
2583
- (0, class_transformer_1.Expose)(),
2584
- (0, class_transformer_1.Type)(() => IntentCategoryDataModel),
2585
- __metadata("design:type", Array)
2586
- ], IntentCatalogDataModel.prototype, "categories", void 0);
2587
- __decorate([
2588
- (0, swagger_1.ApiProperty)({
2589
- name: 'quick_actions',
2590
- description: 'Available quick actions',
2591
- type: () => [QuickActionDataModel],
2592
- }),
2593
- (0, class_transformer_1.Expose)({ name: 'quick_actions' }),
2594
- (0, class_transformer_1.Type)(() => QuickActionDataModel),
2595
- __metadata("design:type", Array)
2596
- ], IntentCatalogDataModel.prototype, "quickActions", void 0);
2597
- __decorate([
2598
- (0, swagger_1.ApiProperty)({
2599
- name: 'lighting_roles',
2600
- description: 'Available lighting roles',
2601
- type: () => [LightingRoleMetaDataModel],
2602
- }),
2603
- (0, class_transformer_1.Expose)({ name: 'lighting_roles' }),
2604
- (0, class_transformer_1.Type)(() => LightingRoleMetaDataModel),
2605
- __metadata("design:type", Array)
2606
- ], IntentCatalogDataModel.prototype, "lightingRoles", void 0);
2607
- __decorate([
2608
- (0, swagger_1.ApiProperty)({
2609
- name: 'lighting_modes',
2610
- description: 'Lighting mode orchestration definitions',
2611
- type: () => [LightingModeOrchestrationDataModel],
2612
- }),
2613
- (0, class_transformer_1.Expose)({ name: 'lighting_modes' }),
2614
- (0, class_transformer_1.Type)(() => LightingModeOrchestrationDataModel),
2615
- __metadata("design:type", Array)
2616
- ], IntentCatalogDataModel.prototype, "lightingModes", void 0);
2617
- __decorate([
2618
- (0, swagger_1.ApiProperty)({
2619
- name: 'covers_modes',
2620
- description: 'Covers mode orchestration definitions',
2621
- type: () => [CoversModeOrchestrationDataModel],
2622
- }),
2623
- (0, class_transformer_1.Expose)({ name: 'covers_modes' }),
2624
- (0, class_transformer_1.Type)(() => CoversModeOrchestrationDataModel),
2625
- __metadata("design:type", Array)
2626
- ], IntentCatalogDataModel.prototype, "coversModes", void 0);
2627
- exports.IntentCatalogDataModel = IntentCatalogDataModel = __decorate([
2628
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataIntentCatalog' })
2629
- ], IntentCatalogDataModel);
2630
- let IntentCatalogResponseModel = class IntentCatalogResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2631
- };
2632
- exports.IntentCatalogResponseModel = IntentCatalogResponseModel;
2633
- __decorate([
2634
- (0, swagger_1.ApiProperty)({
2635
- description: 'The intent catalog with all available intents, quick actions, and roles',
2636
- type: () => IntentCatalogDataModel,
2637
- }),
2638
- (0, class_transformer_1.Expose)(),
2639
- (0, class_transformer_1.Type)(() => IntentCatalogDataModel),
2640
- __metadata("design:type", IntentCatalogDataModel)
2641
- ], IntentCatalogResponseModel.prototype, "data", void 0);
2642
- exports.IntentCatalogResponseModel = IntentCatalogResponseModel = __decorate([
2643
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResIntentCatalog' })
2644
- ], IntentCatalogResponseModel);
2645
- let LightStateSnapshotDataModel = class LightStateSnapshotDataModel {
2646
- };
2647
- exports.LightStateSnapshotDataModel = LightStateSnapshotDataModel;
2648
- __decorate([
2649
- (0, swagger_1.ApiProperty)({
2650
- name: 'device_id',
2651
- description: 'ID of the lighting device',
2652
- type: 'string',
2653
- format: 'uuid',
2654
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
2655
- }),
2656
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
2657
- __metadata("design:type", String)
2658
- ], LightStateSnapshotDataModel.prototype, "deviceId", void 0);
2659
- __decorate([
2660
- (0, swagger_1.ApiProperty)({
2661
- name: 'device_name',
2662
- description: 'Name of the lighting device',
2663
- type: 'string',
2664
- example: 'Living Room Ceiling Light',
2665
- }),
2666
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
2667
- __metadata("design:type", String)
2668
- ], LightStateSnapshotDataModel.prototype, "deviceName", void 0);
2669
- __decorate([
2670
- (0, swagger_1.ApiProperty)({
2671
- name: 'channel_id',
2672
- description: 'ID of the light channel',
2673
- type: 'string',
2674
- format: 'uuid',
2675
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
2676
- }),
2677
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
2678
- __metadata("design:type", String)
2679
- ], LightStateSnapshotDataModel.prototype, "channelId", void 0);
2680
- __decorate([
2681
- (0, swagger_1.ApiProperty)({
2682
- name: 'channel_name',
2683
- description: 'Name of the light channel',
2684
- type: 'string',
2685
- example: 'Light',
2686
- }),
2687
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
2688
- __metadata("design:type", String)
2689
- ], LightStateSnapshotDataModel.prototype, "channelName", void 0);
2690
- __decorate([
2691
- (0, swagger_1.ApiPropertyOptional)({
2692
- description: 'The lighting role assigned to this light (null if not assigned)',
2693
- enum: spaces_constants_1.LightingRole,
2694
- nullable: true,
2695
- example: spaces_constants_1.LightingRole.MAIN,
2696
- }),
2697
- (0, class_transformer_1.Expose)(),
2698
- __metadata("design:type", String)
2699
- ], LightStateSnapshotDataModel.prototype, "role", void 0);
2700
- __decorate([
2701
- (0, swagger_1.ApiProperty)({
2702
- name: 'is_on',
2703
- description: 'Whether the light is currently on',
2704
- type: 'boolean',
2705
- example: true,
2706
- }),
2707
- (0, class_transformer_1.Expose)({ name: 'is_on' }),
2708
- __metadata("design:type", Boolean)
2709
- ], LightStateSnapshotDataModel.prototype, "isOn", void 0);
2710
- __decorate([
2711
- (0, swagger_1.ApiPropertyOptional)({
2712
- description: 'Current brightness level (0-100), null if not supported',
2713
- type: 'number',
2714
- nullable: true,
2715
- example: 75,
2716
- }),
2717
- (0, class_transformer_1.Expose)(),
2718
- __metadata("design:type", Number)
2719
- ], LightStateSnapshotDataModel.prototype, "brightness", void 0);
2720
- __decorate([
2721
- (0, swagger_1.ApiPropertyOptional)({
2722
- name: 'color_temperature',
2723
- description: 'Current color temperature in Kelvin, null if not supported',
2724
- type: 'number',
2725
- nullable: true,
2726
- example: 4000,
2727
- }),
2728
- (0, class_transformer_1.Expose)({ name: 'color_temperature' }),
2729
- __metadata("design:type", Number)
2730
- ], LightStateSnapshotDataModel.prototype, "colorTemperature", void 0);
2731
- __decorate([
2732
- (0, swagger_1.ApiPropertyOptional)({
2733
- description: 'Current color value (hex or RGB string), null if not supported',
2734
- type: 'string',
2735
- nullable: true,
2736
- example: '#ff6b35',
2737
- }),
2738
- (0, class_transformer_1.Expose)(),
2739
- __metadata("design:type", String)
2740
- ], LightStateSnapshotDataModel.prototype, "color", void 0);
2741
- exports.LightStateSnapshotDataModel = LightStateSnapshotDataModel = __decorate([
2742
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightStateSnapshot' })
2743
- ], LightStateSnapshotDataModel);
2744
- let LightingSummaryDataModel = class LightingSummaryDataModel {
2745
- };
2746
- exports.LightingSummaryDataModel = LightingSummaryDataModel;
2747
- __decorate([
2748
- (0, swagger_1.ApiProperty)({
2749
- name: 'total_lights',
2750
- description: 'Total number of lights in the space',
2751
- type: 'integer',
2752
- example: 5,
2753
- }),
2754
- (0, class_transformer_1.Expose)({ name: 'total_lights' }),
2755
- __metadata("design:type", Number)
2756
- ], LightingSummaryDataModel.prototype, "totalLights", void 0);
2757
- __decorate([
2758
- (0, swagger_1.ApiProperty)({
2759
- name: 'lights_on',
2760
- description: 'Number of lights currently on',
2761
- type: 'integer',
2762
- example: 3,
2763
- }),
2764
- (0, class_transformer_1.Expose)({ name: 'lights_on' }),
2765
- __metadata("design:type", Number)
2766
- ], LightingSummaryDataModel.prototype, "lightsOn", void 0);
2767
- __decorate([
2768
- (0, swagger_1.ApiPropertyOptional)({
2769
- name: 'average_brightness',
2770
- description: 'Average brightness of lights that are on (0-100), null if no lights are on with brightness',
2771
- type: 'number',
2772
- nullable: true,
2773
- example: 65,
2774
- }),
2775
- (0, class_transformer_1.Expose)({ name: 'average_brightness' }),
2776
- __metadata("design:type", Number)
2777
- ], LightingSummaryDataModel.prototype, "averageBrightness", void 0);
2778
- exports.LightingSummaryDataModel = LightingSummaryDataModel = __decorate([
2779
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingSummary' })
2780
- ], LightingSummaryDataModel);
2781
- let LightingContextDataModel = class LightingContextDataModel {
2782
- };
2783
- exports.LightingContextDataModel = LightingContextDataModel;
2784
- __decorate([
2785
- (0, swagger_1.ApiProperty)({
2786
- description: 'Summary of lighting state',
2787
- type: () => LightingSummaryDataModel,
2788
- }),
2789
- (0, class_transformer_1.Expose)(),
2790
- (0, class_transformer_1.Type)(() => LightingSummaryDataModel),
2791
- __metadata("design:type", LightingSummaryDataModel)
2792
- ], LightingContextDataModel.prototype, "summary", void 0);
2793
- __decorate([
2794
- (0, swagger_1.ApiProperty)({
2795
- description: 'State of each individual light',
2796
- type: () => [LightStateSnapshotDataModel],
2797
- }),
2798
- (0, class_transformer_1.Expose)(),
2799
- (0, class_transformer_1.Type)(() => LightStateSnapshotDataModel),
2800
- __metadata("design:type", Array)
2801
- ], LightingContextDataModel.prototype, "lights", void 0);
2802
- exports.LightingContextDataModel = LightingContextDataModel = __decorate([
2803
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingContext' })
2804
- ], LightingContextDataModel);
2805
- let ContextSnapshotDataModel = class ContextSnapshotDataModel {
2806
- };
2807
- exports.ContextSnapshotDataModel = ContextSnapshotDataModel;
2808
- __decorate([
2809
- (0, swagger_1.ApiProperty)({
2810
- name: 'space_id',
2811
- description: 'ID of the space',
2812
- type: 'string',
2813
- format: 'uuid',
2814
- example: 'f1e09ba1-429f-4c6a-a2fd-aca6a7c4a8c6',
2815
- }),
2816
- (0, class_transformer_1.Expose)({ name: 'space_id' }),
2817
- __metadata("design:type", String)
2818
- ], ContextSnapshotDataModel.prototype, "spaceId", void 0);
2819
- __decorate([
2820
- (0, swagger_1.ApiProperty)({
2821
- name: 'space_name',
2822
- description: 'Name of the space',
2823
- type: 'string',
2824
- example: 'Living Room',
2825
- }),
2826
- (0, class_transformer_1.Expose)({ name: 'space_name' }),
2827
- __metadata("design:type", String)
2828
- ], ContextSnapshotDataModel.prototype, "spaceName", void 0);
2829
- __decorate([
2830
- (0, swagger_1.ApiProperty)({
2831
- name: 'captured_at',
2832
- description: 'Timestamp when the snapshot was captured',
2833
- type: 'string',
2834
- format: 'date-time',
2835
- example: '2025-01-25T12:00:00Z',
2836
- }),
2837
- (0, class_transformer_1.Expose)({ name: 'captured_at' }),
2838
- __metadata("design:type", Date)
2839
- ], ContextSnapshotDataModel.prototype, "capturedAt", void 0);
2840
- __decorate([
2841
- (0, swagger_1.ApiProperty)({
2842
- description: 'Lighting context snapshot',
2843
- type: () => LightingContextDataModel,
2844
- }),
2845
- (0, class_transformer_1.Expose)(),
2846
- (0, class_transformer_1.Type)(() => LightingContextDataModel),
2847
- __metadata("design:type", LightingContextDataModel)
2848
- ], ContextSnapshotDataModel.prototype, "lighting", void 0);
2849
- __decorate([
2850
- (0, swagger_1.ApiProperty)({
2851
- description: 'Climate state snapshot',
2852
- type: () => ClimateStateDataModel,
2853
- }),
2854
- (0, class_transformer_1.Expose)(),
2855
- (0, class_transformer_1.Type)(() => ClimateStateDataModel),
2856
- __metadata("design:type", ClimateStateDataModel)
2857
- ], ContextSnapshotDataModel.prototype, "climate", void 0);
2858
- exports.ContextSnapshotDataModel = ContextSnapshotDataModel = __decorate([
2859
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataContextSnapshot' })
2860
- ], ContextSnapshotDataModel);
2861
- let ContextSnapshotResponseModel = class ContextSnapshotResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2862
- };
2863
- exports.ContextSnapshotResponseModel = ContextSnapshotResponseModel;
2864
- __decorate([
2865
- (0, swagger_1.ApiProperty)({
2866
- description: 'The complete context snapshot for the space',
2867
- type: () => ContextSnapshotDataModel,
2868
- }),
2869
- (0, class_transformer_1.Expose)(),
2870
- (0, class_transformer_1.Type)(() => ContextSnapshotDataModel),
2871
- __metadata("design:type", ContextSnapshotDataModel)
2872
- ], ContextSnapshotResponseModel.prototype, "data", void 0);
2873
- exports.ContextSnapshotResponseModel = ContextSnapshotResponseModel = __decorate([
2874
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResContextSnapshot' })
2875
- ], ContextSnapshotResponseModel);
2876
- let UndoStateDataModel = class UndoStateDataModel {
2877
- };
2878
- exports.UndoStateDataModel = UndoStateDataModel;
2879
- __decorate([
2880
- (0, swagger_1.ApiProperty)({
2881
- name: 'can_undo',
2882
- description: 'Whether an undo action is available for this space',
2883
- type: 'boolean',
2884
- example: true,
2885
- }),
2886
- (0, class_transformer_1.Expose)({ name: 'can_undo' }),
2887
- __metadata("design:type", Boolean)
2888
- ], UndoStateDataModel.prototype, "canUndo", void 0);
2889
- __decorate([
2890
- (0, swagger_1.ApiPropertyOptional)({
2891
- name: 'action_description',
2892
- description: 'Description of the action that can be undone (null if no undo available)',
2893
- type: 'string',
2894
- nullable: true,
2895
- example: 'Set lighting mode to Work',
2896
- }),
2897
- (0, class_transformer_1.Expose)({ name: 'action_description' }),
2898
- __metadata("design:type", String)
2899
- ], UndoStateDataModel.prototype, "actionDescription", void 0);
2900
- __decorate([
2901
- (0, swagger_1.ApiPropertyOptional)({
2902
- name: 'intent_category',
2903
- description: 'Category of the intent that can be undone (lighting, climate, covers, or media)',
2904
- type: 'string',
2905
- enum: ['lighting', 'climate', 'covers', 'media'],
2906
- nullable: true,
2907
- example: 'lighting',
2908
- }),
2909
- (0, class_transformer_1.Expose)({ name: 'intent_category' }),
2910
- __metadata("design:type", String)
2911
- ], UndoStateDataModel.prototype, "intentCategory", void 0);
2912
- __decorate([
2913
- (0, swagger_1.ApiPropertyOptional)({
2914
- name: 'captured_at',
2915
- description: 'When the undo snapshot was captured',
2916
- type: 'string',
2917
- format: 'date-time',
2918
- nullable: true,
2919
- example: '2025-01-25T12:00:00Z',
2920
- }),
2921
- (0, class_transformer_1.Expose)({ name: 'captured_at' }),
2922
- __metadata("design:type", Date)
2923
- ], UndoStateDataModel.prototype, "capturedAt", void 0);
2924
- __decorate([
2925
- (0, swagger_1.ApiPropertyOptional)({
2926
- name: 'expires_in_seconds',
2927
- description: 'Seconds until this undo entry expires (null if no undo available)',
2928
- type: 'integer',
2929
- nullable: true,
2930
- example: 240,
2931
- }),
2932
- (0, class_transformer_1.Expose)({ name: 'expires_in_seconds' }),
2933
- __metadata("design:type", Number)
2934
- ], UndoStateDataModel.prototype, "expiresInSeconds", void 0);
2935
- exports.UndoStateDataModel = UndoStateDataModel = __decorate([
2936
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataUndoState' })
2937
- ], UndoStateDataModel);
2938
- let UndoStateResponseModel = class UndoStateResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2939
- };
2940
- exports.UndoStateResponseModel = UndoStateResponseModel;
2941
- __decorate([
2942
- (0, swagger_1.ApiProperty)({
2943
- description: 'The undo state for the space',
2944
- type: () => UndoStateDataModel,
2945
- }),
2946
- (0, class_transformer_1.Expose)(),
2947
- (0, class_transformer_1.Type)(() => UndoStateDataModel),
2948
- __metadata("design:type", UndoStateDataModel)
2949
- ], UndoStateResponseModel.prototype, "data", void 0);
2950
- exports.UndoStateResponseModel = UndoStateResponseModel = __decorate([
2951
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResUndoState' })
2952
- ], UndoStateResponseModel);
2953
- let UndoResultDataModel = class UndoResultDataModel {
2954
- };
2955
- exports.UndoResultDataModel = UndoResultDataModel;
2956
- __decorate([
2957
- (0, swagger_1.ApiProperty)({
2958
- description: 'Whether the undo operation was successful',
2959
- type: 'boolean',
2960
- example: true,
2961
- }),
2962
- (0, class_transformer_1.Expose)(),
2963
- __metadata("design:type", Boolean)
2964
- ], UndoResultDataModel.prototype, "success", void 0);
2965
- __decorate([
2966
- (0, swagger_1.ApiProperty)({
2967
- name: 'restored_devices',
2968
- description: 'Number of devices that were restored to their previous state',
2969
- type: 'integer',
2970
- example: 3,
2971
- }),
2972
- (0, class_transformer_1.Expose)({ name: 'restored_devices' }),
2973
- __metadata("design:type", Number)
2974
- ], UndoResultDataModel.prototype, "restoredDevices", void 0);
2975
- __decorate([
2976
- (0, swagger_1.ApiProperty)({
2977
- name: 'failed_devices',
2978
- description: 'Number of devices that failed to restore',
2979
- type: 'integer',
2980
- example: 0,
2981
- }),
2982
- (0, class_transformer_1.Expose)({ name: 'failed_devices' }),
2983
- __metadata("design:type", Number)
2984
- ], UndoResultDataModel.prototype, "failedDevices", void 0);
2985
- __decorate([
2986
- (0, swagger_1.ApiProperty)({
2987
- description: 'Human-readable message about the undo result',
2988
- type: 'string',
2989
- example: 'Restored 3 device(s)',
2990
- }),
2991
- (0, class_transformer_1.Expose)(),
2992
- __metadata("design:type", String)
2993
- ], UndoResultDataModel.prototype, "message", void 0);
2994
- exports.UndoResultDataModel = UndoResultDataModel = __decorate([
2995
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataUndoResult' })
2996
- ], UndoResultDataModel);
2997
- let UndoResultResponseModel = class UndoResultResponseModel extends api_response_model_1.BaseSuccessResponseModel {
2998
- };
2999
- exports.UndoResultResponseModel = UndoResultResponseModel;
3000
- __decorate([
3001
- (0, swagger_1.ApiProperty)({
3002
- description: 'The result of the undo operation',
3003
- type: () => UndoResultDataModel,
3004
- }),
3005
- (0, class_transformer_1.Expose)(),
3006
- (0, class_transformer_1.Type)(() => UndoResultDataModel),
3007
- __metadata("design:type", UndoResultDataModel)
3008
- ], UndoResultResponseModel.prototype, "data", void 0);
3009
- exports.UndoResultResponseModel = UndoResultResponseModel = __decorate([
3010
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResUndoResult' })
3011
- ], UndoResultResponseModel);
3012
- let RoleLastIntentDataModel = class RoleLastIntentDataModel {
3013
- };
3014
- exports.RoleLastIntentDataModel = RoleLastIntentDataModel;
3015
- __decorate([
3016
- (0, swagger_1.ApiPropertyOptional)({
3017
- description: 'Last brightness value set via intent (0-100), null if role was set to OFF or no intent',
3018
- type: 'number',
3019
- nullable: true,
3020
- example: 100,
3021
- }),
3022
- (0, class_transformer_1.Expose)(),
3023
- __metadata("design:type", Number)
3024
- ], RoleLastIntentDataModel.prototype, "brightness", void 0);
3025
- exports.RoleLastIntentDataModel = RoleLastIntentDataModel = __decorate([
3026
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataRoleLastIntent' })
3027
- ], RoleLastIntentDataModel);
3028
- let RoleAggregatedStateDataModel = RoleAggregatedStateDataModel_1 = class RoleAggregatedStateDataModel {
3029
- static fromState(state) {
3030
- const model = new RoleAggregatedStateDataModel_1();
3031
- model.role = state.role;
3032
- model.isOn = state.isOn;
3033
- model.isOnMixed = state.isOnMixed;
3034
- model.brightness = state.brightness;
3035
- model.colorTemperature = state.colorTemperature;
3036
- model.color = state.color;
3037
- model.white = state.white;
3038
- model.isBrightnessMixed = state.isBrightnessMixed;
3039
- model.isColorTemperatureMixed = state.isColorTemperatureMixed;
3040
- model.isColorMixed = state.isColorMixed;
3041
- model.isWhiteMixed = state.isWhiteMixed;
3042
- model.lastIntent = state.lastIntent ? { brightness: state.lastIntent.brightness } : null;
3043
- model.devicesCount = state.devicesCount;
3044
- model.devicesOn = state.devicesOn;
3045
- return model;
3046
- }
3047
- };
3048
- exports.RoleAggregatedStateDataModel = RoleAggregatedStateDataModel;
3049
- __decorate([
3050
- (0, swagger_1.ApiProperty)({
3051
- description: 'The lighting role',
3052
- enum: spaces_constants_1.LightingRole,
3053
- example: spaces_constants_1.LightingRole.MAIN,
3054
- }),
3055
- (0, class_transformer_1.Expose)(),
3056
- __metadata("design:type", String)
3057
- ], RoleAggregatedStateDataModel.prototype, "role", void 0);
3058
- __decorate([
3059
- (0, swagger_1.ApiProperty)({
3060
- name: 'is_on',
3061
- description: 'Whether any light in this role is on',
3062
- type: 'boolean',
3063
- example: true,
3064
- }),
3065
- (0, class_transformer_1.Expose)({ name: 'is_on' }),
3066
- __metadata("design:type", Boolean)
3067
- ], RoleAggregatedStateDataModel.prototype, "isOn", void 0);
3068
- __decorate([
3069
- (0, swagger_1.ApiProperty)({
3070
- name: 'is_on_mixed',
3071
- description: 'Whether lights in this role have different on/off states',
3072
- type: 'boolean',
3073
- example: false,
3074
- }),
3075
- (0, class_transformer_1.Expose)({ name: 'is_on_mixed' }),
3076
- __metadata("design:type", Boolean)
3077
- ], RoleAggregatedStateDataModel.prototype, "isOnMixed", void 0);
3078
- __decorate([
3079
- (0, swagger_1.ApiPropertyOptional)({
3080
- description: 'Uniform brightness of lights in this role (0-100), null if devices have different values (mixed)',
3081
- type: 'number',
3082
- nullable: true,
3083
- example: 85,
3084
- }),
3085
- (0, class_transformer_1.Expose)(),
3086
- __metadata("design:type", Number)
3087
- ], RoleAggregatedStateDataModel.prototype, "brightness", void 0);
3088
- __decorate([
3089
- (0, swagger_1.ApiPropertyOptional)({
3090
- name: 'color_temperature',
3091
- description: 'Uniform color temperature in Kelvin, null if devices have different values (mixed)',
3092
- type: 'number',
3093
- nullable: true,
3094
- example: 4000,
3095
- }),
3096
- (0, class_transformer_1.Expose)({ name: 'color_temperature' }),
3097
- __metadata("design:type", Number)
3098
- ], RoleAggregatedStateDataModel.prototype, "colorTemperature", void 0);
3099
- __decorate([
3100
- (0, swagger_1.ApiPropertyOptional)({
3101
- description: 'Uniform color as hex string (e.g. "#ff6b35"), null if devices have different values (mixed)',
3102
- type: 'string',
3103
- nullable: true,
3104
- example: '#ffffff',
3105
- }),
3106
- (0, class_transformer_1.Expose)(),
3107
- __metadata("design:type", String)
3108
- ], RoleAggregatedStateDataModel.prototype, "color", void 0);
3109
- __decorate([
3110
- (0, swagger_1.ApiPropertyOptional)({
3111
- description: 'Uniform white level (0-100), null if devices have different values (mixed)',
3112
- type: 'number',
3113
- nullable: true,
3114
- example: null,
3115
- }),
3116
- (0, class_transformer_1.Expose)(),
3117
- __metadata("design:type", Number)
3118
- ], RoleAggregatedStateDataModel.prototype, "white", void 0);
3119
- __decorate([
3120
- (0, swagger_1.ApiProperty)({
3121
- name: 'is_brightness_mixed',
3122
- description: 'Whether lights in this role have different brightness values',
3123
- type: 'boolean',
3124
- example: false,
3125
- }),
3126
- (0, class_transformer_1.Expose)({ name: 'is_brightness_mixed' }),
3127
- __metadata("design:type", Boolean)
3128
- ], RoleAggregatedStateDataModel.prototype, "isBrightnessMixed", void 0);
3129
- __decorate([
3130
- (0, swagger_1.ApiProperty)({
3131
- name: 'is_color_temperature_mixed',
3132
- description: 'Whether lights in this role have different color temperature values',
3133
- type: 'boolean',
3134
- example: false,
3135
- }),
3136
- (0, class_transformer_1.Expose)({ name: 'is_color_temperature_mixed' }),
3137
- __metadata("design:type", Boolean)
3138
- ], RoleAggregatedStateDataModel.prototype, "isColorTemperatureMixed", void 0);
3139
- __decorate([
3140
- (0, swagger_1.ApiProperty)({
3141
- name: 'is_color_mixed',
3142
- description: 'Whether lights in this role have different color values',
3143
- type: 'boolean',
3144
- example: false,
3145
- }),
3146
- (0, class_transformer_1.Expose)({ name: 'is_color_mixed' }),
3147
- __metadata("design:type", Boolean)
3148
- ], RoleAggregatedStateDataModel.prototype, "isColorMixed", void 0);
3149
- __decorate([
3150
- (0, swagger_1.ApiProperty)({
3151
- name: 'is_white_mixed',
3152
- description: 'Whether lights in this role have different white level values',
3153
- type: 'boolean',
3154
- example: false,
3155
- }),
3156
- (0, class_transformer_1.Expose)({ name: 'is_white_mixed' }),
3157
- __metadata("design:type", Boolean)
3158
- ], RoleAggregatedStateDataModel.prototype, "isWhiteMixed", void 0);
3159
- __decorate([
3160
- (0, swagger_1.ApiPropertyOptional)({
3161
- name: 'last_intent',
3162
- description: 'Last values set via mode/intent for this role, null if no mode was applied',
3163
- type: () => RoleLastIntentDataModel,
3164
- nullable: true,
3165
- }),
3166
- (0, class_transformer_1.Expose)({ name: 'last_intent' }),
3167
- (0, class_transformer_1.Type)(() => RoleLastIntentDataModel),
3168
- __metadata("design:type", RoleLastIntentDataModel)
3169
- ], RoleAggregatedStateDataModel.prototype, "lastIntent", void 0);
3170
- __decorate([
3171
- (0, swagger_1.ApiProperty)({
3172
- name: 'devices_count',
3173
- description: 'Total number of lights assigned to this role',
3174
- type: 'integer',
3175
- example: 2,
3176
- }),
3177
- (0, class_transformer_1.Expose)({ name: 'devices_count' }),
3178
- __metadata("design:type", Number)
3179
- ], RoleAggregatedStateDataModel.prototype, "devicesCount", void 0);
3180
- __decorate([
3181
- (0, swagger_1.ApiProperty)({
3182
- name: 'devices_on',
3183
- description: 'Number of lights currently on in this role',
3184
- type: 'integer',
3185
- example: 2,
3186
- }),
3187
- (0, class_transformer_1.Expose)({ name: 'devices_on' }),
3188
- __metadata("design:type", Number)
3189
- ], RoleAggregatedStateDataModel.prototype, "devicesOn", void 0);
3190
- exports.RoleAggregatedStateDataModel = RoleAggregatedStateDataModel = RoleAggregatedStateDataModel_1 = __decorate([
3191
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataRoleAggregatedState' })
3192
- ], RoleAggregatedStateDataModel);
3193
- let OtherLightsStateDataModel = OtherLightsStateDataModel_1 = class OtherLightsStateDataModel {
3194
- static fromState(state) {
3195
- const model = new OtherLightsStateDataModel_1();
3196
- model.isOn = state.isOn;
3197
- model.isOnMixed = state.isOnMixed;
3198
- model.brightness = state.brightness;
3199
- model.colorTemperature = state.colorTemperature;
3200
- model.color = state.color;
3201
- model.white = state.white;
3202
- model.isBrightnessMixed = state.isBrightnessMixed;
3203
- model.isColorTemperatureMixed = state.isColorTemperatureMixed;
3204
- model.isColorMixed = state.isColorMixed;
3205
- model.isWhiteMixed = state.isWhiteMixed;
3206
- model.devicesCount = state.devicesCount;
3207
- model.devicesOn = state.devicesOn;
3208
- return model;
3209
- }
3210
- };
3211
- exports.OtherLightsStateDataModel = OtherLightsStateDataModel;
3212
- __decorate([
3213
- (0, swagger_1.ApiProperty)({
3214
- name: 'is_on',
3215
- description: 'Whether any light without role is on',
3216
- type: 'boolean',
3217
- example: false,
3218
- }),
3219
- (0, class_transformer_1.Expose)({ name: 'is_on' }),
3220
- __metadata("design:type", Boolean)
3221
- ], OtherLightsStateDataModel.prototype, "isOn", void 0);
3222
- __decorate([
3223
- (0, swagger_1.ApiProperty)({
3224
- name: 'is_on_mixed',
3225
- description: 'Whether lights without role have different on/off states',
3226
- type: 'boolean',
3227
- example: false,
3228
- }),
3229
- (0, class_transformer_1.Expose)({ name: 'is_on_mixed' }),
3230
- __metadata("design:type", Boolean)
3231
- ], OtherLightsStateDataModel.prototype, "isOnMixed", void 0);
3232
- __decorate([
3233
- (0, swagger_1.ApiPropertyOptional)({
3234
- description: 'Uniform brightness of lights without role (0-100), null if devices have different values (mixed)',
3235
- type: 'number',
3236
- nullable: true,
3237
- example: null,
3238
- }),
3239
- (0, class_transformer_1.Expose)(),
3240
- __metadata("design:type", Number)
3241
- ], OtherLightsStateDataModel.prototype, "brightness", void 0);
3242
- __decorate([
3243
- (0, swagger_1.ApiPropertyOptional)({
3244
- name: 'color_temperature',
3245
- description: 'Uniform color temperature in Kelvin, null if devices have different values (mixed)',
3246
- type: 'number',
3247
- nullable: true,
3248
- example: null,
3249
- }),
3250
- (0, class_transformer_1.Expose)({ name: 'color_temperature' }),
3251
- __metadata("design:type", Number)
3252
- ], OtherLightsStateDataModel.prototype, "colorTemperature", void 0);
3253
- __decorate([
3254
- (0, swagger_1.ApiPropertyOptional)({
3255
- description: 'Uniform color as hex string (e.g. "#ff6b35"), null if devices have different values (mixed)',
3256
- type: 'string',
3257
- nullable: true,
3258
- example: null,
3259
- }),
3260
- (0, class_transformer_1.Expose)(),
3261
- __metadata("design:type", String)
3262
- ], OtherLightsStateDataModel.prototype, "color", void 0);
3263
- __decorate([
3264
- (0, swagger_1.ApiPropertyOptional)({
3265
- description: 'Uniform white level (0-100), null if devices have different values (mixed)',
3266
- type: 'number',
3267
- nullable: true,
3268
- example: null,
3269
- }),
3270
- (0, class_transformer_1.Expose)(),
3271
- __metadata("design:type", Number)
3272
- ], OtherLightsStateDataModel.prototype, "white", void 0);
3273
- __decorate([
3274
- (0, swagger_1.ApiProperty)({
3275
- name: 'is_brightness_mixed',
3276
- description: 'Whether lights without role have different brightness values',
3277
- type: 'boolean',
3278
- example: false,
3279
- }),
3280
- (0, class_transformer_1.Expose)({ name: 'is_brightness_mixed' }),
3281
- __metadata("design:type", Boolean)
3282
- ], OtherLightsStateDataModel.prototype, "isBrightnessMixed", void 0);
3283
- __decorate([
3284
- (0, swagger_1.ApiProperty)({
3285
- name: 'is_color_temperature_mixed',
3286
- description: 'Whether lights without role have different color temperature values',
3287
- type: 'boolean',
3288
- example: false,
3289
- }),
3290
- (0, class_transformer_1.Expose)({ name: 'is_color_temperature_mixed' }),
3291
- __metadata("design:type", Boolean)
3292
- ], OtherLightsStateDataModel.prototype, "isColorTemperatureMixed", void 0);
3293
- __decorate([
3294
- (0, swagger_1.ApiProperty)({
3295
- name: 'is_color_mixed',
3296
- description: 'Whether lights without role have different color values',
3297
- type: 'boolean',
3298
- example: false,
3299
- }),
3300
- (0, class_transformer_1.Expose)({ name: 'is_color_mixed' }),
3301
- __metadata("design:type", Boolean)
3302
- ], OtherLightsStateDataModel.prototype, "isColorMixed", void 0);
3303
- __decorate([
3304
- (0, swagger_1.ApiProperty)({
3305
- name: 'is_white_mixed',
3306
- description: 'Whether lights without role have different white level values',
3307
- type: 'boolean',
3308
- example: false,
3309
- }),
3310
- (0, class_transformer_1.Expose)({ name: 'is_white_mixed' }),
3311
- __metadata("design:type", Boolean)
3312
- ], OtherLightsStateDataModel.prototype, "isWhiteMixed", void 0);
3313
- __decorate([
3314
- (0, swagger_1.ApiProperty)({
3315
- name: 'devices_count',
3316
- description: 'Total number of lights without role',
3317
- type: 'integer',
3318
- example: 3,
3319
- }),
3320
- (0, class_transformer_1.Expose)({ name: 'devices_count' }),
3321
- __metadata("design:type", Number)
3322
- ], OtherLightsStateDataModel.prototype, "devicesCount", void 0);
3323
- __decorate([
3324
- (0, swagger_1.ApiProperty)({
3325
- name: 'devices_on',
3326
- description: 'Number of lights without role currently on',
3327
- type: 'integer',
3328
- example: 0,
3329
- }),
3330
- (0, class_transformer_1.Expose)({ name: 'devices_on' }),
3331
- __metadata("design:type", Number)
3332
- ], OtherLightsStateDataModel.prototype, "devicesOn", void 0);
3333
- exports.OtherLightsStateDataModel = OtherLightsStateDataModel = OtherLightsStateDataModel_1 = __decorate([
3334
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataOtherLightsState' })
3335
- ], OtherLightsStateDataModel);
3336
- let RolesStateMapDataModel = RolesStateMapDataModel_1 = class RolesStateMapDataModel {
3337
- static fromState(roles) {
3338
- const model = new RolesStateMapDataModel_1();
3339
- if (roles[spaces_constants_1.LightingRole.MAIN]) {
3340
- model.main = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.MAIN]);
3341
- }
3342
- if (roles[spaces_constants_1.LightingRole.TASK]) {
3343
- model.task = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.TASK]);
3344
- }
3345
- if (roles[spaces_constants_1.LightingRole.AMBIENT]) {
3346
- model.ambient = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.AMBIENT]);
3347
- }
3348
- if (roles[spaces_constants_1.LightingRole.ACCENT]) {
3349
- model.accent = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.ACCENT]);
3350
- }
3351
- if (roles[spaces_constants_1.LightingRole.NIGHT]) {
3352
- model.night = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.NIGHT]);
3353
- }
3354
- if (roles[spaces_constants_1.LightingRole.OTHER]) {
3355
- model.other = RoleAggregatedStateDataModel.fromState(roles[spaces_constants_1.LightingRole.OTHER]);
3356
- }
3357
- return model;
3358
- }
3359
- };
3360
- exports.RolesStateMapDataModel = RolesStateMapDataModel;
3361
- __decorate([
3362
- (0, swagger_1.ApiPropertyOptional)({
3363
- description: 'State of MAIN role lights',
3364
- type: () => RoleAggregatedStateDataModel,
3365
- nullable: true,
3366
- }),
3367
- (0, class_transformer_1.Expose)(),
3368
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3369
- __metadata("design:type", RoleAggregatedStateDataModel)
3370
- ], RolesStateMapDataModel.prototype, "main", void 0);
3371
- __decorate([
3372
- (0, swagger_1.ApiPropertyOptional)({
3373
- description: 'State of TASK role lights',
3374
- type: () => RoleAggregatedStateDataModel,
3375
- nullable: true,
3376
- }),
3377
- (0, class_transformer_1.Expose)(),
3378
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3379
- __metadata("design:type", RoleAggregatedStateDataModel)
3380
- ], RolesStateMapDataModel.prototype, "task", void 0);
3381
- __decorate([
3382
- (0, swagger_1.ApiPropertyOptional)({
3383
- description: 'State of AMBIENT role lights',
3384
- type: () => RoleAggregatedStateDataModel,
3385
- nullable: true,
3386
- }),
3387
- (0, class_transformer_1.Expose)(),
3388
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3389
- __metadata("design:type", RoleAggregatedStateDataModel)
3390
- ], RolesStateMapDataModel.prototype, "ambient", void 0);
3391
- __decorate([
3392
- (0, swagger_1.ApiPropertyOptional)({
3393
- description: 'State of ACCENT role lights',
3394
- type: () => RoleAggregatedStateDataModel,
3395
- nullable: true,
3396
- }),
3397
- (0, class_transformer_1.Expose)(),
3398
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3399
- __metadata("design:type", RoleAggregatedStateDataModel)
3400
- ], RolesStateMapDataModel.prototype, "accent", void 0);
3401
- __decorate([
3402
- (0, swagger_1.ApiPropertyOptional)({
3403
- description: 'State of NIGHT role lights',
3404
- type: () => RoleAggregatedStateDataModel,
3405
- nullable: true,
3406
- }),
3407
- (0, class_transformer_1.Expose)(),
3408
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3409
- __metadata("design:type", RoleAggregatedStateDataModel)
3410
- ], RolesStateMapDataModel.prototype, "night", void 0);
3411
- __decorate([
3412
- (0, swagger_1.ApiPropertyOptional)({
3413
- description: 'State of OTHER role lights',
3414
- type: () => RoleAggregatedStateDataModel,
3415
- nullable: true,
3416
- }),
3417
- (0, class_transformer_1.Expose)(),
3418
- (0, class_transformer_1.Type)(() => RoleAggregatedStateDataModel),
3419
- __metadata("design:type", RoleAggregatedStateDataModel)
3420
- ], RolesStateMapDataModel.prototype, "other", void 0);
3421
- exports.RolesStateMapDataModel = RolesStateMapDataModel = RolesStateMapDataModel_1 = __decorate([
3422
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataRolesStateMap' })
3423
- ], RolesStateMapDataModel);
3424
- let LightingStateDataModel = LightingStateDataModel_1 = class LightingStateDataModel {
3425
- static fromState(state) {
3426
- const model = new LightingStateDataModel_1();
3427
- model.hasLights = state.hasLights;
3428
- model.detectedMode = state.detectedMode;
3429
- model.modeConfidence = state.modeConfidence;
3430
- model.modeMatchPercentage = state.modeMatchPercentage;
3431
- model.isModeFromIntent = state.isModeFromIntent;
3432
- model.lastAppliedMode = state.lastAppliedMode;
3433
- model.lastAppliedAt = state.lastAppliedAt;
3434
- model.totalLights = state.totalLights;
3435
- model.lightsOn = state.lightsOn;
3436
- model.averageBrightness = state.averageBrightness;
3437
- model.roles = RolesStateMapDataModel.fromState(state.roles);
3438
- model.lightsByRole = { ...state.lightsByRole };
3439
- model.other = OtherLightsStateDataModel.fromState(state.other);
3440
- return model;
3441
- }
3442
- };
3443
- exports.LightingStateDataModel = LightingStateDataModel;
3444
- __decorate([
3445
- (0, swagger_1.ApiProperty)({
3446
- name: 'has_lights',
3447
- description: 'Whether the space has any controllable lights',
3448
- type: 'boolean',
3449
- example: true,
3450
- }),
3451
- (0, class_transformer_1.Expose)({ name: 'has_lights' }),
3452
- __metadata("design:type", Boolean)
3453
- ], LightingStateDataModel.prototype, "hasLights", void 0);
3454
- __decorate([
3455
- (0, swagger_1.ApiPropertyOptional)({
3456
- name: 'detected_mode',
3457
- description: 'The lighting mode detected from current device states, null if no mode matches',
3458
- enum: spaces_constants_1.LightingMode,
3459
- nullable: true,
3460
- example: spaces_constants_1.LightingMode.WORK,
3461
- }),
3462
- (0, class_transformer_1.Expose)({ name: 'detected_mode' }),
3463
- __metadata("design:type", String)
3464
- ], LightingStateDataModel.prototype, "detectedMode", void 0);
3465
- __decorate([
3466
- (0, swagger_1.ApiProperty)({
3467
- name: 'mode_confidence',
3468
- description: 'Confidence level of mode detection: exact (100% match), approximate (70-99% match), none (no match)',
3469
- enum: ['exact', 'approximate', 'none'],
3470
- example: 'exact',
3471
- }),
3472
- (0, class_transformer_1.Expose)({ name: 'mode_confidence' }),
3473
- __metadata("design:type", String)
3474
- ], LightingStateDataModel.prototype, "modeConfidence", void 0);
3475
- __decorate([
3476
- (0, swagger_1.ApiPropertyOptional)({
3477
- name: 'mode_match_percentage',
3478
- description: 'Percentage of role rules that match the detected mode (0-100), null if no mode detected',
3479
- type: 'number',
3480
- nullable: true,
3481
- example: 100,
3482
- }),
3483
- (0, class_transformer_1.Expose)({ name: 'mode_match_percentage' }),
3484
- __metadata("design:type", Number)
3485
- ], LightingStateDataModel.prototype, "modeMatchPercentage", void 0);
3486
- __decorate([
3487
- (0, swagger_1.ApiProperty)({
3488
- name: 'is_mode_from_intent',
3489
- description: 'Whether the current mode was set by intent (true) or achieved by manual adjustments (false)',
3490
- type: 'boolean',
3491
- example: true,
3492
- }),
3493
- (0, class_transformer_1.Expose)({ name: 'is_mode_from_intent' }),
3494
- __metadata("design:type", Boolean)
3495
- ], LightingStateDataModel.prototype, "isModeFromIntent", void 0);
3496
- __decorate([
3497
- (0, swagger_1.ApiPropertyOptional)({
3498
- name: 'last_applied_mode',
3499
- description: 'The last lighting mode that was explicitly applied via intent (from storage)',
3500
- enum: spaces_constants_1.LightingMode,
3501
- nullable: true,
3502
- }),
3503
- (0, class_transformer_1.Expose)({ name: 'last_applied_mode' }),
3504
- __metadata("design:type", String)
3505
- ], LightingStateDataModel.prototype, "lastAppliedMode", void 0);
3506
- __decorate([
3507
- (0, swagger_1.ApiPropertyOptional)({
3508
- name: 'last_applied_at',
3509
- description: 'When the last mode was applied',
3510
- type: 'string',
3511
- format: 'date-time',
3512
- nullable: true,
3513
- example: null,
3514
- }),
3515
- (0, class_transformer_1.Expose)({ name: 'last_applied_at' }),
3516
- __metadata("design:type", Date)
3517
- ], LightingStateDataModel.prototype, "lastAppliedAt", void 0);
3518
- __decorate([
3519
- (0, swagger_1.ApiProperty)({
3520
- name: 'total_lights',
3521
- description: 'Total number of controllable lights in the space',
3522
- type: 'integer',
3523
- example: 5,
3524
- }),
3525
- (0, class_transformer_1.Expose)({ name: 'total_lights' }),
3526
- __metadata("design:type", Number)
3527
- ], LightingStateDataModel.prototype, "totalLights", void 0);
3528
- __decorate([
3529
- (0, swagger_1.ApiProperty)({
3530
- name: 'lights_on',
3531
- description: 'Number of lights currently on',
3532
- type: 'integer',
3533
- example: 3,
3534
- }),
3535
- (0, class_transformer_1.Expose)({ name: 'lights_on' }),
3536
- __metadata("design:type", Number)
3537
- ], LightingStateDataModel.prototype, "lightsOn", void 0);
3538
- __decorate([
3539
- (0, swagger_1.ApiPropertyOptional)({
3540
- name: 'average_brightness',
3541
- description: 'Average brightness of all ON lights (0-100), null if no lights are on or no brightness data',
3542
- type: 'number',
3543
- nullable: true,
3544
- example: 85,
3545
- }),
3546
- (0, class_transformer_1.Expose)({ name: 'average_brightness' }),
3547
- __metadata("design:type", Number)
3548
- ], LightingStateDataModel.prototype, "averageBrightness", void 0);
3549
- __decorate([
3550
- (0, swagger_1.ApiProperty)({
3551
- description: 'Aggregated state per lighting role',
3552
- type: () => RolesStateMapDataModel,
3553
- }),
3554
- (0, class_transformer_1.Expose)(),
3555
- (0, class_transformer_1.Type)(() => RolesStateMapDataModel),
3556
- __metadata("design:type", RolesStateMapDataModel)
3557
- ], LightingStateDataModel.prototype, "roles", void 0);
3558
- __decorate([
3559
- (0, swagger_1.ApiProperty)({
3560
- name: 'lights_by_role',
3561
- description: 'Count of lights grouped by role',
3562
- type: 'object',
3563
- additionalProperties: { type: 'integer' },
3564
- example: { main: 2, task: 1, ambient: 2 },
3565
- }),
3566
- (0, class_transformer_1.Expose)({ name: 'lights_by_role' }),
3567
- __metadata("design:type", Object)
3568
- ], LightingStateDataModel.prototype, "lightsByRole", void 0);
3569
- __decorate([
3570
- (0, swagger_1.ApiProperty)({
3571
- description: 'Aggregated state for lights without role assignment',
3572
- type: () => OtherLightsStateDataModel,
3573
- }),
3574
- (0, class_transformer_1.Expose)(),
3575
- (0, class_transformer_1.Type)(() => OtherLightsStateDataModel),
3576
- __metadata("design:type", OtherLightsStateDataModel)
3577
- ], LightingStateDataModel.prototype, "other", void 0);
3578
- exports.LightingStateDataModel = LightingStateDataModel = LightingStateDataModel_1 = __decorate([
3579
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataLightingState' })
3580
- ], LightingStateDataModel);
3581
- let LightingStateResponseModel = class LightingStateResponseModel extends api_response_model_1.BaseSuccessResponseModel {
3582
- };
3583
- exports.LightingStateResponseModel = LightingStateResponseModel;
3584
- __decorate([
3585
- (0, swagger_1.ApiProperty)({
3586
- description: 'The aggregated lighting state for the space',
3587
- type: () => LightingStateDataModel,
3588
- }),
3589
- (0, class_transformer_1.Expose)(),
3590
- (0, class_transformer_1.Type)(() => LightingStateDataModel),
3591
- __metadata("design:type", LightingStateDataModel)
3592
- ], LightingStateResponseModel.prototype, "data", void 0);
3593
- exports.LightingStateResponseModel = LightingStateResponseModel = __decorate([
3594
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResLightingState' })
3595
- ], LightingStateResponseModel);
3596
- let SensorAdditionalReadingDataModel = class SensorAdditionalReadingDataModel {
3597
- };
3598
- exports.SensorAdditionalReadingDataModel = SensorAdditionalReadingDataModel;
3599
- __decorate([
3600
- (0, swagger_1.ApiProperty)({
3601
- name: 'property_id',
3602
- description: 'ID of the property',
3603
- type: 'string',
3604
- format: 'uuid',
3605
- example: 'e5f41ad6-854b-7a0e-e6cb-f0a8d1e8e2ba',
3606
- }),
3607
- (0, class_transformer_1.Expose)({ name: 'property_id' }),
3608
- __metadata("design:type", String)
3609
- ], SensorAdditionalReadingDataModel.prototype, "propertyId", void 0);
3610
- __decorate([
3611
- (0, swagger_1.ApiProperty)({
3612
- name: 'property_category',
3613
- description: 'Category of the property',
3614
- enum: devices_constants_1.PropertyCategory,
3615
- example: 'level',
3616
- }),
3617
- (0, class_transformer_1.Expose)({ name: 'property_category' }),
3618
- __metadata("design:type", String)
3619
- ], SensorAdditionalReadingDataModel.prototype, "propertyCategory", void 0);
3620
- __decorate([
3621
- (0, swagger_1.ApiPropertyOptional)({
3622
- description: 'Current property value (type depends on property)',
3623
- oneOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }],
3624
- nullable: true,
3625
- example: 'moderate',
3626
- }),
3627
- (0, class_transformer_1.Expose)(),
3628
- __metadata("design:type", Object)
3629
- ], SensorAdditionalReadingDataModel.prototype, "value", void 0);
3630
- __decorate([
3631
- (0, swagger_1.ApiPropertyOptional)({
3632
- description: 'Unit of the property value',
3633
- type: 'string',
3634
- nullable: true,
3635
- example: 'lux',
3636
- }),
3637
- (0, class_transformer_1.Expose)(),
3638
- __metadata("design:type", String)
3639
- ], SensorAdditionalReadingDataModel.prototype, "unit", void 0);
3640
- __decorate([
3641
- (0, swagger_1.ApiPropertyOptional)({
3642
- name: 'updated_at',
3643
- description: 'Timestamp of the last property value update',
3644
- type: 'string',
3645
- format: 'date-time',
3646
- nullable: true,
3647
- example: '2025-01-25T12:00:00Z',
3648
- }),
3649
- (0, class_transformer_1.Expose)({ name: 'updated_at' }),
3650
- (0, class_transformer_1.Transform)(({ value }) => (value instanceof Date ? value.toISOString() : value), {
3651
- toPlainOnly: true,
3652
- }),
3653
- __metadata("design:type", Object)
3654
- ], SensorAdditionalReadingDataModel.prototype, "updatedAt", void 0);
3655
- __decorate([
3656
- (0, swagger_1.ApiPropertyOptional)({
3657
- description: 'Value trend direction computed from recent data points',
3658
- enum: ['rising', 'falling', 'stable'],
3659
- nullable: true,
3660
- example: 'stable',
3661
- }),
3662
- (0, class_transformer_1.Expose)(),
3663
- __metadata("design:type", String)
3664
- ], SensorAdditionalReadingDataModel.prototype, "trend", void 0);
3665
- exports.SensorAdditionalReadingDataModel = SensorAdditionalReadingDataModel = __decorate([
3666
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSensorAdditionalReading' })
3667
- ], SensorAdditionalReadingDataModel);
3668
- let SensorReadingDataModel = class SensorReadingDataModel {
3669
- };
3670
- exports.SensorReadingDataModel = SensorReadingDataModel;
3671
- __decorate([
3672
- (0, swagger_1.ApiProperty)({
3673
- name: 'device_id',
3674
- description: 'ID of the sensor device',
3675
- type: 'string',
3676
- format: 'uuid',
3677
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
3678
- }),
3679
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
3680
- __metadata("design:type", String)
3681
- ], SensorReadingDataModel.prototype, "deviceId", void 0);
3682
- __decorate([
3683
- (0, swagger_1.ApiProperty)({
3684
- name: 'device_name',
3685
- description: 'Name of the sensor device',
3686
- type: 'string',
3687
- example: 'Living Room Sensor',
3688
- }),
3689
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
3690
- __metadata("design:type", String)
3691
- ], SensorReadingDataModel.prototype, "deviceName", void 0);
3692
- __decorate([
3693
- (0, swagger_1.ApiProperty)({
3694
- name: 'channel_id',
3695
- description: 'ID of the sensor channel',
3696
- type: 'string',
3697
- format: 'uuid',
3698
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
3699
- }),
3700
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
3701
- __metadata("design:type", String)
3702
- ], SensorReadingDataModel.prototype, "channelId", void 0);
3703
- __decorate([
3704
- (0, swagger_1.ApiProperty)({
3705
- name: 'channel_name',
3706
- description: 'Name of the sensor channel',
3707
- type: 'string',
3708
- example: 'Temperature',
3709
- }),
3710
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
3711
- __metadata("design:type", String)
3712
- ], SensorReadingDataModel.prototype, "channelName", void 0);
3713
- __decorate([
3714
- (0, swagger_1.ApiProperty)({
3715
- name: 'channel_category',
3716
- description: 'Category of the sensor channel',
3717
- enum: devices_constants_1.ChannelCategory,
3718
- example: 'temperature',
3719
- }),
3720
- (0, class_transformer_1.Expose)({ name: 'channel_category' }),
3721
- __metadata("design:type", String)
3722
- ], SensorReadingDataModel.prototype, "channelCategory", void 0);
3723
- __decorate([
3724
- (0, swagger_1.ApiPropertyOptional)({
3725
- name: 'property_id',
3726
- description: 'ID of the primary property (for time series queries)',
3727
- type: 'string',
3728
- format: 'uuid',
3729
- nullable: true,
3730
- example: 'd4e30fc5-743a-6f9d-d5ba-efe9c0f7d1a9',
3731
- }),
3732
- (0, class_transformer_1.Expose)({ name: 'property_id' }),
3733
- __metadata("design:type", String)
3734
- ], SensorReadingDataModel.prototype, "propertyId", void 0);
3735
- __decorate([
3736
- (0, swagger_1.ApiPropertyOptional)({
3737
- description: 'Current sensor value (type depends on sensor)',
3738
- oneOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }],
3739
- nullable: true,
3740
- example: 22.5,
3741
- }),
3742
- (0, class_transformer_1.Expose)(),
3743
- __metadata("design:type", Object)
3744
- ], SensorReadingDataModel.prototype, "value", void 0);
3745
- __decorate([
3746
- (0, swagger_1.ApiPropertyOptional)({
3747
- description: 'Unit of the sensor value',
3748
- type: 'string',
3749
- nullable: true,
3750
- example: '°C',
3751
- }),
3752
- (0, class_transformer_1.Expose)(),
3753
- __metadata("design:type", String)
3754
- ], SensorReadingDataModel.prototype, "unit", void 0);
3755
- __decorate([
3756
- (0, swagger_1.ApiPropertyOptional)({
3757
- description: 'The sensor role for this channel',
3758
- enum: spaces_constants_1.SensorRole,
3759
- nullable: true,
3760
- example: spaces_constants_1.SensorRole.ENVIRONMENT,
3761
- }),
3762
- (0, class_transformer_1.Expose)(),
3763
- __metadata("design:type", String)
3764
- ], SensorReadingDataModel.prototype, "role", void 0);
3765
- __decorate([
3766
- (0, swagger_1.ApiPropertyOptional)({
3767
- name: 'updated_at',
3768
- description: 'Timestamp of the last property value update',
3769
- type: 'string',
3770
- format: 'date-time',
3771
- nullable: true,
3772
- example: '2025-01-25T12:00:00Z',
3773
- }),
3774
- (0, class_transformer_1.Expose)({ name: 'updated_at' }),
3775
- (0, class_transformer_1.Transform)(({ value }) => (value instanceof Date ? value.toISOString() : value), {
3776
- toPlainOnly: true,
3777
- }),
3778
- __metadata("design:type", Object)
3779
- ], SensorReadingDataModel.prototype, "updatedAt", void 0);
3780
- __decorate([
3781
- (0, swagger_1.ApiPropertyOptional)({
3782
- description: 'Value trend direction computed from recent data points',
3783
- enum: ['rising', 'falling', 'stable'],
3784
- nullable: true,
3785
- example: 'stable',
3786
- }),
3787
- (0, class_transformer_1.Expose)(),
3788
- __metadata("design:type", String)
3789
- ], SensorReadingDataModel.prototype, "trend", void 0);
3790
- __decorate([
3791
- (0, swagger_1.ApiPropertyOptional)({
3792
- name: 'additional_readings',
3793
- description: 'Additional displayable property readings from multi-property channels',
3794
- type: () => [SensorAdditionalReadingDataModel],
3795
- nullable: true,
3796
- }),
3797
- (0, class_transformer_1.Expose)({ name: 'additional_readings' }),
3798
- (0, class_transformer_1.Type)(() => SensorAdditionalReadingDataModel),
3799
- __metadata("design:type", Array)
3800
- ], SensorReadingDataModel.prototype, "additionalReadings", void 0);
3801
- exports.SensorReadingDataModel = SensorReadingDataModel = __decorate([
3802
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSensorReading' })
3803
- ], SensorReadingDataModel);
3804
- let SensorRoleReadingsDataModel = class SensorRoleReadingsDataModel {
3805
- };
3806
- exports.SensorRoleReadingsDataModel = SensorRoleReadingsDataModel;
3807
- __decorate([
3808
- (0, swagger_1.ApiProperty)({
3809
- description: 'The sensor role',
3810
- enum: spaces_constants_1.SensorRole,
3811
- example: spaces_constants_1.SensorRole.ENVIRONMENT,
3812
- }),
3813
- (0, class_transformer_1.Expose)(),
3814
- __metadata("design:type", String)
3815
- ], SensorRoleReadingsDataModel.prototype, "role", void 0);
3816
- __decorate([
3817
- (0, swagger_1.ApiProperty)({
3818
- name: 'sensors_count',
3819
- description: 'Number of sensors with this role',
3820
- type: 'integer',
3821
- example: 3,
3822
- }),
3823
- (0, class_transformer_1.Expose)({ name: 'sensors_count' }),
3824
- __metadata("design:type", Number)
3825
- ], SensorRoleReadingsDataModel.prototype, "sensorsCount", void 0);
3826
- __decorate([
3827
- (0, swagger_1.ApiProperty)({
3828
- description: 'Sensor readings for this role',
3829
- type: () => [SensorReadingDataModel],
3830
- }),
3831
- (0, class_transformer_1.Expose)(),
3832
- (0, class_transformer_1.Type)(() => SensorReadingDataModel),
3833
- __metadata("design:type", Array)
3834
- ], SensorRoleReadingsDataModel.prototype, "readings", void 0);
3835
- exports.SensorRoleReadingsDataModel = SensorRoleReadingsDataModel = __decorate([
3836
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSensorRoleReadings' })
3837
- ], SensorRoleReadingsDataModel);
3838
- let EnvironmentSummaryDataModel = class EnvironmentSummaryDataModel {
3839
- };
3840
- exports.EnvironmentSummaryDataModel = EnvironmentSummaryDataModel;
3841
- __decorate([
3842
- (0, swagger_1.ApiPropertyOptional)({
3843
- name: 'average_temperature',
3844
- description: 'Average temperature from all environment sensors (°C)',
3845
- type: 'number',
3846
- nullable: true,
3847
- example: 22.5,
3848
- }),
3849
- (0, class_transformer_1.Expose)({ name: 'average_temperature' }),
3850
- __metadata("design:type", Number)
3851
- ], EnvironmentSummaryDataModel.prototype, "averageTemperature", void 0);
3852
- __decorate([
3853
- (0, swagger_1.ApiPropertyOptional)({
3854
- name: 'average_humidity',
3855
- description: 'Average humidity from all environment sensors (%)',
3856
- type: 'number',
3857
- nullable: true,
3858
- example: 45,
3859
- }),
3860
- (0, class_transformer_1.Expose)({ name: 'average_humidity' }),
3861
- __metadata("design:type", Number)
3862
- ], EnvironmentSummaryDataModel.prototype, "averageHumidity", void 0);
3863
- __decorate([
3864
- (0, swagger_1.ApiPropertyOptional)({
3865
- name: 'average_pressure',
3866
- description: 'Average atmospheric pressure (hPa)',
3867
- type: 'number',
3868
- nullable: true,
3869
- example: 1013.25,
3870
- }),
3871
- (0, class_transformer_1.Expose)({ name: 'average_pressure' }),
3872
- __metadata("design:type", Number)
3873
- ], EnvironmentSummaryDataModel.prototype, "averagePressure", void 0);
3874
- __decorate([
3875
- (0, swagger_1.ApiPropertyOptional)({
3876
- name: 'average_illuminance',
3877
- description: 'Average light level (lux)',
3878
- type: 'number',
3879
- nullable: true,
3880
- example: 500,
3881
- }),
3882
- (0, class_transformer_1.Expose)({ name: 'average_illuminance' }),
3883
- __metadata("design:type", Number)
3884
- ], EnvironmentSummaryDataModel.prototype, "averageIlluminance", void 0);
3885
- exports.EnvironmentSummaryDataModel = EnvironmentSummaryDataModel = __decorate([
3886
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataEnvironmentSummary' })
3887
- ], EnvironmentSummaryDataModel);
3888
- let SafetyAlertDataModel = class SafetyAlertDataModel {
3889
- };
3890
- exports.SafetyAlertDataModel = SafetyAlertDataModel;
3891
- __decorate([
3892
- (0, swagger_1.ApiProperty)({
3893
- name: 'channel_category',
3894
- description: 'Type of safety sensor that triggered the alert',
3895
- enum: devices_constants_1.ChannelCategory,
3896
- example: 'smoke',
3897
- }),
3898
- (0, class_transformer_1.Expose)({ name: 'channel_category' }),
3899
- __metadata("design:type", String)
3900
- ], SafetyAlertDataModel.prototype, "channelCategory", void 0);
3901
- __decorate([
3902
- (0, swagger_1.ApiProperty)({
3903
- name: 'device_id',
3904
- description: 'ID of the device with the alert',
3905
- type: 'string',
3906
- format: 'uuid',
3907
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
3908
- }),
3909
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
3910
- __metadata("design:type", String)
3911
- ], SafetyAlertDataModel.prototype, "deviceId", void 0);
3912
- __decorate([
3913
- (0, swagger_1.ApiProperty)({
3914
- name: 'device_name',
3915
- description: 'Name of the device with the alert',
3916
- type: 'string',
3917
- example: 'Kitchen Smoke Detector',
3918
- }),
3919
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
3920
- __metadata("design:type", String)
3921
- ], SafetyAlertDataModel.prototype, "deviceName", void 0);
3922
- __decorate([
3923
- (0, swagger_1.ApiProperty)({
3924
- name: 'channel_id',
3925
- description: 'ID of the sensor channel',
3926
- type: 'string',
3927
- format: 'uuid',
3928
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
3929
- }),
3930
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
3931
- __metadata("design:type", String)
3932
- ], SafetyAlertDataModel.prototype, "channelId", void 0);
3933
- __decorate([
3934
- (0, swagger_1.ApiProperty)({
3935
- description: 'Whether the sensor is currently triggered',
3936
- type: 'boolean',
3937
- example: true,
3938
- }),
3939
- (0, class_transformer_1.Expose)(),
3940
- __metadata("design:type", Boolean)
3941
- ], SafetyAlertDataModel.prototype, "triggered", void 0);
3942
- exports.SafetyAlertDataModel = SafetyAlertDataModel = __decorate([
3943
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSafetyAlert' })
3944
- ], SafetyAlertDataModel);
3945
- let SensorStateDataModel = class SensorStateDataModel {
3946
- };
3947
- exports.SensorStateDataModel = SensorStateDataModel;
3948
- __decorate([
3949
- (0, swagger_1.ApiProperty)({
3950
- name: 'has_sensors',
3951
- description: 'Whether the space has any sensor devices',
3952
- type: 'boolean',
3953
- example: true,
3954
- }),
3955
- (0, class_transformer_1.Expose)({ name: 'has_sensors' }),
3956
- __metadata("design:type", Boolean)
3957
- ], SensorStateDataModel.prototype, "hasSensors", void 0);
3958
- __decorate([
3959
- (0, swagger_1.ApiProperty)({
3960
- name: 'total_sensors',
3961
- description: 'Total number of sensor channels in the space',
3962
- type: 'integer',
3963
- example: 5,
3964
- }),
3965
- (0, class_transformer_1.Expose)({ name: 'total_sensors' }),
3966
- __metadata("design:type", Number)
3967
- ], SensorStateDataModel.prototype, "totalSensors", void 0);
3968
- __decorate([
3969
- (0, swagger_1.ApiProperty)({
3970
- name: 'sensors_by_role',
3971
- description: 'Count of sensors grouped by role',
3972
- type: 'object',
3973
- additionalProperties: { type: 'integer' },
3974
- example: { environment: 3, safety: 1, security: 1 },
3975
- }),
3976
- (0, class_transformer_1.Expose)({ name: 'sensors_by_role' }),
3977
- __metadata("design:type", Object)
3978
- ], SensorStateDataModel.prototype, "sensorsByRole", void 0);
3979
- __decorate([
3980
- (0, swagger_1.ApiPropertyOptional)({
3981
- description: 'Aggregated environmental readings summary',
3982
- type: () => EnvironmentSummaryDataModel,
3983
- nullable: true,
3984
- }),
3985
- (0, class_transformer_1.Expose)(),
3986
- (0, class_transformer_1.Type)(() => EnvironmentSummaryDataModel),
3987
- __metadata("design:type", EnvironmentSummaryDataModel)
3988
- ], SensorStateDataModel.prototype, "environment", void 0);
3989
- __decorate([
3990
- (0, swagger_1.ApiProperty)({
3991
- name: 'safety_alerts',
3992
- description: 'List of active safety alerts',
3993
- type: () => [SafetyAlertDataModel],
3994
- }),
3995
- (0, class_transformer_1.Expose)({ name: 'safety_alerts' }),
3996
- (0, class_transformer_1.Type)(() => SafetyAlertDataModel),
3997
- __metadata("design:type", Array)
3998
- ], SensorStateDataModel.prototype, "safetyAlerts", void 0);
3999
- __decorate([
4000
- (0, swagger_1.ApiProperty)({
4001
- name: 'has_safety_alert',
4002
- description: 'Whether any safety sensor is currently triggered',
4003
- type: 'boolean',
4004
- example: false,
4005
- }),
4006
- (0, class_transformer_1.Expose)({ name: 'has_safety_alert' }),
4007
- __metadata("design:type", Boolean)
4008
- ], SensorStateDataModel.prototype, "hasSafetyAlert", void 0);
4009
- __decorate([
4010
- (0, swagger_1.ApiProperty)({
4011
- name: 'motion_detected',
4012
- description: 'Whether any motion sensor is currently detecting motion',
4013
- type: 'boolean',
4014
- example: false,
4015
- }),
4016
- (0, class_transformer_1.Expose)({ name: 'motion_detected' }),
4017
- __metadata("design:type", Boolean)
4018
- ], SensorStateDataModel.prototype, "motionDetected", void 0);
4019
- __decorate([
4020
- (0, swagger_1.ApiProperty)({
4021
- name: 'occupancy_detected',
4022
- description: 'Whether any occupancy sensor is currently detecting presence',
4023
- type: 'boolean',
4024
- example: true,
4025
- }),
4026
- (0, class_transformer_1.Expose)({ name: 'occupancy_detected' }),
4027
- __metadata("design:type", Boolean)
4028
- ], SensorStateDataModel.prototype, "occupancyDetected", void 0);
4029
- __decorate([
4030
- (0, swagger_1.ApiProperty)({
4031
- description: 'Sensor readings grouped by role',
4032
- type: () => [SensorRoleReadingsDataModel],
4033
- }),
4034
- (0, class_transformer_1.Expose)(),
4035
- (0, class_transformer_1.Type)(() => SensorRoleReadingsDataModel),
4036
- __metadata("design:type", Array)
4037
- ], SensorStateDataModel.prototype, "readings", void 0);
4038
- exports.SensorStateDataModel = SensorStateDataModel = __decorate([
4039
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSensorState' })
4040
- ], SensorStateDataModel);
4041
- let SensorStateResponseModel = class SensorStateResponseModel extends api_response_model_1.BaseSuccessResponseModel {
4042
- };
4043
- exports.SensorStateResponseModel = SensorStateResponseModel;
4044
- __decorate([
4045
- (0, swagger_1.ApiProperty)({
4046
- description: 'The sensor state data',
4047
- type: () => SensorStateDataModel,
4048
- }),
4049
- (0, class_transformer_1.Expose)(),
4050
- (0, class_transformer_1.Type)(() => SensorStateDataModel),
4051
- __metadata("design:type", SensorStateDataModel)
4052
- ], SensorStateResponseModel.prototype, "data", void 0);
4053
- exports.SensorStateResponseModel = SensorStateResponseModel = __decorate([
4054
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResSensorState' })
4055
- ], SensorStateResponseModel);
4056
- let SensorTargetDataModel = class SensorTargetDataModel {
4057
- };
4058
- exports.SensorTargetDataModel = SensorTargetDataModel;
4059
- __decorate([
4060
- (0, swagger_1.ApiProperty)({
4061
- name: 'device_id',
4062
- description: 'ID of the sensor device',
4063
- type: 'string',
4064
- format: 'uuid',
4065
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
4066
- }),
4067
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
4068
- __metadata("design:type", String)
4069
- ], SensorTargetDataModel.prototype, "deviceId", void 0);
4070
- __decorate([
4071
- (0, swagger_1.ApiProperty)({
4072
- name: 'device_name',
4073
- description: 'Name of the device',
4074
- type: 'string',
4075
- example: 'Living Room Sensor',
4076
- }),
4077
- (0, class_transformer_1.Expose)({ name: 'device_name' }),
4078
- __metadata("design:type", String)
4079
- ], SensorTargetDataModel.prototype, "deviceName", void 0);
4080
- __decorate([
4081
- (0, swagger_1.ApiProperty)({
4082
- name: 'device_category',
4083
- description: 'Category of the device',
4084
- enum: devices_constants_1.DeviceCategory,
4085
- example: 'sensor',
4086
- }),
4087
- (0, class_transformer_1.Expose)({ name: 'device_category' }),
4088
- __metadata("design:type", String)
4089
- ], SensorTargetDataModel.prototype, "deviceCategory", void 0);
4090
- __decorate([
4091
- (0, swagger_1.ApiProperty)({
4092
- name: 'channel_id',
4093
- description: 'ID of the sensor channel',
4094
- type: 'string',
4095
- format: 'uuid',
4096
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
4097
- }),
4098
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
4099
- __metadata("design:type", String)
4100
- ], SensorTargetDataModel.prototype, "channelId", void 0);
4101
- __decorate([
4102
- (0, swagger_1.ApiProperty)({
4103
- name: 'channel_name',
4104
- description: 'Name of the channel',
4105
- type: 'string',
4106
- example: 'Temperature',
4107
- }),
4108
- (0, class_transformer_1.Expose)({ name: 'channel_name' }),
4109
- __metadata("design:type", String)
4110
- ], SensorTargetDataModel.prototype, "channelName", void 0);
4111
- __decorate([
4112
- (0, swagger_1.ApiProperty)({
4113
- name: 'channel_category',
4114
- description: 'Category of the sensor channel',
4115
- enum: devices_constants_1.ChannelCategory,
4116
- example: 'temperature',
4117
- }),
4118
- (0, class_transformer_1.Expose)({ name: 'channel_category' }),
4119
- __metadata("design:type", String)
4120
- ], SensorTargetDataModel.prototype, "channelCategory", void 0);
4121
- __decorate([
4122
- (0, swagger_1.ApiPropertyOptional)({
4123
- description: 'The assigned sensor role (null if not assigned)',
4124
- enum: spaces_constants_1.SensorRole,
4125
- nullable: true,
4126
- example: spaces_constants_1.SensorRole.ENVIRONMENT,
4127
- }),
4128
- (0, class_transformer_1.Expose)(),
4129
- __metadata("design:type", String)
4130
- ], SensorTargetDataModel.prototype, "role", void 0);
4131
- __decorate([
4132
- (0, swagger_1.ApiProperty)({
4133
- description: 'Priority for role ordering (lower = higher priority)',
4134
- type: 'integer',
4135
- example: 0,
4136
- }),
4137
- (0, class_transformer_1.Expose)(),
4138
- __metadata("design:type", Number)
4139
- ], SensorTargetDataModel.prototype, "priority", void 0);
4140
- exports.SensorTargetDataModel = SensorTargetDataModel = __decorate([
4141
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataSensorTarget' })
4142
- ], SensorTargetDataModel);
4143
- let SensorTargetsResponseModel = class SensorTargetsResponseModel extends api_response_model_1.BaseSuccessResponseModel {
4144
- };
4145
- exports.SensorTargetsResponseModel = SensorTargetsResponseModel;
4146
- __decorate([
4147
- (0, swagger_1.ApiProperty)({
4148
- description: 'Array of sensor targets in the space with their role assignments',
4149
- type: () => [SensorTargetDataModel],
4150
- }),
4151
- (0, class_transformer_1.Expose)(),
4152
- (0, class_transformer_1.Type)(() => SensorTargetDataModel),
4153
- __metadata("design:type", Array)
4154
- ], SensorTargetsResponseModel.prototype, "data", void 0);
4155
- exports.SensorTargetsResponseModel = SensorTargetsResponseModel = __decorate([
4156
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResSensorTargets' })
4157
- ], SensorTargetsResponseModel);
4158
- let SensorRoleResponseModel = class SensorRoleResponseModel extends api_response_model_1.BaseSuccessResponseModel {
4159
- };
4160
- exports.SensorRoleResponseModel = SensorRoleResponseModel;
4161
- __decorate([
4162
- (0, swagger_1.ApiProperty)({
4163
- description: 'The sensor role assignment, or null if the role was removed',
4164
- type: () => space_sensor_role_entity_1.SpaceSensorRoleEntity,
4165
- nullable: true,
4166
- required: false,
4167
- }),
4168
- (0, class_transformer_1.Expose)(),
4169
- (0, class_transformer_1.Type)(() => space_sensor_role_entity_1.SpaceSensorRoleEntity),
4170
- __metadata("design:type", space_sensor_role_entity_1.SpaceSensorRoleEntity)
4171
- ], SensorRoleResponseModel.prototype, "data", void 0);
4172
- exports.SensorRoleResponseModel = SensorRoleResponseModel = __decorate([
4173
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResSensorRole' })
4174
- ], SensorRoleResponseModel);
4175
- let BulkSensorRoleResultItemModel = class BulkSensorRoleResultItemModel {
4176
- };
4177
- exports.BulkSensorRoleResultItemModel = BulkSensorRoleResultItemModel;
4178
- __decorate([
4179
- (0, swagger_1.ApiProperty)({
4180
- name: 'device_id',
4181
- description: 'ID of the sensor device',
4182
- type: 'string',
4183
- format: 'uuid',
4184
- example: 'a2b19ca3-521e-4d7b-b3fe-bcb7a8d5b9e7',
4185
- }),
4186
- (0, class_transformer_1.Expose)({ name: 'device_id' }),
4187
- __metadata("design:type", String)
4188
- ], BulkSensorRoleResultItemModel.prototype, "deviceId", void 0);
4189
- __decorate([
4190
- (0, swagger_1.ApiProperty)({
4191
- name: 'channel_id',
4192
- description: 'ID of the sensor channel',
4193
- type: 'string',
4194
- format: 'uuid',
4195
- example: 'c3d29eb4-632f-5e8c-c4af-ded8b9e6c0f8',
4196
- }),
4197
- (0, class_transformer_1.Expose)({ name: 'channel_id' }),
4198
- __metadata("design:type", String)
4199
- ], BulkSensorRoleResultItemModel.prototype, "channelId", void 0);
4200
- __decorate([
4201
- (0, swagger_1.ApiProperty)({
4202
- description: 'Whether the role was set successfully',
4203
- type: 'boolean',
4204
- example: true,
4205
- }),
4206
- (0, class_transformer_1.Expose)(),
4207
- __metadata("design:type", Boolean)
4208
- ], BulkSensorRoleResultItemModel.prototype, "success", void 0);
4209
- __decorate([
4210
- (0, swagger_1.ApiPropertyOptional)({
4211
- description: 'The role that was set (null if failed)',
4212
- enum: spaces_constants_1.SensorRole,
4213
- nullable: true,
4214
- example: spaces_constants_1.SensorRole.ENVIRONMENT,
4215
- }),
4216
- (0, class_transformer_1.Expose)(),
4217
- __metadata("design:type", String)
4218
- ], BulkSensorRoleResultItemModel.prototype, "role", void 0);
4219
- __decorate([
4220
- (0, swagger_1.ApiPropertyOptional)({
4221
- description: 'Error message if the role assignment failed',
4222
- type: 'string',
4223
- nullable: true,
4224
- example: null,
4225
- }),
4226
- (0, class_transformer_1.Expose)(),
4227
- __metadata("design:type", String)
4228
- ], BulkSensorRoleResultItemModel.prototype, "error", void 0);
4229
- exports.BulkSensorRoleResultItemModel = BulkSensorRoleResultItemModel = __decorate([
4230
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkSensorRoleResultItem' })
4231
- ], BulkSensorRoleResultItemModel);
4232
- let BulkSensorRolesResultDataModel = class BulkSensorRolesResultDataModel {
4233
- };
4234
- exports.BulkSensorRolesResultDataModel = BulkSensorRolesResultDataModel;
4235
- __decorate([
4236
- (0, swagger_1.ApiProperty)({
4237
- description: 'Whether all role assignments succeeded',
4238
- type: 'boolean',
4239
- example: true,
4240
- }),
4241
- (0, class_transformer_1.Expose)(),
4242
- __metadata("design:type", Boolean)
4243
- ], BulkSensorRolesResultDataModel.prototype, "success", void 0);
4244
- __decorate([
4245
- (0, swagger_1.ApiProperty)({
4246
- name: 'total_count',
4247
- description: 'Total number of role assignments attempted',
4248
- type: 'integer',
4249
- example: 3,
4250
- }),
4251
- (0, class_transformer_1.Expose)({ name: 'total_count' }),
4252
- __metadata("design:type", Number)
4253
- ], BulkSensorRolesResultDataModel.prototype, "totalCount", void 0);
4254
- __decorate([
4255
- (0, swagger_1.ApiProperty)({
4256
- name: 'success_count',
4257
- description: 'Number of successful role assignments',
4258
- type: 'integer',
4259
- example: 3,
4260
- }),
4261
- (0, class_transformer_1.Expose)({ name: 'success_count' }),
4262
- __metadata("design:type", Number)
4263
- ], BulkSensorRolesResultDataModel.prototype, "successCount", void 0);
4264
- __decorate([
4265
- (0, swagger_1.ApiProperty)({
4266
- name: 'failure_count',
4267
- description: 'Number of failed role assignments',
4268
- type: 'integer',
4269
- example: 0,
4270
- }),
4271
- (0, class_transformer_1.Expose)({ name: 'failure_count' }),
4272
- __metadata("design:type", Number)
4273
- ], BulkSensorRolesResultDataModel.prototype, "failureCount", void 0);
4274
- __decorate([
4275
- (0, swagger_1.ApiProperty)({
4276
- description: 'Detailed results for each role assignment',
4277
- type: () => [BulkSensorRoleResultItemModel],
4278
- }),
4279
- (0, class_transformer_1.Expose)(),
4280
- (0, class_transformer_1.Type)(() => BulkSensorRoleResultItemModel),
4281
- __metadata("design:type", Array)
4282
- ], BulkSensorRolesResultDataModel.prototype, "results", void 0);
4283
- exports.BulkSensorRolesResultDataModel = BulkSensorRolesResultDataModel = __decorate([
4284
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleDataBulkSensorRolesResult' })
4285
- ], BulkSensorRolesResultDataModel);
4286
- let BulkSensorRolesResponseModel = class BulkSensorRolesResponseModel extends api_response_model_1.BaseSuccessResponseModel {
4287
- };
4288
- exports.BulkSensorRolesResponseModel = BulkSensorRolesResponseModel;
4289
- __decorate([
4290
- (0, swagger_1.ApiProperty)({
4291
- description: 'The result of the bulk sensor role update',
4292
- type: () => BulkSensorRolesResultDataModel,
4293
- }),
4294
- (0, class_transformer_1.Expose)(),
4295
- (0, class_transformer_1.Type)(() => BulkSensorRolesResultDataModel),
4296
- __metadata("design:type", BulkSensorRolesResultDataModel)
4297
- ], BulkSensorRolesResponseModel.prototype, "data", void 0);
4298
- exports.BulkSensorRolesResponseModel = BulkSensorRolesResponseModel = __decorate([
4299
- (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResBulkSensorRoles' })
4300
- ], BulkSensorRolesResponseModel);
170
+ ], CategoryTemplatesResponseModel.prototype, "data", void 0);
171
+ exports.CategoryTemplatesResponseModel = CategoryTemplatesResponseModel = __decorate([
172
+ (0, swagger_1.ApiSchema)({ name: 'SpacesModuleResCategoryTemplates' })
173
+ ], CategoryTemplatesResponseModel);
4301
174
  //# sourceMappingURL=spaces-response.model.js.map