@ray-js/robot-data-stream 0.0.16-beta.2 → 0.0.16-beta.4

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 (127) hide show
  1. package/lib/mqtt/hooks/useStructuredMessage.d.ts +2 -7
  2. package/lib/mqtt/hooks/useStructuredMessage.js +1 -1
  3. package/lib/mqtt/type/index.d.ts +0 -12
  4. package/lib/mqtt/type/index.js +0 -14
  5. package/lib/mqtt/type/protocols/base.d.ts +23 -24
  6. package/lib/mqtt/type/protocols/base.js +1 -38
  7. package/lib/mqtt/type/protocols/carpetCleanProtocol.d.ts +6 -13
  8. package/lib/mqtt/type/protocols/carpetCleanProtocol.js +1 -14
  9. package/lib/mqtt/type/protocols/carpetProtocol.d.ts +52 -96
  10. package/lib/mqtt/type/protocols/carpetProtocol.js +1 -202
  11. package/lib/mqtt/type/protocols/devInfoProtocol.d.ts +5 -11
  12. package/lib/mqtt/type/protocols/devInfoProtocol.js +1 -10
  13. package/lib/mqtt/type/protocols/deviceModelProtocol.d.ts +14 -29
  14. package/lib/mqtt/type/protocols/deviceModelProtocol.js +1 -32
  15. package/lib/mqtt/type/protocols/furnitureModelProtocol.d.ts +15 -25
  16. package/lib/mqtt/type/protocols/furnitureModelProtocol.js +1 -27
  17. package/lib/mqtt/type/protocols/historyMapProtocol.d.ts +19 -36
  18. package/lib/mqtt/type/protocols/historyMapProtocol.js +1 -37
  19. package/lib/mqtt/type/protocols/partDivisionProtocol.d.ts +6 -20
  20. package/lib/mqtt/type/protocols/partDivisionProtocol.js +1 -12
  21. package/lib/mqtt/type/protocols/partMergeProtocol.d.ts +3 -12
  22. package/lib/mqtt/type/protocols/partMergeProtocol.js +1 -12
  23. package/lib/mqtt/type/protocols/passwordProtocol.d.ts +11 -21
  24. package/lib/mqtt/type/protocols/passwordProtocol.js +1 -25
  25. package/lib/mqtt/type/protocols/quietHoursProtocol.d.ts +17 -27
  26. package/lib/mqtt/type/protocols/quietHoursProtocol.js +1 -35
  27. package/lib/mqtt/type/protocols/resetMapProtocol.d.ts +2 -3
  28. package/lib/mqtt/type/protocols/roomPropertyProtocol.d.ts +32 -46
  29. package/lib/mqtt/type/protocols/roomPropertyProtocol.js +1 -134
  30. package/lib/mqtt/type/protocols/scheduleProtocol.d.ts +18 -69
  31. package/lib/mqtt/type/protocols/scheduleProtocol.js +1 -117
  32. package/lib/mqtt/type/protocols/selectRoomCleanProtocol.d.ts +22 -29
  33. package/lib/mqtt/type/protocols/selectRoomCleanProtocol.js +1 -48
  34. package/lib/mqtt/type/protocols/spotCleanProtocol.d.ts +18 -42
  35. package/lib/mqtt/type/protocols/spotCleanProtocol.js +1 -94
  36. package/lib/mqtt/type/protocols/virtualAreaProtocol.d.ts +17 -30
  37. package/lib/mqtt/type/protocols/virtualAreaProtocol.js +1 -36
  38. package/lib/mqtt/type/protocols/virtualWallProtocol.d.ts +11 -25
  39. package/lib/mqtt/type/protocols/virtualWallProtocol.js +1 -25
  40. package/lib/mqtt/type/protocols/voiceProtocol.d.ts +11 -19
  41. package/lib/mqtt/type/protocols/voiceProtocol.js +1 -23
  42. package/lib/mqtt/type/protocols/wifiMapProtocol.d.ts +6 -15
  43. package/lib/mqtt/type/protocols/wifiMapProtocol.js +1 -15
  44. package/lib/mqtt/type/protocols/zoneCleanProtocol.d.ts +37 -50
  45. package/lib/mqtt/type/protocols/zoneCleanProtocol.js +1 -76
  46. package/lib/mqtt/useCarpet.js +21 -35
  47. package/lib/mqtt/useCarpetClean.js +1 -4
  48. package/lib/mqtt/useDeviceModel.js +1 -4
  49. package/lib/mqtt/useFurnitureModel.js +1 -4
  50. package/lib/mqtt/useHistoryMap.js +8 -21
  51. package/lib/mqtt/usePartDivision.js +6 -20
  52. package/lib/mqtt/usePartMerge.js +1 -3
  53. package/lib/mqtt/usePassword.js +2 -9
  54. package/lib/mqtt/useQuiteHours.js +1 -4
  55. package/lib/mqtt/useRoomProperty.js +3 -7
  56. package/lib/mqtt/useSchedule.js +8 -12
  57. package/lib/mqtt/useSelectRoomClean.js +6 -14
  58. package/lib/mqtt/useSpotClean.js +4 -10
  59. package/lib/mqtt/useVirtualArea.js +1 -4
  60. package/lib/mqtt/useVirtualWall.js +1 -4
  61. package/lib/mqtt/useVoice.js +4 -7
  62. package/lib/mqtt/useWifiMap.js +1 -5
  63. package/lib/mqtt/useZoneClean.js +10 -15
  64. package/lib/utils/index.d.ts +15 -0
  65. package/lib/utils/index.js +35 -1
  66. package/package.json +1 -1
  67. package/lib/mqtt/type/fun.d.ts +0 -248
  68. package/lib/mqtt/type/fun.js +0 -146
  69. package/lib/mqtt/waterPreference.d.ts +0 -20
  70. package/lib/mqtt/waterPreference.js +0 -70
  71. package/lib/myLib/zod/mini/index.d.cts +0 -1
  72. package/lib/myLib/zod/mini/index.d.ts +0 -1
  73. package/lib/myLib/zod/mini/index.js +0 -1
  74. package/lib/myLib/zod/mini/package.json +0 -6
  75. package/lib/myLib/zod/src/mini/index.d.ts +0 -1
  76. package/lib/myLib/zod/src/mini/index.js +0 -1
  77. package/lib/myLib/zod/src/v4/core/api.d.ts +0 -306
  78. package/lib/myLib/zod/src/v4/core/api.js +0 -1256
  79. package/lib/myLib/zod/src/v4/core/checks.d.ts +0 -278
  80. package/lib/myLib/zod/src/v4/core/checks.js +0 -816
  81. package/lib/myLib/zod/src/v4/core/config.d.ts +0 -9
  82. package/lib/myLib/zod/src/v4/core/config.js +0 -5
  83. package/lib/myLib/zod/src/v4/core/core.d.ts +0 -70
  84. package/lib/myLib/zod/src/v4/core/core.js +0 -95
  85. package/lib/myLib/zod/src/v4/core/doc.d.ts +0 -14
  86. package/lib/myLib/zod/src/v4/core/doc.js +0 -42
  87. package/lib/myLib/zod/src/v4/core/errors.d.ts +0 -220
  88. package/lib/myLib/zod/src/v4/core/errors.js +0 -232
  89. package/lib/myLib/zod/src/v4/core/index.d.ts +0 -15
  90. package/lib/myLib/zod/src/v4/core/index.js +0 -15
  91. package/lib/myLib/zod/src/v4/core/json-schema-generator.d.ts +0 -65
  92. package/lib/myLib/zod/src/v4/core/json-schema-generator.js +0 -120
  93. package/lib/myLib/zod/src/v4/core/json-schema-processors.d.ts +0 -49
  94. package/lib/myLib/zod/src/v4/core/json-schema-processors.js +0 -593
  95. package/lib/myLib/zod/src/v4/core/json-schema.d.ts +0 -88
  96. package/lib/myLib/zod/src/v4/core/json-schema.js +0 -1
  97. package/lib/myLib/zod/src/v4/core/parse.d.ts +0 -49
  98. package/lib/myLib/zod/src/v4/core/parse.js +0 -147
  99. package/lib/myLib/zod/src/v4/core/regexes.d.ts +0 -78
  100. package/lib/myLib/zod/src/v4/core/regexes.js +0 -146
  101. package/lib/myLib/zod/src/v4/core/registries.d.ts +0 -35
  102. package/lib/myLib/zod/src/v4/core/registries.js +0 -51
  103. package/lib/myLib/zod/src/v4/core/schemas.d.ts +0 -1136
  104. package/lib/myLib/zod/src/v4/core/schemas.js +0 -2745
  105. package/lib/myLib/zod/src/v4/core/standard-schema.d.ts +0 -126
  106. package/lib/myLib/zod/src/v4/core/standard-schema.js +0 -1
  107. package/lib/myLib/zod/src/v4/core/to-json-schema.d.ts +0 -114
  108. package/lib/myLib/zod/src/v4/core/to-json-schema.js +0 -488
  109. package/lib/myLib/zod/src/v4/core/util.d.ts +0 -199
  110. package/lib/myLib/zod/src/v4/core/util.js +0 -656
  111. package/lib/myLib/zod/src/v4/core/versions.d.ts +0 -5
  112. package/lib/myLib/zod/src/v4/core/versions.js +0 -5
  113. package/lib/myLib/zod/src/v4/core/zsf.d.ts +0 -91
  114. package/lib/myLib/zod/src/v4/core/zsf.js +0 -1
  115. package/lib/myLib/zod/src/v4/mini/checks.d.ts +0 -1
  116. package/lib/myLib/zod/src/v4/mini/checks.js +0 -1
  117. package/lib/myLib/zod/src/v4/mini/coerce.d.ts +0 -7
  118. package/lib/myLib/zod/src/v4/mini/coerce.js +0 -27
  119. package/lib/myLib/zod/src/v4/mini/external.d.ts +0 -11
  120. package/lib/myLib/zod/src/v4/mini/external.js +0 -16
  121. package/lib/myLib/zod/src/v4/mini/index.d.ts +0 -530
  122. package/lib/myLib/zod/src/v4/mini/index.js +0 -30
  123. package/lib/myLib/zod/src/v4/mini/iso.d.ts +0 -22
  124. package/lib/myLib/zod/src/v4/mini/iso.js +0 -46
  125. package/lib/myLib/zod/src/v4/mini/parse.d.ts +0 -1
  126. package/lib/myLib/zod/src/v4/mini/parse.js +0 -1
  127. package/lib/myLib/zod/src/v4/mini/schemas.js +0 -1244
@@ -1,134 +1 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- import { MqttError } from '../../promise';
3
- import { BaseResponseSchema } from './base';
4
-
5
- /**
6
- * 验证失败错误代码
7
- * -2 表示数据验证失败
8
- */
9
- const VALIDATION_ERROR_CODE = -2;
10
-
11
- // 设置房间属性参数 Schema
12
- export const setRoomPropertySchema = z.object({
13
- // 房间数量(可选,如果不提供则使用 ids.length)
14
- num: z.optional(z.int().check(z.gte(1))),
15
- // 房间id集合(必需)
16
- ids: z.array(z.int()).check(z.minLength(1)),
17
- // 吸力
18
- suctions: z.optional(z.array(z.string())),
19
- // 拖地水量,兼容 string 和 number 类型
20
- cisterns: z.optional(z.array(z.union([z.string(), z.number()]))),
21
- // 清扫次数
22
- cleanCounts: z.optional(z.array(z.int())),
23
- // 拖地模式
24
- yMops: z.optional(z.array(z.int())),
25
- // 扫拖模式
26
- sweepMopModes: z.optional(z.array(z.string())),
27
- // 房间地板类型
28
- floorTypes: z.optional(z.array(z.int())),
29
- // 房间名称
30
- names: z.optional(z.array(z.string())),
31
- // 房间名称标签
32
- nameLabels: z.optional(z.array(z.int())),
33
- // 房间顺序
34
- orders: z.optional(z.array(z.int())),
35
- // 路线偏好
36
- routePreferences: z.optional(z.array(z.string())),
37
- // 自定义水量
38
- waterValues: z.optional(z.array(z.union([z.string(), z.number()])))
39
- });
40
-
41
- // 房间属性响应 Schema
42
- const roomPropertyResponseSchema = z.extend(BaseResponseSchema, {
43
- // RoomPreferenceFieldsSchema 的字段
44
- suctions: z.optional(z.array(z.string())),
45
- cisterns: z.optional(z.array(z.union([z.string(), z.number()]))),
46
- cleanCounts: z.optional(z.array(z.int())),
47
- yMops: z.optional(z.array(z.int())),
48
- sweepMopModes: z.optional(z.array(z.string())),
49
- ids: z.optional(z.array(z.int())),
50
- // 房间数量
51
- num: z.int(),
52
- // 地图id
53
- mapId: z.int(),
54
- // 房间地板类型
55
- floorTypes: z.optional(z.array(z.int())),
56
- // 房间名称
57
- names: z.optional(z.array(z.string())),
58
- // 房间名称标签
59
- nameLabels: z.optional(z.array(z.int())),
60
- // 房间顺序
61
- orders: z.optional(z.array(z.int())),
62
- // 路线偏好
63
- routePreferences: z.optional(z.array(z.string())),
64
- // 自定义水量
65
- waterValues: z.optional(z.array(z.union([z.string(), z.number()])))
66
- });
67
-
68
- /**
69
- * 验证设置房间属性协议数据
70
- * @param data 已验证基础 schema 的数据
71
- * @throws MqttError 验证失败时抛出
72
- */
73
- export function validateSetRoomProperty(data) {
74
- const {
75
- ids,
76
- num
77
- } = data;
78
- const len = ids.length;
79
-
80
- // 验证 num 与 ids 长度一致(如果提供了 num)
81
- if (num !== undefined && num !== len) {
82
- throw new MqttError(`num (${num}) must equal ids length (${len})`, {
83
- errCode: VALIDATION_ERROR_CODE,
84
- reqType: 'set_room_property'
85
- });
86
- }
87
-
88
- // 验证数组长度一致性(如果提供了数组字段)
89
- const validateLength = (name, array) => {
90
- if (array.length !== len) {
91
- throw new MqttError(`${name} length must be ${len}, actual is ${array.length}`, {
92
- errCode: VALIDATION_ERROR_CODE,
93
- reqType: 'set_room_property'
94
- });
95
- }
96
- };
97
- if (data.suctions) {
98
- validateLength('suctions', data.suctions);
99
- }
100
- if (data.cisterns) {
101
- validateLength('cisterns', data.cisterns);
102
- }
103
- if (data.cleanCounts) {
104
- validateLength('cleanCounts', data.cleanCounts);
105
- }
106
- if (data.yMops) {
107
- validateLength('yMops', data.yMops);
108
- }
109
- if (data.sweepMopModes) {
110
- validateLength('sweepMopModes', data.sweepMopModes);
111
- }
112
- if (data.floorTypes) {
113
- validateLength('floorTypes', data.floorTypes);
114
- }
115
- if (data.names) {
116
- validateLength('names', data.names);
117
- }
118
- if (data.nameLabels) {
119
- validateLength('nameLabels', data.nameLabels);
120
- }
121
- if (data.orders) {
122
- validateLength('orders', data.orders);
123
- }
124
- if (data.routePreferences) {
125
- validateLength('routePreferences', data.routePreferences);
126
- }
127
- if (data.waterValues) {
128
- validateLength('waterValues', data.waterValues);
129
- }
130
- }
131
-
132
- // 函数类型定义
133
-
134
- // 类型导出
1
+ export {};
@@ -1,71 +1,20 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- export declare const ScheduleItemSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
3
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
4
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
5
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
6
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
7
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
8
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
9
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
10
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
11
- nameLabels: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
12
- active: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
13
- cycle: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
14
- time: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
15
- }, z.core.$strip>;
16
- export declare const setScheduleSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
17
- list: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
18
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
19
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
20
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
21
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
22
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
23
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
24
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
25
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
26
- nameLabels: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
27
- active: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
28
- cycle: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
29
- time: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
30
- }, z.core.$strip>>;
31
- num: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
32
- version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
33
- }, z.core.$strip>;
34
- export declare const requestScheduleSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
35
- version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
36
- }, z.core.$strip>;
37
- /**
38
- * 验证定时任务协议数据
39
- * @param data 已验证基础 schema 的数据
40
- * @throws MqttError 验证失败时抛出
41
- */
42
- export declare function validateSetSchedule(data: SetScheduleData): void;
43
- declare const ScheduleResponseSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
44
- success: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniBoolean<boolean>;
45
- errCode: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
46
- reqType: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
47
- version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
48
- taskId: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
49
- list: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
50
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
51
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
52
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
53
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
54
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
55
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
56
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
57
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
58
- nameLabels: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
59
- active: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
60
- cycle: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
61
- time: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
62
- }, z.core.$strip>>;
63
- num: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
64
- }, z.core.$strip>;
65
- export type SetScheduleData = z.infer<typeof setScheduleSchema>;
66
- export type ScheduleResponse = z.infer<typeof ScheduleResponseSchema>;
67
- export type TRequestSchedule = (message?: {
1
+ import type { BaseResponse, RoomPreferenceFields } from './base';
2
+ export interface ScheduleItem extends RoomPreferenceFields {
3
+ active: number;
4
+ cycle: number[];
5
+ time: number[];
6
+ }
7
+ export interface SetScheduleData {
8
+ list: ScheduleItem[];
9
+ num: number;
68
10
  version?: string;
69
- }) => Promise<ScheduleResponse>;
11
+ }
12
+ export interface RequestScheduleData {
13
+ version?: string;
14
+ }
15
+ export interface ScheduleResponse extends BaseResponse {
16
+ list: ScheduleItem[];
17
+ num: number;
18
+ }
19
+ export type TRequestSchedule = (message?: RequestScheduleData) => Promise<ScheduleResponse>;
70
20
  export type TSetSchedule = (message: SetScheduleData) => Promise<ScheduleResponse>;
71
- export {};
@@ -1,117 +1 @@
1
- import "core-js/modules/esnext.iterator.constructor.js";
2
- import "core-js/modules/esnext.iterator.for-each.js";
3
- import * as z from '../../../myLib/zod/mini';
4
- import { MqttError } from '../../promise';
5
- import { BaseResponseSchema, RoomPreferenceFieldsSchema } from './base';
6
-
7
- /**
8
- * 验证失败错误代码
9
- * -2 表示数据验证失败
10
- */
11
- const VALIDATION_ERROR_CODE = -2;
12
-
13
- // 定时任务项 Schema
14
- export const ScheduleItemSchema = z.extend(RoomPreferenceFieldsSchema, {
15
- // 定时是否有效,0:定时关闭 1:定时开启
16
- active: z.int().check(z.gte(0), z.lte(1)),
17
- // 周循环,周一到周日
18
- cycle: z.array(z.int().check(z.gte(0), z.lte(6))).check(z.length(7)),
19
- // 执行时间, [小时, 分钟]
20
- time: z.array(z.int()).check(z.length(2))
21
- });
22
-
23
- // 定时任务数据 Schema
24
- export const setScheduleSchema = z.object({
25
- list: z.array(ScheduleItemSchema).check(z.minLength(0)),
26
- num: z.int().check(z.gte(0)),
27
- version: z.optional(z.string()) // 版本号
28
- });
29
-
30
- // 请求定时数据的参数 Schema
31
- export const requestScheduleSchema = z.object({
32
- version: z.optional(z.string())
33
- });
34
-
35
- /**
36
- * 验证定时任务协议数据
37
- * @param data 已验证基础 schema 的数据
38
- * @throws MqttError 验证失败时抛出
39
- */
40
- export function validateSetSchedule(data) {
41
- const {
42
- num,
43
- list
44
- } = data;
45
-
46
- // 验证 num 必须等于 list.length
47
- if (num !== list.length) {
48
- throw new MqttError(`num 必须等于 list.length,实际 num=${num}, list.length=${list.length}`, {
49
- errCode: VALIDATION_ERROR_CODE,
50
- reqType: 'set_schedule'
51
- });
52
- }
53
-
54
- // 如果 list 为空,直接返回(允许清空所有定时任务)
55
- if (list.length === 0) {
56
- return;
57
- }
58
-
59
- // 验证每个定时任务项
60
- list.forEach((item, index) => {
61
- var _item$ids;
62
- // 验证 time 数组的有效性
63
- if (item.time.length !== 2) {
64
- throw new MqttError(`list[${index}].time 必须包含 2 个元素 [小时, 分钟]`, {
65
- errCode: VALIDATION_ERROR_CODE,
66
- reqType: 'set_schedule'
67
- });
68
- }
69
- const [hour, minute] = item.time;
70
- if (hour < 0 || hour >= 24) {
71
- throw new MqttError(`list[${index}].time[0] 小时必须在 0-23 之间,实际为 ${hour}`, {
72
- errCode: VALIDATION_ERROR_CODE,
73
- reqType: 'set_schedule'
74
- });
75
- }
76
- if (minute < 0 || minute >= 60) {
77
- throw new MqttError(`list[${index}].time[1] 分钟必须在 0-59 之间,实际为 ${minute}`, {
78
- errCode: VALIDATION_ERROR_CODE,
79
- reqType: 'set_schedule'
80
- });
81
- }
82
-
83
- // 验证 cycle 数组长度
84
- if (item.cycle.length !== 7) {
85
- throw new MqttError(`list[${index}].cycle 必须包含 7 个元素 (周一到周日),实际为 ${item.cycle.length}`, {
86
- errCode: VALIDATION_ERROR_CODE,
87
- reqType: 'set_schedule'
88
- });
89
- }
90
- const expectedLength = ((_item$ids = item.ids) === null || _item$ids === void 0 ? void 0 : _item$ids.length) || 1;
91
- const validateLength = (field, value) => {
92
- if (value && value.length !== expectedLength) {
93
- throw new MqttError(`list[${index}].${field} 长度必须为 ${expectedLength},实际为 ${value.length}`, {
94
- errCode: VALIDATION_ERROR_CODE,
95
- reqType: 'set_schedule'
96
- });
97
- }
98
- };
99
- validateLength('suctions', item.suctions);
100
- validateLength('cisterns', item.cisterns);
101
- validateLength('waterValues', item.waterValues);
102
- validateLength('cleanCounts', item.cleanCounts);
103
- validateLength('yMops', item.yMops);
104
- validateLength('sweepMopModes', item.sweepMopModes);
105
- validateLength('routePreferences', item.routePreferences);
106
- });
107
- }
108
-
109
- // 定时任务响应 Schema
110
- const ScheduleResponseSchema = z.extend(BaseResponseSchema, {
111
- list: z.array(ScheduleItemSchema),
112
- num: z.int().check(z.gte(0))
113
- });
114
-
115
- // 类型导出
116
-
117
- // 函数类型定义
1
+ export {};
@@ -1,31 +1,24 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- export declare const setSelectRoomCleanSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
3
- roomId: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat;
4
- suction: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
5
- cistern: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<any>;
6
- waterValue: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<any>;
7
- cleanTimes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
8
- yMop: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
9
- sweepMopMode: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
10
- routePreference: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
11
- }, z.core.$strip>>;
12
- declare const selectRoomCleanResponseSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
13
- success: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniBoolean<boolean>;
14
- errCode: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
15
- reqType: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
16
- version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
17
- taskId: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
18
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>;
19
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
20
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
21
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
22
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
23
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
24
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
25
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
26
- }, z.core.$strip>;
27
- export type SetSelectRoomCleanData = z.infer<typeof setSelectRoomCleanSchema>;
28
- export type SelectRoomCleanResponse = z.infer<typeof selectRoomCleanResponseSchema>;
1
+ import type { BaseResponse } from './base';
2
+ export interface SelectRoomCleanItem {
3
+ roomId: number;
4
+ suction?: string;
5
+ cistern?: string;
6
+ waterValue?: number;
7
+ cleanTimes?: number;
8
+ yMop?: number;
9
+ sweepMopMode?: string;
10
+ routePreference?: string;
11
+ }
12
+ export type SetSelectRoomCleanData = SelectRoomCleanItem[];
13
+ export interface SelectRoomCleanResponse extends BaseResponse {
14
+ ids: number[];
15
+ suctions?: string[];
16
+ cisterns?: string[];
17
+ waterValues?: number[];
18
+ cleanCounts?: number[];
19
+ yMops?: number[];
20
+ sweepMopModes?: string[];
21
+ routePreferences?: string[];
22
+ }
29
23
  export type TRequestSelectRoomClean = () => Promise<SelectRoomCleanResponse>;
30
24
  export type TSetSelectRoomClean = (data: SetSelectRoomCleanData) => Promise<SelectRoomCleanResponse>;
31
- export {};
@@ -1,48 +1 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- import { BaseResponseSchema } from './base';
3
-
4
- // 房间信息 Schema
5
- const roomInfoSchema = z.object({
6
- roomId: z.int(),
7
- // 房间id
8
- suction: z.optional(z.string()),
9
- // 吸力, closed - 关闭 gentle - 安静 normal - 正常 strong - 强劲 max - 超强 ,默认值为''
10
- cistern: z.optional(z.union([z.string(), z.number()])),
11
- // 拖地水量 "closed"- 关闭,"low"-低,"middle"-中,"high"-高,默认值为''
12
- waterValue: z.optional(z.union([z.string(), z.number()])),
13
- // 自定义拖地水量
14
- cleanTimes: z.optional(z.int()),
15
- // 清扫次数 默认值1
16
- yMop: z.optional(z.int()),
17
- // 拖地模式 1:开启Y型拖地 0:关闭Y型拖地 -1 未设置 默认值-1
18
- sweepMopMode: z.optional(z.string()),
19
- // 扫拖模式 "only_sweep":仅扫,"only_mop":仅拖,"both_work":扫拖同时,"clean_before_mop":先扫后拖,默认值为'only_sweep'
20
- routePreference: z.optional(z.string()) // 路线偏好 "standard"-标准, "fast"-快速, "deep"-深度, "custom"-自定义
21
- });
22
-
23
- // 设置选区清扫参数 Schema
24
- export const setSelectRoomCleanSchema = z.array(roomInfoSchema).check(z.minLength(1)); // 房间信息数组
25
-
26
- // 选区清扫响应 Schema
27
- const selectRoomCleanResponseSchema = z.extend(BaseResponseSchema, {
28
- // 房间id
29
- ids: z.array(z.int()),
30
- // 吸力, closed - 关闭 gentle - 安静 normal - 正常 strong - 强劲 max - 超强 ,默认值为''
31
- suctions: z.optional(z.array(z.string())),
32
- // 拖地水量 "closed"- 关闭,"low"-低,"middle"-中,"high"-高,默认值为''
33
- cisterns: z.optional(z.array(z.union([z.string(), z.number()]))),
34
- // 自定义拖地水量
35
- waterValues: z.optional(z.array(z.union([z.string(), z.number()]))),
36
- // 清扫次数 默认值1
37
- cleanCounts: z.optional(z.array(z.int())),
38
- // 拖地模式 1:开启Y型拖地 0:关闭Y型拖地 -1 未设置 默认值-1
39
- yMops: z.optional(z.array(z.int())),
40
- // 扫拖模式 "only_sweep":仅扫,"only_mop":仅拖,"both_work":扫拖同时,"clean_before_mop":先扫后拖,默认值为'only_sweep'
41
- sweepMopModes: z.optional(z.array(z.string())),
42
- // 路线偏好
43
- routePreferences: z.optional(z.array(z.string()))
44
- });
45
-
46
- // 类型导出
47
-
48
- // 函数类型定义
1
+ export {};
@@ -1,44 +1,20 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- export declare const setSpotCleanSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
3
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
4
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
5
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
6
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
7
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
8
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
9
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
10
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
11
- nameLabels: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
12
- spots: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
13
- x: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
14
- y: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
15
- }, z.core.$strip>>;
16
- origin: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
17
- x: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
18
- y: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
19
- }, z.core.$strip>>;
20
- names: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
21
- }, z.core.$strip>;
22
- declare const spotCleanResponseSchema: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniObject<{
23
- success: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniBoolean<boolean>;
24
- errCode: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumber<number>;
25
- reqType: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
26
- version: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
27
- taskId: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>;
28
- suctions: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
29
- cisterns: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
30
- waterValues: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<any>>;
31
- cleanCounts: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
32
- yMops: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
33
- sweepMopModes: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
34
- routePreferences: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
35
- ids: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniNumberFormat>>;
36
- polygons: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>;
37
- names: import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniOptional<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniArray<import("../../../myLib/zod/src/v4/mini/schemas").ZodMiniString<string>>>;
38
- }, z.core.$strip>;
39
- export type SetSpotCleanData = z.infer<typeof setSpotCleanSchema>;
40
- export type SpotCleanResponse = z.infer<typeof spotCleanResponseSchema>;
41
- export declare function validateSetSpotClean(data: SetSpotCleanData): void;
1
+ import type { BaseResponse, Point, RoomPreferenceFields } from './base';
2
+ export interface SetSpotCleanData extends RoomPreferenceFields {
3
+ spots: Point[];
4
+ origin?: Point;
5
+ names?: string[];
6
+ }
7
+ export interface SpotCleanResponse extends BaseResponse {
8
+ suctions?: string[];
9
+ cisterns?: string[];
10
+ waterValues?: number[];
11
+ cleanCounts?: number[];
12
+ yMops?: number[];
13
+ sweepMopModes?: string[];
14
+ routePreferences?: string[];
15
+ ids?: number[];
16
+ polygons: string[];
17
+ names?: string[];
18
+ }
42
19
  export type TRequestSpotClean = () => Promise<SpotCleanResponse>;
43
20
  export type TSetSpotClean = (data: SetSpotCleanData) => Promise<SpotCleanResponse>;
44
- export {};
@@ -1,94 +1 @@
1
- import * as z from '../../../myLib/zod/mini';
2
- import { MqttError } from '../../promise';
3
- import { BaseResponseSchema, Point, RoomPreferenceFieldsSchema } from './base';
4
-
5
- /**
6
- * 验证失败错误代码
7
- * -2 表示数据验证失败
8
- */
9
- const VALIDATION_ERROR_CODE = -2;
10
-
11
- // 设置定点清扫参数 Schema
12
- export const setSpotCleanSchema = z.extend(RoomPreferenceFieldsSchema, {
13
- spots: z.array(Point).check(z.minLength(1)),
14
- // 定点清扫的点数组
15
- origin: z.optional(Point),
16
- // 原点坐标(可选)
17
- names: z.optional(z.array(z.string())) // 定点名称数组(可选)
18
- });
19
-
20
- // 定点清扫响应 Schema
21
- const spotCleanResponseSchema = z.extend(BaseResponseSchema, {
22
- // RoomPreferenceFieldsSchema 的字段
23
- suctions: z.optional(z.array(z.string())),
24
- cisterns: z.optional(z.array(z.union([z.string(), z.number()]))),
25
- waterValues: z.optional(z.array(z.union([z.string(), z.number()]))),
26
- cleanCounts: z.optional(z.array(z.int())),
27
- yMops: z.optional(z.array(z.int())),
28
- sweepMopModes: z.optional(z.array(z.string())),
29
- routePreferences: z.optional(z.array(z.string())),
30
- ids: z.optional(z.array(z.int())),
31
- // 多边形数组(字符串格式)
32
- polygons: z.array(z.string()),
33
- // 名称数组(可选)
34
- names: z.optional(z.array(z.string()))
35
- });
36
-
37
- // 类型导出
38
-
39
- // 自定义验证函数:验证数组长度一致性
40
- export function validateSetSpotClean(data) {
41
- const num = data.spots.length;
42
-
43
- // 如果提供了数组字段,检查长度是否一致
44
- if (data.suctions && data.suctions.length !== num) {
45
- throw new MqttError(`suctions 数组长度 (${data.suctions.length}) 与 spots 数组长度 (${num}) 不一致`, {
46
- errCode: VALIDATION_ERROR_CODE,
47
- reqType: 'set_spot_clean'
48
- });
49
- }
50
- if (data.cisterns && data.cisterns.length !== num) {
51
- throw new MqttError(`cisterns 数组长度 (${data.cisterns.length}) 与 spots 数组长度 (${num}) 不一致`, {
52
- errCode: VALIDATION_ERROR_CODE,
53
- reqType: 'set_spot_clean'
54
- });
55
- }
56
- if (data.waterValues && data.waterValues.length !== num) {
57
- throw new MqttError(`waterValues 数组长度 (${data.waterValues.length}) 与 spots 数组长度 (${num}) 不一致`, {
58
- errCode: VALIDATION_ERROR_CODE,
59
- reqType: 'set_spot_clean'
60
- });
61
- }
62
- if (data.cleanCounts && data.cleanCounts.length !== num) {
63
- throw new MqttError(`cleanCounts 数组长度 (${data.cleanCounts.length}) 与 spots 数组长度 (${num}) 不一致`, {
64
- errCode: VALIDATION_ERROR_CODE,
65
- reqType: 'set_spot_clean'
66
- });
67
- }
68
- if (data.yMops && data.yMops.length !== num) {
69
- throw new MqttError(`yMops 数组长度 (${data.yMops.length}) 与 spots 数组长度 (${num}) 不一致`, {
70
- errCode: VALIDATION_ERROR_CODE,
71
- reqType: 'set_spot_clean'
72
- });
73
- }
74
- if (data.sweepMopModes && data.sweepMopModes.length !== num) {
75
- throw new MqttError(`sweepMopModes 数组长度 (${data.sweepMopModes.length}) 与 spots 数组长度 (${num}) 不一致`, {
76
- errCode: VALIDATION_ERROR_CODE,
77
- reqType: 'set_spot_clean'
78
- });
79
- }
80
- if (data.routePreferences && data.routePreferences.length !== num) {
81
- throw new MqttError(`routePreferences 数组长度 (${data.routePreferences.length}) 与 spots 数组长度 (${num}) 不一致`, {
82
- errCode: VALIDATION_ERROR_CODE,
83
- reqType: 'set_spot_clean'
84
- });
85
- }
86
- if (data.names && data.names.length !== num) {
87
- throw new MqttError(`names 数组长度 (${data.names.length}) 与 spots 数组长度 (${num}) 不一致`, {
88
- errCode: VALIDATION_ERROR_CODE,
89
- reqType: 'set_spot_clean'
90
- });
91
- }
92
- }
93
-
94
- // 函数类型定义
1
+ export {};