@kl1/contracts 1.0.0 → 1.0.1

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 (251) hide show
  1. package/dist/index.js +1279 -405
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.mjs +1276 -404
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/src/attribute/index.d.ts +526 -65
  6. package/dist/src/attribute/index.d.ts.map +1 -1
  7. package/dist/src/attribute/schema.d.ts +92 -12
  8. package/dist/src/attribute/schema.d.ts.map +1 -1
  9. package/dist/src/attribute/validation.d.ts +9 -12
  10. package/dist/src/attribute/validation.d.ts.map +1 -1
  11. package/dist/src/attribute-option/schema.d.ts +5 -5
  12. package/dist/src/auth/index.d.ts +64 -29
  13. package/dist/src/auth/index.d.ts.map +1 -1
  14. package/dist/src/base-contract.d.ts +5 -5
  15. package/dist/src/base-contract.d.ts.map +1 -1
  16. package/dist/src/call-log/schema.d.ts +5 -5
  17. package/dist/src/category/index.d.ts +188 -104
  18. package/dist/src/category/index.d.ts.map +1 -1
  19. package/dist/src/category/schema.d.ts +22 -0
  20. package/dist/src/category/schema.d.ts.map +1 -1
  21. package/dist/src/channel/index.d.ts +629 -0
  22. package/dist/{contract.d.ts.map → src/channel/index.d.ts.map} +1 -1
  23. package/dist/src/channel/schema.d.ts +293 -0
  24. package/dist/src/channel/schema.d.ts.map +1 -0
  25. package/dist/src/channel/validation.d.ts +242 -0
  26. package/dist/src/channel/validation.d.ts.map +1 -0
  27. package/dist/src/company/schema.d.ts +3 -3
  28. package/dist/src/contact/schema.d.ts +3 -3
  29. package/dist/src/contact-email/schema.d.ts +3 -3
  30. package/dist/src/contact-phone/schema.d.ts +3 -3
  31. package/dist/src/contract.d.ts +5278 -481
  32. package/dist/src/contract.d.ts.map +1 -1
  33. package/dist/src/custom-field/schema.d.ts +5 -5
  34. package/dist/src/custom-field-upload/schema.d.ts +3 -3
  35. package/dist/src/cx-log/index.d.ts +56 -54
  36. package/dist/src/cx-log/index.d.ts.map +1 -1
  37. package/dist/src/cx-log/schema.d.ts +3 -3
  38. package/dist/src/cx-log/validation.d.ts +47 -47
  39. package/dist/src/cx-log/validation.d.ts.map +1 -1
  40. package/dist/src/evaluate-form/schema.d.ts +3 -3
  41. package/dist/src/extension/index.d.ts +547 -0
  42. package/dist/src/extension/index.d.ts.map +1 -0
  43. package/dist/src/extension/schema.d.ts +9 -9
  44. package/dist/src/extension/validation.d.ts +49 -0
  45. package/dist/src/extension/validation.d.ts.map +1 -0
  46. package/dist/src/group/schema.d.ts +3 -3
  47. package/dist/src/index.d.ts +2 -0
  48. package/dist/src/index.d.ts.map +1 -1
  49. package/dist/src/line/index.d.ts +86 -0
  50. package/dist/src/line/index.d.ts.map +1 -0
  51. package/dist/src/line/schema.d.ts +12 -0
  52. package/dist/src/line/schema.d.ts.map +1 -0
  53. package/dist/src/line/validation.d.ts +18 -0
  54. package/dist/src/line/validation.d.ts.map +1 -0
  55. package/dist/src/log-form/schema.d.ts +3 -3
  56. package/dist/src/mail/account-contract.d.ts +14 -14
  57. package/dist/src/mail/mail-contract.d.ts +14 -14
  58. package/dist/src/permission/index.d.ts +179 -0
  59. package/dist/src/permission/index.d.ts.map +1 -0
  60. package/dist/src/permission/schema.d.ts +3 -3
  61. package/dist/src/platform-contact/schema.d.ts +3 -3
  62. package/dist/src/role/index.d.ts +545 -0
  63. package/dist/{api-contracts/src/contract.d.ts.map → src/role/index.d.ts.map} +1 -1
  64. package/dist/src/role/schema.d.ts +8 -8
  65. package/dist/src/role/validation.d.ts +37 -0
  66. package/dist/src/role/validation.d.ts.map +1 -0
  67. package/dist/src/tag/index.d.ts +286 -0
  68. package/dist/src/tag/index.d.ts.map +1 -0
  69. package/dist/src/tag/schema.d.ts +5 -4
  70. package/dist/src/tag/schema.d.ts.map +1 -1
  71. package/dist/src/tag/validation.d.ts +29 -0
  72. package/dist/src/tag/validation.d.ts.map +1 -0
  73. package/dist/src/tag-group/schema.d.ts +3 -3
  74. package/dist/src/telephony-cdr/schema.d.ts +5 -5
  75. package/dist/src/telephony-extension/index.d.ts +65 -0
  76. package/dist/src/telephony-extension/index.d.ts.map +1 -0
  77. package/dist/src/telephony-extension/schema.d.ts +18 -0
  78. package/dist/src/telephony-extension/schema.d.ts.map +1 -0
  79. package/dist/src/telephony-live-queue-call/schema.d.ts +3 -3
  80. package/dist/src/telephony-queue-call-count/schema.d.ts +3 -3
  81. package/dist/src/ticket/schema.d.ts +3 -3
  82. package/dist/src/upload/schema.d.ts +3 -3
  83. package/dist/src/user/index.d.ts +1261 -0
  84. package/dist/src/user/index.d.ts.map +1 -0
  85. package/dist/src/user/schema.d.ts +15 -15
  86. package/dist/src/user/schema.d.ts.map +1 -1
  87. package/dist/src/widget/index.d.ts +856 -0
  88. package/dist/src/widget/index.d.ts.map +1 -0
  89. package/dist/src/widget/schema.d.ts +20 -9
  90. package/dist/src/widget/schema.d.ts.map +1 -1
  91. package/dist/src/widget/validation.d.ts +63 -0
  92. package/dist/src/widget/validation.d.ts.map +1 -0
  93. package/package.json +4 -2
  94. package/dist/api-contracts/src/auth/index.d.ts +0 -436
  95. package/dist/api-contracts/src/auth/index.d.ts.map +0 -1
  96. package/dist/api-contracts/src/auth/permission-schema.d.ts +0 -27
  97. package/dist/api-contracts/src/auth/permission-schema.d.ts.map +0 -1
  98. package/dist/api-contracts/src/auth/role-schema.d.ts +0 -70
  99. package/dist/api-contracts/src/auth/role-schema.d.ts.map +0 -1
  100. package/dist/api-contracts/src/auth/user-schema.d.ts +0 -140
  101. package/dist/api-contracts/src/auth/user-schema.d.ts.map +0 -1
  102. package/dist/api-contracts/src/base-contract.d.ts +0 -85
  103. package/dist/api-contracts/src/base-contract.d.ts.map +0 -1
  104. package/dist/api-contracts/src/contract.d.ts +0 -593
  105. package/dist/api-contracts/src/cx-log/cx-log-schema.d.ts +0 -54
  106. package/dist/api-contracts/src/cx-log/cx-log-schema.d.ts.map +0 -1
  107. package/dist/api-contracts/src/cx-log/index.d.ts +0 -252
  108. package/dist/api-contracts/src/cx-log/index.d.ts.map +0 -1
  109. package/dist/api-contracts/src/index.d.ts +0 -2
  110. package/dist/api-contracts/src/index.d.ts.map +0 -1
  111. package/dist/attribute/schema.d.ts +0 -42
  112. package/dist/attribute/schema.d.ts.map +0 -1
  113. package/dist/attribute-option/schema.d.ts +0 -33
  114. package/dist/attribute-option/schema.d.ts.map +0 -1
  115. package/dist/auth/index.d.ts +0 -436
  116. package/dist/auth/index.d.ts.map +0 -1
  117. package/dist/auth/permission-schema.d.ts +0 -27
  118. package/dist/auth/permission-schema.d.ts.map +0 -1
  119. package/dist/auth/role-schema.d.ts +0 -70
  120. package/dist/auth/role-schema.d.ts.map +0 -1
  121. package/dist/auth/user-schema.d.ts +0 -140
  122. package/dist/auth/user-schema.d.ts.map +0 -1
  123. package/dist/base-contract.d.ts +0 -85
  124. package/dist/base-contract.d.ts.map +0 -1
  125. package/dist/call-log/index.d.ts +0 -4
  126. package/dist/call-log/index.d.ts.map +0 -1
  127. package/dist/call-log/schema.d.ts +0 -57
  128. package/dist/call-log/schema.d.ts.map +0 -1
  129. package/dist/call-log/validation.d.ts +0 -24
  130. package/dist/call-log/validation.d.ts.map +0 -1
  131. package/dist/company/schema.d.ts +0 -30
  132. package/dist/company/schema.d.ts.map +0 -1
  133. package/dist/contact/schema.d.ts +0 -42
  134. package/dist/contact/schema.d.ts.map +0 -1
  135. package/dist/contact-email/schema.d.ts +0 -27
  136. package/dist/contact-email/schema.d.ts.map +0 -1
  137. package/dist/contact-phone/schema.d.ts +0 -27
  138. package/dist/contact-phone/schema.d.ts.map +0 -1
  139. package/dist/contract.d.ts +0 -663
  140. package/dist/custom-field/schema.d.ts +0 -36
  141. package/dist/custom-field/schema.d.ts.map +0 -1
  142. package/dist/custom-field-upload/schema.d.ts +0 -24
  143. package/dist/custom-field-upload/schema.d.ts.map +0 -1
  144. package/dist/cx-log/cx-log-schema.d.ts +0 -54
  145. package/dist/cx-log/cx-log-schema.d.ts.map +0 -1
  146. package/dist/cx-log/index.d.ts +0 -230
  147. package/dist/cx-log/index.d.ts.map +0 -1
  148. package/dist/cx-log/schema.d.ts +0 -54
  149. package/dist/cx-log/schema.d.ts.map +0 -1
  150. package/dist/cx-log/validation.d.ts +0 -95
  151. package/dist/cx-log/validation.d.ts.map +0 -1
  152. package/dist/entities/src/base.entity.d.ts +0 -7
  153. package/dist/entities/src/base.entity.d.ts.map +0 -1
  154. package/dist/entities/src/tenants/attribute-option.entity.d.ts +0 -9
  155. package/dist/entities/src/tenants/attribute-option.entity.d.ts.map +0 -1
  156. package/dist/entities/src/tenants/attribute.entity.d.ts +0 -12
  157. package/dist/entities/src/tenants/attribute.entity.d.ts.map +0 -1
  158. package/dist/entities/src/tenants/call-log.entity.d.ts +0 -18
  159. package/dist/entities/src/tenants/call-log.entity.d.ts.map +0 -1
  160. package/dist/entities/src/tenants/company.entity.d.ts +0 -8
  161. package/dist/entities/src/tenants/company.entity.d.ts.map +0 -1
  162. package/dist/entities/src/tenants/contact-custom-field.entity.d.ts +0 -14
  163. package/dist/entities/src/tenants/contact-custom-field.entity.d.ts.map +0 -1
  164. package/dist/entities/src/tenants/contact-email.entity.d.ts +0 -7
  165. package/dist/entities/src/tenants/contact-email.entity.d.ts.map +0 -1
  166. package/dist/entities/src/tenants/contact-phone.entity.d.ts +0 -7
  167. package/dist/entities/src/tenants/contact-phone.entity.d.ts.map +0 -1
  168. package/dist/entities/src/tenants/contact.entity.d.ts +0 -14
  169. package/dist/entities/src/tenants/contact.entity.d.ts.map +0 -1
  170. package/dist/entities/src/tenants/custom-field-upload.entity.d.ts +0 -8
  171. package/dist/entities/src/tenants/custom-field-upload.entity.d.ts.map +0 -1
  172. package/dist/entities/src/tenants/custom-field.entity.d.ts +0 -10
  173. package/dist/entities/src/tenants/custom-field.entity.d.ts.map +0 -1
  174. package/dist/entities/src/tenants/cx-log.entity.d.ts +0 -20
  175. package/dist/entities/src/tenants/cx-log.entity.d.ts.map +0 -1
  176. package/dist/entities/src/tenants/evaluate-form.entity.d.ts +0 -9
  177. package/dist/entities/src/tenants/evaluate-form.entity.d.ts.map +0 -1
  178. package/dist/entities/src/tenants/extension.entity.d.ts +0 -10
  179. package/dist/entities/src/tenants/extension.entity.d.ts.map +0 -1
  180. package/dist/entities/src/tenants/group.entity.d.ts +0 -6
  181. package/dist/entities/src/tenants/group.entity.d.ts.map +0 -1
  182. package/dist/entities/src/tenants/index.d.ts +0 -25
  183. package/dist/entities/src/tenants/index.d.ts.map +0 -1
  184. package/dist/entities/src/tenants/log-form.entity.d.ts +0 -6
  185. package/dist/entities/src/tenants/log-form.entity.d.ts.map +0 -1
  186. package/dist/entities/src/tenants/permission.entity.d.ts +0 -9
  187. package/dist/entities/src/tenants/permission.entity.d.ts.map +0 -1
  188. package/dist/entities/src/tenants/platform-contact.entity.d.ts +0 -8
  189. package/dist/entities/src/tenants/platform-contact.entity.d.ts.map +0 -1
  190. package/dist/entities/src/tenants/role.entity.d.ts +0 -11
  191. package/dist/entities/src/tenants/role.entity.d.ts.map +0 -1
  192. package/dist/entities/src/tenants/tag-group.entity.d.ts +0 -8
  193. package/dist/entities/src/tenants/tag-group.entity.d.ts.map +0 -1
  194. package/dist/entities/src/tenants/tag.entity.d.ts +0 -11
  195. package/dist/entities/src/tenants/tag.entity.d.ts.map +0 -1
  196. package/dist/entities/src/tenants/telephony-cdr.entity.d.ts +0 -23
  197. package/dist/entities/src/tenants/telephony-cdr.entity.d.ts.map +0 -1
  198. package/dist/entities/src/tenants/telephony-live-queue-call.entity.d.ts +0 -7
  199. package/dist/entities/src/tenants/telephony-live-queue-call.entity.d.ts.map +0 -1
  200. package/dist/entities/src/tenants/telephony-queue-call-count.entity.d.ts +0 -15
  201. package/dist/entities/src/tenants/telephony-queue-call-count.entity.d.ts.map +0 -1
  202. package/dist/entities/src/tenants/ticket.entity.d.ts +0 -17
  203. package/dist/entities/src/tenants/ticket.entity.d.ts.map +0 -1
  204. package/dist/entities/src/tenants/upload.entity.d.ts +0 -8
  205. package/dist/entities/src/tenants/upload.entity.d.ts.map +0 -1
  206. package/dist/entities/src/tenants/user.entity.d.ts +0 -13
  207. package/dist/entities/src/tenants/user.entity.d.ts.map +0 -1
  208. package/dist/entities/src/tenants/widget.entity.d.ts +0 -9
  209. package/dist/entities/src/tenants/widget.entity.d.ts.map +0 -1
  210. package/dist/evaluate-form/schema.d.ts +0 -27
  211. package/dist/evaluate-form/schema.d.ts.map +0 -1
  212. package/dist/exchange-token/index.d.ts +0 -32
  213. package/dist/exchange-token/index.d.ts.map +0 -1
  214. package/dist/extension/schema.d.ts +0 -36
  215. package/dist/extension/schema.d.ts.map +0 -1
  216. package/dist/group/schema.d.ts +0 -24
  217. package/dist/group/schema.d.ts.map +0 -1
  218. package/dist/index.d.ts +0 -3
  219. package/dist/index.d.ts.map +0 -1
  220. package/dist/log-form/schema.d.ts +0 -24
  221. package/dist/log-form/schema.d.ts.map +0 -1
  222. package/dist/permission/schema.d.ts +0 -27
  223. package/dist/permission/schema.d.ts.map +0 -1
  224. package/dist/platform-contact/schema.d.ts +0 -30
  225. package/dist/platform-contact/schema.d.ts.map +0 -1
  226. package/dist/posts/index.d.ts +0 -118
  227. package/dist/posts/index.d.ts.map +0 -1
  228. package/dist/role/schema.d.ts +0 -70
  229. package/dist/role/schema.d.ts.map +0 -1
  230. package/dist/tag/schema.d.ts +0 -21
  231. package/dist/tag/schema.d.ts.map +0 -1
  232. package/dist/tag-group/schema.d.ts +0 -24
  233. package/dist/tag-group/schema.d.ts.map +0 -1
  234. package/dist/telephony-cdr/index.d.ts +0 -4
  235. package/dist/telephony-cdr/index.d.ts.map +0 -1
  236. package/dist/telephony-cdr/schema.d.ts +0 -75
  237. package/dist/telephony-cdr/schema.d.ts.map +0 -1
  238. package/dist/telephony-cdr/validation.d.ts +0 -48
  239. package/dist/telephony-cdr/validation.d.ts.map +0 -1
  240. package/dist/telephony-live-queue-call/schema.d.ts +0 -27
  241. package/dist/telephony-live-queue-call/schema.d.ts.map +0 -1
  242. package/dist/telephony-queue-call-count/schema.d.ts +0 -51
  243. package/dist/telephony-queue-call-count/schema.d.ts.map +0 -1
  244. package/dist/ticket/schema.d.ts +0 -51
  245. package/dist/ticket/schema.d.ts.map +0 -1
  246. package/dist/upload/schema.d.ts +0 -30
  247. package/dist/upload/schema.d.ts.map +0 -1
  248. package/dist/user/schema.d.ts +0 -140
  249. package/dist/user/schema.d.ts.map +0 -1
  250. package/dist/widget/schema.d.ts +0 -33
  251. package/dist/widget/schema.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -31,16 +31,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
33
  apiContract: () => apiContract,
34
- categoryContract: () => categoryContract
34
+ attributeContract: () => attributeContract,
35
+ categoryContract: () => categoryContract,
36
+ tagContract: () => tagContract
35
37
  });
36
38
  module.exports = __toCommonJS(src_exports);
37
39
 
38
40
  // src/contract.ts
39
- var import_core10 = require("@ts-rest/core");
41
+ var import_core19 = require("@ts-rest/core");
40
42
 
41
- // src/auth/index.ts
43
+ // src/attribute/index.ts
42
44
  var import_core = require("@ts-rest/core");
43
- var import_zod5 = require("zod");
45
+ var import_zod4 = require("zod");
44
46
 
45
47
  // src/base-contract.ts
46
48
  var import_zod = __toESM(require("zod"));
@@ -48,12 +50,12 @@ var DefaultHeaderSchema = import_zod.default.object({
48
50
  // biome-ignore lint/style/useNamingConvention: <explanation>
49
51
  "x-tenant": import_zod.default.string({ required_error: "Tenant id is required" }),
50
52
  authorization: import_zod.default.string()
51
- });
53
+ }).optional().nullable();
52
54
  var DefaultEntitySchema = import_zod.default.object({
53
55
  id: import_zod.default.string().uuid(),
54
56
  createdAt: import_zod.default.date(),
55
57
  updatedAt: import_zod.default.date(),
56
- deletedAt: import_zod.default.date()
58
+ deletedAt: import_zod.default.date().nullable()
57
59
  });
58
60
  var DefaultQueryParamsSchema = import_zod.default.object({
59
61
  page: import_zod.default.number().positive().default(1),
@@ -75,40 +77,196 @@ var defaultResponses = {
75
77
  422: DefaultUnprocessibleSchema
76
78
  };
77
79
 
80
+ // src/attribute/schema.ts
81
+ var import_zod2 = __toESM(require("zod"));
82
+ var attributeTypeSchema = import_zod2.default.union([
83
+ import_zod2.default.literal("text"),
84
+ import_zod2.default.literal("textarea"),
85
+ import_zod2.default.literal("date"),
86
+ import_zod2.default.literal("select"),
87
+ import_zod2.default.literal("link"),
88
+ import_zod2.default.literal("attachment")
89
+ ]);
90
+ var attributeOptionSchema = import_zod2.default.object({
91
+ label: import_zod2.default.string(),
92
+ value: import_zod2.default.string(),
93
+ isDefault: import_zod2.default.boolean(),
94
+ position: import_zod2.default.number()
95
+ });
96
+ var attributeGroupSchema = DefaultEntitySchema.extend({
97
+ systemName: import_zod2.default.string(),
98
+ displayName: import_zod2.default.string()
99
+ });
100
+ var attributeSchema = DefaultEntitySchema.extend({
101
+ systemName: import_zod2.default.string(),
102
+ type: attributeTypeSchema,
103
+ position: import_zod2.default.number(),
104
+ isDefault: import_zod2.default.boolean(),
105
+ isArchived: import_zod2.default.boolean(),
106
+ isRequired: import_zod2.default.boolean(),
107
+ isUnique: import_zod2.default.boolean(),
108
+ options: import_zod2.default.array(attributeOptionSchema),
109
+ group: attributeGroupSchema
110
+ });
111
+
112
+ // src/attribute/validation.ts
113
+ var import_zod3 = require("zod");
114
+ var createAttributeSchema = import_zod3.z.object({
115
+ name: import_zod3.z.string(),
116
+ type: attributeTypeSchema,
117
+ isRequired: import_zod3.z.boolean(),
118
+ isVisible: import_zod3.z.boolean(),
119
+ group: import_zod3.z.string(),
120
+ options: import_zod3.z.array(attributeOptionSchema)
121
+ });
122
+ var getAttributesSchema = import_zod3.z.object({
123
+ group: import_zod3.z.string(),
124
+ visibleOnly: import_zod3.z.boolean().default(false)
125
+ });
126
+ var updateAttributeSchema = createAttributeSchema;
127
+ var updatePositionSchema = import_zod3.z.object({
128
+ attributes: import_zod3.z.array(
129
+ import_zod3.z.object({
130
+ // To update the attribute position, the backend need the IDs and the positions.
131
+ attributeId: import_zod3.z.string(),
132
+ position: import_zod3.z.number()
133
+ })
134
+ )
135
+ });
136
+
137
+ // src/attribute/index.ts
138
+ var attributeContract = (0, import_core.initContract)().router(
139
+ {
140
+ createAttribute: {
141
+ method: "POST",
142
+ path: "",
143
+ body: createAttributeSchema,
144
+ responses: {
145
+ 201: DefaultSuccessResponseSchema.extend({
146
+ attribute: attributeSchema
147
+ }),
148
+ 500: DefaultErrorResponseSchema
149
+ },
150
+ headers: DefaultHeaderSchema
151
+ },
152
+ getAttributes: {
153
+ method: "GET",
154
+ path: "",
155
+ query: getAttributesSchema,
156
+ responses: {
157
+ 200: DefaultSuccessResponseSchema.extend({
158
+ attributes: import_zod4.z.array(attributeSchema)
159
+ }),
160
+ 500: DefaultErrorResponseSchema
161
+ },
162
+ headers: DefaultHeaderSchema
163
+ },
164
+ updateAttribute: {
165
+ method: "PATCH",
166
+ path: "/:id",
167
+ pathParams: import_zod4.z.object({ id: import_zod4.z.string() }),
168
+ body: updateAttributeSchema,
169
+ responses: {
170
+ 200: DefaultSuccessResponseSchema.extend({
171
+ attribute: attributeSchema
172
+ }),
173
+ 500: DefaultErrorResponseSchema
174
+ },
175
+ headers: DefaultHeaderSchema
176
+ },
177
+ changeVisibility: {
178
+ method: "PATCH",
179
+ path: "/visibility/:id",
180
+ pathParams: import_zod4.z.object({ id: import_zod4.z.string() }),
181
+ body: import_zod4.z.object({ isVisible: import_zod4.z.boolean() }),
182
+ responses: {
183
+ 200: DefaultSuccessResponseSchema.extend({
184
+ message: import_zod4.z.string().optional()
185
+ }),
186
+ 500: DefaultErrorResponseSchema
187
+ },
188
+ headers: DefaultHeaderSchema
189
+ },
190
+ changeRequired: {
191
+ method: "PATCH",
192
+ path: "/required/:id",
193
+ pathParams: import_zod4.z.object({ id: import_zod4.z.string() }),
194
+ body: import_zod4.z.object({ isRequired: import_zod4.z.boolean() }),
195
+ responses: {
196
+ 200: DefaultSuccessResponseSchema.extend({
197
+ message: import_zod4.z.string().optional()
198
+ }),
199
+ 500: DefaultErrorResponseSchema
200
+ },
201
+ headers: DefaultHeaderSchema
202
+ },
203
+ updatePosition: {
204
+ method: "PATCH",
205
+ path: "/position",
206
+ body: updatePositionSchema,
207
+ responses: {
208
+ 200: DefaultSuccessResponseSchema.extend({
209
+ message: import_zod4.z.string().optional()
210
+ }),
211
+ 500: DefaultErrorResponseSchema
212
+ },
213
+ headers: DefaultHeaderSchema
214
+ },
215
+ deleteAttribute: {
216
+ method: "DELETE",
217
+ path: "/:id",
218
+ pathParams: import_zod4.z.object({ id: import_zod4.z.string() }),
219
+ body: import_zod4.z.any().optional(),
220
+ responses: {
221
+ 200: DefaultSuccessResponseSchema.extend({ message: import_zod4.z.string() }),
222
+ 500: DefaultErrorResponseSchema
223
+ },
224
+ headers: DefaultHeaderSchema
225
+ }
226
+ },
227
+ {
228
+ pathPrefix: "attributes"
229
+ }
230
+ );
231
+
232
+ // src/auth/index.ts
233
+ var import_core2 = require("@ts-rest/core");
234
+ var import_zod8 = require("zod");
235
+
78
236
  // src/user/schema.ts
79
- var import_zod4 = __toESM(require("zod"));
237
+ var import_zod7 = __toESM(require("zod"));
80
238
 
81
239
  // src/role/schema.ts
82
- var import_zod3 = __toESM(require("zod"));
240
+ var import_zod6 = __toESM(require("zod"));
83
241
 
84
242
  // src/permission/schema.ts
85
- var import_zod2 = __toESM(require("zod"));
243
+ var import_zod5 = __toESM(require("zod"));
86
244
  var PermissionSchema = DefaultEntitySchema.extend({
87
- systemName: import_zod2.default.string(),
88
- displayName: import_zod2.default.string(),
89
- description: import_zod2.default.string().nullable()
245
+ systemName: import_zod5.default.string(),
246
+ displayName: import_zod5.default.string(),
247
+ description: import_zod5.default.string().nullable()
90
248
  });
91
249
 
92
250
  // src/role/schema.ts
93
251
  var RoleSchema = DefaultEntitySchema.extend({
94
- systemName: import_zod3.default.string(),
95
- displayName: import_zod3.default.string(),
96
- description: import_zod3.default.string().nullable(),
97
- permissions: import_zod3.default.array(PermissionSchema)
252
+ systemName: import_zod6.default.string(),
253
+ displayName: import_zod6.default.string(),
254
+ description: import_zod6.default.string().nullable(),
255
+ permissions: import_zod6.default.array(PermissionSchema)
98
256
  });
99
257
 
100
258
  // src/user/schema.ts
101
259
  var UserSchema = DefaultEntitySchema.extend({
102
- name: import_zod4.default.string(),
103
- email: import_zod4.default.string().email(),
104
- address: import_zod4.default.string().nullable(),
105
- phone: import_zod4.default.string().nullable(),
106
- notificationCount: import_zod4.default.number().nullable(),
107
- roles: import_zod4.default.array(RoleSchema)
260
+ name: import_zod7.default.string(),
261
+ email: import_zod7.default.string().email(),
262
+ address: import_zod7.default.string().nullable(),
263
+ phone: import_zod7.default.string().nullable(),
264
+ notificationCount: import_zod7.default.number().nullable(),
265
+ roles: import_zod7.default.array(RoleSchema)
108
266
  });
109
267
 
110
268
  // src/auth/index.ts
111
- var authContract = (0, import_core.initContract)().router(
269
+ var authContract = (0, import_core2.initContract)().router(
112
270
  {
113
271
  refreshToken: {
114
272
  method: "POST",
@@ -116,8 +274,8 @@ var authContract = (0, import_core.initContract)().router(
116
274
  headers: DefaultHeaderSchema,
117
275
  responses: {
118
276
  200: DefaultSuccessResponseSchema.extend({
119
- accessToken: import_zod5.z.string(),
120
- refreshToken: import_zod5.z.string()
277
+ accessToken: import_zod8.z.string(),
278
+ refreshToken: import_zod8.z.string()
121
279
  }),
122
280
  401: DefaultUnauthorizedSchema,
123
281
  404: DefaultNotFoundSchema,
@@ -131,8 +289,8 @@ var authContract = (0, import_core.initContract)().router(
131
289
  path: "/exchange-token",
132
290
  responses: {
133
291
  200: DefaultSuccessResponseSchema.extend({
134
- accessToken: import_zod5.z.string(),
135
- refreshToken: import_zod5.z.string()
292
+ accessToken: import_zod8.z.string(),
293
+ refreshToken: import_zod8.z.string()
136
294
  }),
137
295
  401: DefaultUnauthorizedSchema,
138
296
  404: DefaultNotFoundSchema,
@@ -148,7 +306,7 @@ var authContract = (0, import_core.initContract)().router(
148
306
  headers: DefaultHeaderSchema,
149
307
  responses: {
150
308
  200: DefaultSuccessResponseSchema.extend({
151
- message: import_zod5.z.string()
309
+ message: import_zod8.z.string()
152
310
  }),
153
311
  401: DefaultUnauthorizedSchema,
154
312
  404: DefaultNotFoundSchema,
@@ -170,236 +328,550 @@ var authContract = (0, import_core.initContract)().router(
170
328
  422: DefaultUnprocessibleSchema
171
329
  },
172
330
  summary: "Get current user"
331
+ },
332
+ getAuthUserRole: {
333
+ method: "GET",
334
+ path: "/auth/user/role",
335
+ headers: DefaultHeaderSchema,
336
+ responses: {
337
+ 200: import_zod8.z.array(import_zod8.z.string()),
338
+ 400: import_zod8.z.object({
339
+ message: import_zod8.z.string()
340
+ }),
341
+ 401: DefaultUnauthorizedSchema
342
+ },
343
+ summary: "Get role by auth user which mean current login user roles"
173
344
  }
174
345
  },
175
346
  { pathPrefix: "auth" }
176
347
  );
177
348
 
178
- // src/mail/mail-contract.ts
179
- var import_core6 = require("@ts-rest/core");
349
+ // src/category/index.ts
350
+ var import_core3 = require("@ts-rest/core");
351
+ var import_zod12 = __toESM(require("zod"));
180
352
 
181
- // src/mail/room-contract.ts
182
- var import_core2 = require("@ts-rest/core");
183
- var import_zod6 = __toESM(require("zod"));
184
- var roomContract = (0, import_core2.initContract)().router(
353
+ // utils.ts
354
+ var import_zod9 = require("zod");
355
+ var paginationSchema = import_zod9.z.object({
356
+ page: import_zod9.z.number().default(1),
357
+ pageSize: import_zod9.z.number().default(10),
358
+ total: import_zod9.z.number(),
359
+ lastPage: import_zod9.z.number().optional().nullable()
360
+ });
361
+ var withPagination = (dataSchema) => {
362
+ return paginationSchema.extend({
363
+ data: import_zod9.z.array(dataSchema)
364
+ });
365
+ };
366
+
367
+ // src/category/schema.ts
368
+ var import_zod10 = require("zod");
369
+ var categoryLevelSchema = import_zod10.z.union([
370
+ import_zod10.z.literal(1),
371
+ import_zod10.z.literal(2),
372
+ import_zod10.z.literal(3)
373
+ ]);
374
+ var categorySchema = DefaultEntitySchema.extend({
375
+ value: import_zod10.z.string(),
376
+ level: categoryLevelSchema,
377
+ parentId: import_zod10.z.string().nullable(),
378
+ childCategoryList: import_zod10.z.array(
379
+ import_zod10.z.object({
380
+ id: import_zod10.z.string(),
381
+ value: import_zod10.z.string(),
382
+ level: categoryLevelSchema,
383
+ parentId: import_zod10.z.string().nullable(),
384
+ childCategoryList: import_zod10.z.array(
385
+ import_zod10.z.object({
386
+ id: import_zod10.z.string(),
387
+ value: import_zod10.z.string(),
388
+ level: categoryLevelSchema,
389
+ parentId: import_zod10.z.string().nullable(),
390
+ childCategoryList: import_zod10.z.array(import_zod10.z.any())
391
+ // This is an empty array.
392
+ })
393
+ )
394
+ })
395
+ )
396
+ });
397
+ var categoryLevelObjectSchema = import_zod10.z.object({
398
+ id: import_zod10.z.string(),
399
+ name: import_zod10.z.string(),
400
+ level: categoryLevelSchema
401
+ });
402
+
403
+ // src/category/validation.ts
404
+ var import_zod11 = require("zod");
405
+ var createCategorySchema = import_zod11.z.object({
406
+ value: import_zod11.z.string(),
407
+ level: categoryLevelSchema,
408
+ parentId: import_zod11.z.string().nullable()
409
+ });
410
+ var updateCategorySchema = import_zod11.z.object({ value: import_zod11.z.string() });
411
+ var createCategoryLevelSchema = import_zod11.z.object({
412
+ name: import_zod11.z.string(),
413
+ level: categoryLevelSchema
414
+ });
415
+ var updateCategoryLevelSchema = import_zod11.z.object({
416
+ id: import_zod11.z.string(),
417
+ name: import_zod11.z.string(),
418
+ level: categoryLevelSchema
419
+ });
420
+
421
+ // src/category/index.ts
422
+ var categoryContract = (0, import_core3.initContract)().router(
185
423
  {
186
- create: {
424
+ createCategory: {
187
425
  method: "POST",
188
- path: "/",
426
+ path: "",
427
+ headers: DefaultHeaderSchema,
428
+ body: createCategorySchema,
189
429
  responses: {
190
- 200: DefaultSuccessResponseSchema.extend({
191
- message: import_zod6.default.string()
430
+ 201: DefaultSuccessResponseSchema.extend({
431
+ category: categorySchema
192
432
  }),
193
- ...defaultResponses
194
- },
195
- body: null,
196
- summary: "Create a new room for new incoming mail"
433
+ 500: DefaultErrorResponseSchema
434
+ }
197
435
  },
198
- get: {
436
+ getCategories: {
199
437
  method: "GET",
200
- path: "/:id",
201
- pathParams: import_zod6.default.object({
202
- id: import_zod6.default.string()
203
- }),
204
- responses: {
205
- 200: DefaultSuccessResponseSchema.extend({
206
- message: import_zod6.default.string()
207
- }),
208
- ...defaultResponses
209
- },
210
- summary: "Get a mail room by id"
211
- },
212
- update: {
213
- method: "PATCH",
214
- path: "/:id",
215
- pathParams: import_zod6.default.object({
216
- id: import_zod6.default.string()
217
- }),
438
+ path: "",
439
+ query: import_zod12.default.object({
440
+ page: import_zod12.default.coerce.number().optional(),
441
+ pageSize: import_zod12.default.coerce.number().optional()
442
+ }).optional(),
443
+ headers: DefaultHeaderSchema,
218
444
  responses: {
219
- 200: DefaultSuccessResponseSchema.extend({
220
- message: import_zod6.default.string()
221
- }),
222
- ...defaultResponses
223
- },
224
- body: null,
225
- summary: "Update a mail room by id"
445
+ 200: withPagination(categorySchema),
446
+ 500: DefaultErrorResponseSchema
447
+ }
226
448
  },
227
- delete: {
449
+ updateCategory: {
228
450
  method: "PATCH",
229
451
  path: "/:id",
230
- pathParams: import_zod6.default.object({
231
- id: import_zod6.default.string()
232
- }),
233
- responses: {
234
- 200: DefaultSuccessResponseSchema.extend({
235
- message: import_zod6.default.string()
236
- }),
237
- ...defaultResponses
238
- },
239
- body: null,
240
- summary: "Delete a mail room by id"
241
- }
242
- },
243
- {
244
- pathPrefix: "/room"
245
- }
246
- );
247
-
248
- // src/mail/message-contract.ts
249
- var import_core3 = require("@ts-rest/core");
250
- var import_zod7 = __toESM(require("zod"));
251
- var messageContract = (0, import_core3.initContract)().router(
252
- {
253
- create: {
254
- method: "POST",
255
- path: "/",
452
+ pathParams: import_zod12.default.object({ id: import_zod12.default.string() }),
453
+ headers: DefaultHeaderSchema,
454
+ body: updateCategorySchema,
256
455
  responses: {
257
- 200: DefaultSuccessResponseSchema.extend({
258
- message: import_zod7.default.string()
259
- }),
260
- ...defaultResponses
261
- },
262
- body: null,
263
- summary: "Add a new message into a room"
456
+ 200: DefaultSuccessResponseSchema.extend({ category: categorySchema }),
457
+ 500: DefaultErrorResponseSchema
458
+ }
264
459
  },
265
- get: {
266
- method: "GET",
460
+ deleteCategory: {
461
+ method: "DELETE",
267
462
  path: "/:id",
268
- pathParams: import_zod7.default.object({
269
- id: import_zod7.default.string()
270
- }),
463
+ pathParams: import_zod12.default.object({ id: import_zod12.default.string() }),
464
+ headers: DefaultHeaderSchema,
465
+ body: import_zod12.default.any().optional(),
271
466
  responses: {
272
467
  200: DefaultSuccessResponseSchema.extend({
273
- message: import_zod7.default.string()
468
+ message: import_zod12.default.string().optional()
274
469
  }),
275
- ...defaultResponses
276
- },
277
- summary: "Get a message by id"
470
+ 500: DefaultErrorResponseSchema
471
+ }
278
472
  },
279
- update: {
280
- method: "PATCH",
281
- path: "/:id",
282
- pathParams: import_zod7.default.object({
283
- id: import_zod7.default.string()
284
- }),
473
+ createCategoryLevel: {
474
+ method: "POST",
475
+ path: "/level",
476
+ headers: DefaultHeaderSchema,
477
+ body: createCategoryLevelSchema,
285
478
  responses: {
286
479
  200: DefaultSuccessResponseSchema.extend({
287
- message: import_zod7.default.string()
480
+ categoryLevel: categoryLevelObjectSchema
288
481
  }),
289
- ...defaultResponses
290
- },
291
- body: null,
292
- summary: "Update a message by id"
482
+ 500: DefaultErrorResponseSchema
483
+ }
293
484
  },
294
- delete: {
485
+ updateCategoryLevel: {
295
486
  method: "PATCH",
296
- path: "/:id",
297
- pathParams: import_zod7.default.object({
298
- id: import_zod7.default.string()
299
- }),
487
+ path: "/level/:id",
488
+ pathParams: import_zod12.default.object({ id: import_zod12.default.string() }),
489
+ headers: DefaultHeaderSchema,
490
+ body: updateCategoryLevelSchema,
300
491
  responses: {
301
492
  200: DefaultSuccessResponseSchema.extend({
302
- message: import_zod7.default.string()
493
+ categoryLevel: categoryLevelObjectSchema
303
494
  }),
304
- ...defaultResponses
305
- },
306
- body: null,
307
- summary: "Delete a message by id"
495
+ 500: DefaultErrorResponseSchema
496
+ }
308
497
  }
309
498
  },
310
499
  {
311
- pathPrefix: "/message"
500
+ pathPrefix: "categories"
312
501
  }
313
502
  );
314
503
 
315
- // src/mail/account-contract.ts
504
+ // src/cx-log/index.ts
316
505
  var import_core4 = require("@ts-rest/core");
317
- var import_zod9 = __toESM(require("zod"));
506
+ var import_zod15 = __toESM(require("zod"));
318
507
 
319
- // src/mail/schemas/account.schema.ts
320
- var import_zod8 = __toESM(require("zod"));
321
- var mailServerSchema = import_zod8.default.object({
322
- id: import_zod8.default.string(),
323
- created_at: import_zod8.default.string(),
324
- updated_at: import_zod8.default.string(),
325
- deletedAt: import_zod8.default.string().nullable(),
326
- tenant_id: import_zod8.default.string(),
327
- name: import_zod8.default.string(),
328
- smtpHost: import_zod8.default.string(),
329
- smtpPort: import_zod8.default.string(),
330
- smtpTlsPort: import_zod8.default.string(),
331
- useTlsForSmtp: import_zod8.default.boolean(),
332
- imapHost: import_zod8.default.string(),
333
- imapPort: import_zod8.default.string(),
334
- imapTlsPort: import_zod8.default.string(),
335
- useTlsForImap: import_zod8.default.boolean()
336
- });
337
- var mailAccountSchema = import_zod8.default.object({
338
- id: import_zod8.default.string(),
339
- created_at: import_zod8.default.string(),
340
- updated_at: import_zod8.default.string(),
341
- deletedAt: import_zod8.default.date().nullable(),
342
- tenant_id: import_zod8.default.string(),
343
- name: import_zod8.default.string(),
344
- address: import_zod8.default.string(),
345
- accountId: import_zod8.default.string(),
346
- mailServerId: import_zod8.default.string(),
347
- mailServer: mailServerSchema,
348
- state: import_zod8.default.union([
349
- import_zod8.default.literal("init"),
350
- import_zod8.default.literal("syncing"),
351
- import_zod8.default.literal("connecting"),
352
- import_zod8.default.literal("connected"),
353
- import_zod8.default.literal("disconnected"),
354
- import_zod8.default.literal("authenticationError"),
355
- import_zod8.default.literal("connectError"),
356
- import_zod8.default.literal("unset")
357
- ])
508
+ // src/cx-log/schema.ts
509
+ var import_zod13 = __toESM(require("zod"));
510
+ var CxLogSchema = DefaultEntitySchema.extend({
511
+ caseId: import_zod13.default.number(),
512
+ entityId: import_zod13.default.string().uuid(),
513
+ entityName: import_zod13.default.string(),
514
+ contactId: import_zod13.default.string().uuid().nullable(),
515
+ channel: import_zod13.default.string().nullable(),
516
+ queueId: import_zod13.default.string().uuid().nullable(),
517
+ agentId: import_zod13.default.string().uuid().nullable(),
518
+ direction: import_zod13.default.string().nullable(),
519
+ startedDate: import_zod13.default.date().nullable(),
520
+ handledTime: import_zod13.default.number().nullable(),
521
+ firstResponseTime: import_zod13.default.number().nullable(),
522
+ disposition: import_zod13.default.string().nullable()
358
523
  });
359
- var accountContractsSchemas = {
360
- create: {
361
- input: import_zod8.default.object({
362
- address: import_zod8.default.string().email("Email address must be valid email."),
363
- name: import_zod8.default.string().min(1, "Account name cannot be empty."),
364
- password: import_zod8.default.string().min(1, "Password cannot be empty."),
365
- mailServerId: import_zod8.default.string().uuid("Invalid mail_server_id")
366
- })
367
- },
368
- getById: {
369
- input: import_zod8.default.object({
370
- id: import_zod8.default.string().uuid()
371
- }),
524
+
525
+ // src/cx-log/validation.ts
526
+ var import_zod14 = __toESM(require("zod"));
527
+ var sentimentScoreSchema = import_zod14.default.union([
528
+ import_zod14.default.literal("positive"),
529
+ import_zod14.default.literal("negative")
530
+ ]);
531
+ var CustomFieldQueryParamsSchema = import_zod14.default.object({
532
+ attributeId: import_zod14.default.string(),
533
+ value: import_zod14.default.union([import_zod14.default.string(), import_zod14.default.array(import_zod14.default.string())]),
534
+ type: import_zod14.default.string().optional()
535
+ });
536
+ var GetAllCxLogQueryParamsSchema = DefaultQueryParamsSchema.extend({
537
+ contactId: import_zod14.default.string().uuid(),
538
+ caseId: import_zod14.default.string(),
539
+ channelIds: import_zod14.default.array(import_zod14.default.string().uuid()),
540
+ queueId: import_zod14.default.array(import_zod14.default.string()),
541
+ agentIds: import_zod14.default.array(import_zod14.default.string()),
542
+ direction: import_zod14.default.array(import_zod14.default.union([import_zod14.default.literal("inbound"), import_zod14.default.literal("outbound")])),
543
+ disposition: import_zod14.default.array(import_zod14.default.string()),
544
+ sentimentScore: import_zod14.default.array(sentimentScoreSchema),
545
+ csatScore: import_zod14.default.string(),
546
+ sla: import_zod14.default.array(import_zod14.default.union([import_zod14.default.literal("meet"), import_zod14.default.literal("unmeet")])),
547
+ tags: import_zod14.default.array(import_zod14.default.string()),
548
+ // General tags
549
+ // Default contact attributes
550
+ name: import_zod14.default.string(),
551
+ contactLabels: import_zod14.default.array(import_zod14.default.string()),
552
+ email: import_zod14.default.string(),
553
+ channel: import_zod14.default.array(import_zod14.default.string()),
554
+ phone: import_zod14.default.string(),
555
+ notes: import_zod14.default.string(),
556
+ address: import_zod14.default.string(),
557
+ company: import_zod14.default.array(import_zod14.default.string()),
558
+ // Custom fields
559
+ customFields: import_zod14.default.array(CustomFieldQueryParamsSchema),
560
+ // Date filter
561
+ selectedDate: import_zod14.default.string()
562
+ }).partial().optional();
563
+
564
+ // src/cx-log/index.ts
565
+ var cxLogContract = (0, import_core4.initContract)().router({
566
+ findAll: {
567
+ method: "GET",
568
+ path: "/cx-logs",
569
+ headers: DefaultHeaderSchema,
570
+ responses: {
571
+ 200: DefaultSuccessResponseSchema.extend({
572
+ total: import_zod15.default.number(),
573
+ page: import_zod15.default.number(),
574
+ pageSize: import_zod15.default.number(),
575
+ cxLogs: import_zod15.default.array(CxLogSchema)
576
+ }),
577
+ 401: DefaultUnauthorizedSchema
578
+ },
579
+ query: GetAllCxLogQueryParamsSchema,
580
+ summary: "Get all cx-logs"
581
+ }
582
+ });
583
+
584
+ // src/line/index.ts
585
+ var import_core5 = require("@ts-rest/core");
586
+ var import_zod18 = __toESM(require("zod"));
587
+
588
+ // src/line/schema.ts
589
+ var import_zod16 = __toESM(require("zod"));
590
+ var ConnectLineSchema = import_zod16.default.object({
591
+ id: import_zod16.default.string(),
592
+ accessToken: import_zod16.default.string()
593
+ });
594
+
595
+ // src/line/validation.ts
596
+ var import_zod17 = __toESM(require("zod"));
597
+ var SendLineStickerSchema = import_zod17.default.object({
598
+ userId: import_zod17.default.string().uuid(),
599
+ packageId: import_zod17.default.string(),
600
+ stickerId: import_zod17.default.string(),
601
+ accessToken: import_zod17.default.string()
602
+ });
603
+
604
+ // src/line/index.ts
605
+ var lineContract = (0, import_core5.initContract)().router({
606
+ sendSticker: {
607
+ method: "POST",
608
+ path: "sticker",
609
+ responses: {
610
+ 200: DefaultSuccessResponseSchema.extend({
611
+ data: import_zod18.default.any()
612
+ }),
613
+ 500: DefaultErrorResponseSchema
614
+ },
615
+ body: SendLineStickerSchema,
616
+ summary: "Send sticker to LINE"
617
+ },
618
+ connect: {
619
+ method: "POST",
620
+ path: "connect",
621
+ responses: {
622
+ 200: DefaultSuccessResponseSchema.extend({
623
+ data: import_zod18.default.any()
624
+ }),
625
+ 500: DefaultErrorResponseSchema
626
+ },
627
+ body: ConnectLineSchema,
628
+ summary: "Connect to LINE channel"
629
+ }
630
+ });
631
+
632
+ // src/mail/email-engine-webhooks-events.contract.ts
633
+ var import_core6 = require("@ts-rest/core");
634
+ var import_zod19 = __toESM(require("zod"));
635
+ var emailEngineWebhooksEventsContract = (0, import_core6.initContract)().router({
636
+ handleWebhooksEvents: {
637
+ method: "POST",
638
+ path: "/email_engine/webhooks",
639
+ // we don't need to respone anything but added responses just for solving type error
640
+ responses: {
641
+ 200: DefaultSuccessResponseSchema.extend({
642
+ message: import_zod19.default.string()
643
+ })
644
+ },
645
+ body: null,
646
+ summary: "Handle email engine webhooks events such as authenticationSuccess, messageNew"
647
+ }
648
+ });
649
+
650
+ // src/mail/mail-contract.ts
651
+ var import_core11 = require("@ts-rest/core");
652
+
653
+ // src/mail/room-contract.ts
654
+ var import_core7 = require("@ts-rest/core");
655
+ var import_zod20 = __toESM(require("zod"));
656
+ var roomContract = (0, import_core7.initContract)().router(
657
+ {
658
+ create: {
659
+ method: "POST",
660
+ path: "/",
661
+ responses: {
662
+ 200: DefaultSuccessResponseSchema.extend({
663
+ message: import_zod20.default.string()
664
+ }),
665
+ ...defaultResponses
666
+ },
667
+ body: null,
668
+ summary: "Create a new room for new incoming mail"
669
+ },
670
+ get: {
671
+ method: "GET",
672
+ path: "/:id",
673
+ pathParams: import_zod20.default.object({
674
+ id: import_zod20.default.string()
675
+ }),
676
+ responses: {
677
+ 200: DefaultSuccessResponseSchema.extend({
678
+ message: import_zod20.default.string()
679
+ }),
680
+ ...defaultResponses
681
+ },
682
+ summary: "Get a mail room by id"
683
+ },
684
+ update: {
685
+ method: "PATCH",
686
+ path: "/:id",
687
+ pathParams: import_zod20.default.object({
688
+ id: import_zod20.default.string()
689
+ }),
690
+ responses: {
691
+ 200: DefaultSuccessResponseSchema.extend({
692
+ message: import_zod20.default.string()
693
+ }),
694
+ ...defaultResponses
695
+ },
696
+ body: null,
697
+ summary: "Update a mail room by id"
698
+ },
699
+ delete: {
700
+ method: "PATCH",
701
+ path: "/:id",
702
+ pathParams: import_zod20.default.object({
703
+ id: import_zod20.default.string()
704
+ }),
705
+ responses: {
706
+ 200: DefaultSuccessResponseSchema.extend({
707
+ message: import_zod20.default.string()
708
+ }),
709
+ ...defaultResponses
710
+ },
711
+ body: null,
712
+ summary: "Delete a mail room by id"
713
+ }
714
+ },
715
+ {
716
+ pathPrefix: "/room"
717
+ }
718
+ );
719
+
720
+ // src/mail/message-contract.ts
721
+ var import_core8 = require("@ts-rest/core");
722
+ var import_zod21 = __toESM(require("zod"));
723
+ var messageContract = (0, import_core8.initContract)().router(
724
+ {
725
+ create: {
726
+ method: "POST",
727
+ path: "/",
728
+ responses: {
729
+ 200: DefaultSuccessResponseSchema.extend({
730
+ message: import_zod21.default.string()
731
+ }),
732
+ ...defaultResponses
733
+ },
734
+ body: null,
735
+ summary: "Add a new message into a room"
736
+ },
737
+ get: {
738
+ method: "GET",
739
+ path: "/:id",
740
+ pathParams: import_zod21.default.object({
741
+ id: import_zod21.default.string()
742
+ }),
743
+ responses: {
744
+ 200: DefaultSuccessResponseSchema.extend({
745
+ message: import_zod21.default.string()
746
+ }),
747
+ ...defaultResponses
748
+ },
749
+ summary: "Get a message by id"
750
+ },
751
+ update: {
752
+ method: "PATCH",
753
+ path: "/:id",
754
+ pathParams: import_zod21.default.object({
755
+ id: import_zod21.default.string()
756
+ }),
757
+ responses: {
758
+ 200: DefaultSuccessResponseSchema.extend({
759
+ message: import_zod21.default.string()
760
+ }),
761
+ ...defaultResponses
762
+ },
763
+ body: null,
764
+ summary: "Update a message by id"
765
+ },
766
+ delete: {
767
+ method: "PATCH",
768
+ path: "/:id",
769
+ pathParams: import_zod21.default.object({
770
+ id: import_zod21.default.string()
771
+ }),
772
+ responses: {
773
+ 200: DefaultSuccessResponseSchema.extend({
774
+ message: import_zod21.default.string()
775
+ }),
776
+ ...defaultResponses
777
+ },
778
+ body: null,
779
+ summary: "Delete a message by id"
780
+ }
781
+ },
782
+ {
783
+ pathPrefix: "/message"
784
+ }
785
+ );
786
+
787
+ // src/mail/account-contract.ts
788
+ var import_core9 = require("@ts-rest/core");
789
+ var import_zod23 = __toESM(require("zod"));
790
+
791
+ // src/mail/schemas/account.schema.ts
792
+ var import_zod22 = __toESM(require("zod"));
793
+ var mailServerSchema = import_zod22.default.object({
794
+ id: import_zod22.default.string(),
795
+ created_at: import_zod22.default.string(),
796
+ updated_at: import_zod22.default.string(),
797
+ deletedAt: import_zod22.default.string().nullable(),
798
+ tenant_id: import_zod22.default.string(),
799
+ name: import_zod22.default.string(),
800
+ smtpHost: import_zod22.default.string(),
801
+ smtpPort: import_zod22.default.string(),
802
+ smtpTlsPort: import_zod22.default.string(),
803
+ useTlsForSmtp: import_zod22.default.boolean(),
804
+ imapHost: import_zod22.default.string(),
805
+ imapPort: import_zod22.default.string(),
806
+ imapTlsPort: import_zod22.default.string(),
807
+ useTlsForImap: import_zod22.default.boolean()
808
+ });
809
+ var mailAccountSchema = import_zod22.default.object({
810
+ id: import_zod22.default.string(),
811
+ created_at: import_zod22.default.string(),
812
+ updated_at: import_zod22.default.string(),
813
+ deletedAt: import_zod22.default.date().nullable(),
814
+ tenant_id: import_zod22.default.string(),
815
+ name: import_zod22.default.string(),
816
+ address: import_zod22.default.string(),
817
+ accountId: import_zod22.default.string(),
818
+ mailServerId: import_zod22.default.string(),
819
+ mailServer: mailServerSchema,
820
+ state: import_zod22.default.union([
821
+ import_zod22.default.literal("init"),
822
+ import_zod22.default.literal("syncing"),
823
+ import_zod22.default.literal("connecting"),
824
+ import_zod22.default.literal("connected"),
825
+ import_zod22.default.literal("disconnected"),
826
+ import_zod22.default.literal("authenticationError"),
827
+ import_zod22.default.literal("connectError"),
828
+ import_zod22.default.literal("unset")
829
+ ])
830
+ });
831
+ var accountContractsSchemas = {
832
+ create: {
833
+ input: import_zod22.default.object({
834
+ address: import_zod22.default.string().email("Email address must be valid email."),
835
+ name: import_zod22.default.string().min(1, "Account name cannot be empty."),
836
+ password: import_zod22.default.string().min(1, "Password cannot be empty."),
837
+ mailServerId: import_zod22.default.string().uuid("Invalid mail_server_id")
838
+ })
839
+ },
840
+ getById: {
841
+ input: import_zod22.default.object({
842
+ id: import_zod22.default.string().uuid()
843
+ }),
372
844
  output: mailAccountSchema
373
845
  },
374
846
  getAll: {
375
- output: import_zod8.default.array(mailAccountSchema)
847
+ output: import_zod22.default.array(mailAccountSchema)
376
848
  },
377
849
  update: {
378
850
  input: mailAccountSchema,
379
851
  output: mailAccountSchema
380
852
  },
381
853
  disconnect: {
382
- input: import_zod8.default.object({
383
- id: import_zod8.default.string().uuid()
854
+ input: import_zod22.default.object({
855
+ id: import_zod22.default.string().uuid()
384
856
  }),
385
857
  output: mailAccountSchema
386
858
  },
387
859
  reconnect: {
388
- input: import_zod8.default.object({
389
- id: import_zod8.default.string()
860
+ input: import_zod22.default.object({
861
+ id: import_zod22.default.string()
390
862
  }),
391
863
  output: mailAccountSchema
392
864
  },
393
865
  delete: {
394
- input: import_zod8.default.object({
395
- id: import_zod8.default.string()
866
+ input: import_zod22.default.object({
867
+ id: import_zod22.default.string()
396
868
  }),
397
869
  output: mailAccountSchema
398
870
  }
399
871
  };
400
872
 
401
873
  // src/mail/account-contract.ts
402
- var accountContract = (0, import_core4.initContract)().router(
874
+ var accountContract = (0, import_core9.initContract)().router(
403
875
  {
404
876
  //#region ........register account
405
877
  create: {
@@ -408,16 +880,16 @@ var accountContract = (0, import_core4.initContract)().router(
408
880
  responses: {
409
881
  201: DefaultSuccessResponseSchema.extend({
410
882
  // data: accountContractsSchemas.create.output,
411
- message: import_zod9.default.string()
883
+ message: import_zod23.default.string()
412
884
  }),
413
- 400: import_zod9.default.object({
414
- message: import_zod9.default.string()
885
+ 400: import_zod23.default.object({
886
+ message: import_zod23.default.string()
415
887
  }),
416
- 409: import_zod9.default.object({
417
- message: import_zod9.default.string()
888
+ 409: import_zod23.default.object({
889
+ message: import_zod23.default.string()
418
890
  }),
419
- 500: import_zod9.default.object({
420
- message: import_zod9.default.string()
891
+ 500: import_zod23.default.object({
892
+ message: import_zod23.default.string()
421
893
  }),
422
894
  ...defaultResponses
423
895
  },
@@ -446,7 +918,7 @@ var accountContract = (0, import_core4.initContract)().router(
446
918
  path: "",
447
919
  responses: {
448
920
  200: DefaultSuccessResponseSchema.extend({
449
- data: import_zod9.default.any()
921
+ data: import_zod23.default.any()
450
922
  // data: accountContractsSchemas.getAll.output,
451
923
  }),
452
924
  ...defaultResponses
@@ -458,8 +930,8 @@ var accountContract = (0, import_core4.initContract)().router(
458
930
  update: {
459
931
  method: "PATCH",
460
932
  path: "/:id",
461
- pathParams: import_zod9.default.object({
462
- id: import_zod9.default.string().uuid()
933
+ pathParams: import_zod23.default.object({
934
+ id: import_zod23.default.string().uuid()
463
935
  }),
464
936
  responses: {
465
937
  201: DefaultSuccessResponseSchema.extend({
@@ -508,7 +980,7 @@ var accountContract = (0, import_core4.initContract)().router(
508
980
  pathParams: accountContractsSchemas.delete.input,
509
981
  responses: {
510
982
  200: DefaultSuccessResponseSchema.extend({
511
- message: import_zod9.default.string()
983
+ message: import_zod23.default.string()
512
984
  }),
513
985
  ...defaultResponses
514
986
  },
@@ -524,16 +996,16 @@ var accountContract = (0, import_core4.initContract)().router(
524
996
  );
525
997
 
526
998
  // src/mail/mail-server.ts
527
- var import_core5 = require("@ts-rest/core");
528
- var import_zod10 = __toESM(require("zod"));
529
- var serverContract = (0, import_core5.initContract)().router(
999
+ var import_core10 = require("@ts-rest/core");
1000
+ var import_zod24 = __toESM(require("zod"));
1001
+ var serverContract = (0, import_core10.initContract)().router(
530
1002
  {
531
1003
  create: {
532
1004
  method: "POST",
533
1005
  path: "/",
534
1006
  responses: {
535
1007
  200: DefaultSuccessResponseSchema.extend({
536
- message: import_zod10.default.string()
1008
+ message: import_zod24.default.string()
537
1009
  }),
538
1010
  ...defaultResponses
539
1011
  },
@@ -543,12 +1015,12 @@ var serverContract = (0, import_core5.initContract)().router(
543
1015
  get: {
544
1016
  method: "GET",
545
1017
  path: "/:id",
546
- pathParams: import_zod10.default.object({
547
- id: import_zod10.default.string()
1018
+ pathParams: import_zod24.default.object({
1019
+ id: import_zod24.default.string()
548
1020
  }),
549
1021
  responses: {
550
1022
  200: DefaultSuccessResponseSchema.extend({
551
- message: import_zod10.default.string()
1023
+ message: import_zod24.default.string()
552
1024
  }),
553
1025
  ...defaultResponses
554
1026
  },
@@ -557,12 +1029,12 @@ var serverContract = (0, import_core5.initContract)().router(
557
1029
  update: {
558
1030
  method: "PATCH",
559
1031
  path: "/:id",
560
- pathParams: import_zod10.default.object({
561
- id: import_zod10.default.string()
1032
+ pathParams: import_zod24.default.object({
1033
+ id: import_zod24.default.string()
562
1034
  }),
563
1035
  responses: {
564
1036
  200: DefaultSuccessResponseSchema.extend({
565
- message: import_zod10.default.string()
1037
+ message: import_zod24.default.string()
566
1038
  }),
567
1039
  ...defaultResponses
568
1040
  },
@@ -572,12 +1044,12 @@ var serverContract = (0, import_core5.initContract)().router(
572
1044
  delete: {
573
1045
  method: "PATCH",
574
1046
  path: "/:id",
575
- pathParams: import_zod10.default.object({
576
- id: import_zod10.default.string()
1047
+ pathParams: import_zod24.default.object({
1048
+ id: import_zod24.default.string()
577
1049
  }),
578
1050
  responses: {
579
1051
  200: DefaultSuccessResponseSchema.extend({
580
- message: import_zod10.default.string()
1052
+ message: import_zod24.default.string()
581
1053
  }),
582
1054
  ...defaultResponses
583
1055
  },
@@ -591,265 +1063,667 @@ var serverContract = (0, import_core5.initContract)().router(
591
1063
  );
592
1064
 
593
1065
  // src/mail/mail-contract.ts
594
- var mailContract = (0, import_core6.initContract)().router({
1066
+ var mailContract = (0, import_core11.initContract)().router({
595
1067
  room: roomContract,
596
1068
  message: messageContract,
597
1069
  account: accountContract,
598
1070
  server: serverContract
599
1071
  });
600
1072
 
601
- // src/cx-log/index.ts
602
- var import_core7 = require("@ts-rest/core");
603
- var import_zod13 = __toESM(require("zod"));
1073
+ // src/tag/index.ts
1074
+ var import_zod27 = __toESM(require("zod"));
1075
+ var import_core12 = require("@ts-rest/core");
604
1076
 
605
- // src/cx-log/schema.ts
606
- var import_zod11 = __toESM(require("zod"));
607
- var CxLogSchema = DefaultEntitySchema.extend({
608
- caseId: import_zod11.default.number(),
609
- entityId: import_zod11.default.string().uuid(),
610
- entityName: import_zod11.default.string(),
611
- contactId: import_zod11.default.string().uuid().nullable(),
612
- channel: import_zod11.default.string().nullable(),
613
- queueId: import_zod11.default.string().uuid().nullable(),
614
- agentId: import_zod11.default.string().uuid().nullable(),
615
- direction: import_zod11.default.string().nullable(),
616
- startedDate: import_zod11.default.date().nullable(),
617
- handledTime: import_zod11.default.number().nullable(),
618
- firstResponseTime: import_zod11.default.number().nullable(),
619
- disposition: import_zod11.default.string().nullable()
620
- });
1077
+ // src/tag/validation.ts
1078
+ var import_zod26 = require("zod");
621
1079
 
622
- // src/cx-log/validation.ts
623
- var import_zod12 = __toESM(require("zod"));
624
- var CustomFieldQueryParamsSchema = import_zod12.default.object({
625
- attributeId: import_zod12.default.string(),
626
- value: import_zod12.default.string().or(import_zod12.default.array(import_zod12.default.string())),
627
- type: import_zod12.default.string()
628
- });
629
- var GetAllCxLogQueryParamsSchema = DefaultQueryParamsSchema.extend({
630
- contactId: import_zod12.default.string().uuid().optional(),
631
- channelIds: import_zod12.default.string().uuid().optional(),
632
- queueIds: import_zod12.default.string().uuid().optional(),
633
- direction: import_zod12.default.enum(["inbound", "outbound"]).array().optional(),
634
- sentimentScore: import_zod12.default.enum(["positive", "negative"]).array().optional(),
635
- csatScore: import_zod12.default.string().optional(),
636
- sla: import_zod12.default.enum(["meet", "unmeet"]).array().optional(),
637
- caseId: import_zod12.default.string().optional(),
638
- name: import_zod12.default.string().optional(),
639
- email: import_zod12.default.string().optional(),
640
- phone: import_zod12.default.string().optional(),
641
- address: import_zod12.default.string().optional(),
642
- company: import_zod12.default.string().optional(),
643
- agentIds: import_zod12.default.string().array().optional(),
644
- channel: import_zod12.default.string().array().optional(),
645
- disposition: import_zod12.default.string().array().optional(),
646
- notes: import_zod12.default.string().optional(),
647
- contactLabels: import_zod12.default.string().array().optional(),
648
- tags: import_zod12.default.string().array().optional(),
649
- selectedDate: import_zod12.default.string().optional(),
650
- customFields: import_zod12.default.array(CustomFieldQueryParamsSchema).optional()
1080
+ // src/tag/schema.ts
1081
+ var import_zod25 = __toESM(require("zod"));
1082
+ var tagSchema = DefaultEntitySchema.extend({
1083
+ name: import_zod25.default.string()
651
1084
  });
1085
+ var tagGroupSchema = import_zod25.default.union([
1086
+ import_zod25.default.literal("general"),
1087
+ import_zod25.default.literal("contact")
1088
+ ]);
652
1089
 
653
- // src/cx-log/index.ts
654
- var cxLogContract = (0, import_core7.initContract)().router({
655
- findAll: {
656
- method: "GET",
657
- path: "/cx-logs",
658
- headers: DefaultHeaderSchema,
659
- responses: {
660
- 200: DefaultSuccessResponseSchema.extend({
661
- total: import_zod13.default.number(),
662
- page: import_zod13.default.number(),
663
- pageSize: import_zod13.default.number(),
664
- cxLogs: import_zod13.default.array(CxLogSchema)
665
- }),
666
- 401: DefaultUnauthorizedSchema
667
- },
668
- query: GetAllCxLogQueryParamsSchema,
669
- summary: "Get all cx-logs"
670
- }
1090
+ // src/tag/validation.ts
1091
+ var createTagSchema = import_zod26.z.object({
1092
+ name: import_zod26.z.string(),
1093
+ group: tagGroupSchema
671
1094
  });
1095
+ var getTagsSchema = import_zod26.z.object({
1096
+ group: tagGroupSchema.default("general"),
1097
+ keyword: import_zod26.z.string()
1098
+ }).partial().optional();
1099
+ var updateTagSchema = import_zod26.z.object({ name: import_zod26.z.string() });
672
1100
 
673
- // src/mail/email-engine-webhooks-events.contract.ts
674
- var import_core8 = require("@ts-rest/core");
675
- var import_zod14 = __toESM(require("zod"));
676
- var emailEngineWebhooksEventsContract = (0, import_core8.initContract)().router({
677
- handleWebhooksEvents: {
678
- method: "POST",
679
- path: "/email_engine/webhooks",
680
- // we don't need to respone anything but added responses just for solving type error
681
- responses: {
682
- 200: DefaultSuccessResponseSchema.extend({
683
- message: import_zod14.default.string()
684
- })
1101
+ // src/tag/index.ts
1102
+ var tagContract = (0, import_core12.initContract)().router(
1103
+ {
1104
+ createTag: {
1105
+ method: "POST",
1106
+ path: "",
1107
+ body: createTagSchema,
1108
+ responses: {
1109
+ 201: DefaultSuccessResponseSchema.extend({
1110
+ tag: tagSchema
1111
+ }),
1112
+ 500: DefaultErrorResponseSchema
1113
+ },
1114
+ headers: DefaultHeaderSchema
685
1115
  },
686
- body: null,
687
- summary: "Handle email engine webhooks events such as authenticationSuccess, messageNew"
1116
+ getTags: {
1117
+ method: "GET",
1118
+ path: "",
1119
+ query: getTagsSchema,
1120
+ responses: {
1121
+ 200: DefaultSuccessResponseSchema.extend({
1122
+ tags: import_zod27.default.array(tagSchema)
1123
+ }),
1124
+ 500: DefaultErrorResponseSchema
1125
+ },
1126
+ headers: DefaultHeaderSchema
1127
+ },
1128
+ updateTag: {
1129
+ method: "PATCH",
1130
+ path: "/:id",
1131
+ pathParams: import_zod27.default.object({ id: import_zod27.default.string() }),
1132
+ body: updateTagSchema,
1133
+ responses: {
1134
+ 200: DefaultSuccessResponseSchema.extend({
1135
+ tag: tagSchema
1136
+ }),
1137
+ 500: DefaultErrorResponseSchema
1138
+ },
1139
+ headers: DefaultHeaderSchema
1140
+ },
1141
+ deleteTag: {
1142
+ method: "DELETE",
1143
+ path: "/:id",
1144
+ pathParams: import_zod27.default.object({ id: import_zod27.default.string() }),
1145
+ body: import_zod27.default.any().optional(),
1146
+ // We don't need the body.
1147
+ responses: {
1148
+ 200: DefaultSuccessResponseSchema.extend({ message: import_zod27.default.string() }),
1149
+ 500: DefaultErrorResponseSchema
1150
+ },
1151
+ headers: DefaultHeaderSchema
1152
+ }
1153
+ },
1154
+ {
1155
+ pathPrefix: "tags"
688
1156
  }
689
- });
1157
+ );
690
1158
 
691
- // src/category/index.ts
692
- var import_core9 = require("@ts-rest/core");
693
- var import_zod18 = __toESM(require("zod"));
1159
+ // src/extension/index.ts
1160
+ var import_core13 = require("@ts-rest/core");
1161
+ var import_zod30 = __toESM(require("zod"));
694
1162
 
695
- // utils.ts
696
- var import_zod15 = require("zod");
697
- var paginationSchema = import_zod15.z.object({
698
- page: import_zod15.z.number().default(1),
699
- pageSize: import_zod15.z.number().default(10),
700
- total: import_zod15.z.number(),
701
- lastPage: import_zod15.z.number().optional().nullable()
702
- });
703
- var withPagination = (dataSchema) => {
704
- return paginationSchema.extend({
705
- data: import_zod15.z.array(dataSchema)
706
- });
707
- };
708
-
709
- // src/category/schema.ts
710
- var import_zod16 = require("zod");
711
- var categoryLevelSchema = import_zod16.z.union([
712
- import_zod16.z.literal(1),
713
- import_zod16.z.literal(2),
714
- import_zod16.z.literal(3)
715
- ]);
716
- var categorySchema = import_zod16.z.object({
717
- id: import_zod16.z.string(),
718
- value: import_zod16.z.string(),
719
- level: categoryLevelSchema,
720
- parentId: import_zod16.z.string().nullable(),
721
- childCategoryList: import_zod16.z.array(
722
- import_zod16.z.object({
723
- id: import_zod16.z.string(),
724
- value: import_zod16.z.string(),
725
- level: categoryLevelSchema,
726
- parentId: import_zod16.z.string().nullable(),
727
- childCategoryList: import_zod16.z.array(
728
- import_zod16.z.object({
729
- id: import_zod16.z.string(),
730
- value: import_zod16.z.string(),
731
- level: categoryLevelSchema,
732
- parentId: import_zod16.z.string().nullable(),
733
- childCategoryList: import_zod16.z.array(import_zod16.z.any())
734
- // This is an empty array.
735
- })
736
- )
737
- })
738
- )
1163
+ // src/extension/schema.ts
1164
+ var import_zod28 = __toESM(require("zod"));
1165
+ var ExtensionSchema = DefaultEntitySchema.extend({
1166
+ userId: import_zod28.default.string().nullable(),
1167
+ sipServerUrl: import_zod28.default.string(),
1168
+ sipUserName: import_zod28.default.string(),
1169
+ extensionId: import_zod28.default.coerce.number().nullable(),
1170
+ extensionName: import_zod28.default.string().nullable(),
1171
+ telephonySignature: import_zod28.default.string().nullable()
739
1172
  });
740
1173
 
741
- // src/category/validation.ts
742
- var import_zod17 = require("zod");
743
- var createCategorySchema = import_zod17.z.object({
744
- value: import_zod17.z.string(),
745
- level: categoryLevelSchema,
746
- parentId: import_zod17.z.string().nullable()
1174
+ // src/extension/validation.ts
1175
+ var import_zod29 = require("zod");
1176
+ var CreateExtensionSchema = import_zod29.z.object({
1177
+ userId: import_zod29.z.string().nullable(),
1178
+ sipServerUrl: import_zod29.z.string(),
1179
+ sipUserName: import_zod29.z.string(),
1180
+ extensionId: import_zod29.z.coerce.number().nullable(),
1181
+ extensionName: import_zod29.z.string().nullable(),
1182
+ telephonySignature: import_zod29.z.string().nullable()
747
1183
  });
748
- var updateCategorySchema = import_zod17.z.object({ value: import_zod17.z.string() });
749
- var createCategoryLevelSchema = import_zod17.z.object({
750
- name: import_zod17.z.string(),
751
- level: categoryLevelSchema
752
- });
753
- var updateCategoryLevelSchema = import_zod17.z.object({
754
- id: import_zod17.z.string(),
755
- name: import_zod17.z.string(),
756
- level: categoryLevelSchema
1184
+ var UpdateExtensionSchema = CreateExtensionSchema.extend({
1185
+ id: import_zod29.z.string()
757
1186
  });
758
1187
 
759
- // src/category/index.ts
760
- var categoryContract = (0, import_core9.initContract)().router(
1188
+ // src/extension/index.ts
1189
+ var extensionContract = (0, import_core13.initContract)().router(
761
1190
  {
762
- createCategory: {
1191
+ createExtension: {
763
1192
  method: "POST",
764
1193
  path: "",
765
1194
  headers: DefaultHeaderSchema,
766
- body: createCategorySchema,
1195
+ body: CreateExtensionSchema,
767
1196
  responses: {
768
1197
  201: DefaultSuccessResponseSchema.extend({
769
- category: categorySchema
1198
+ extension: ExtensionSchema
1199
+ }),
1200
+ 400: import_zod30.default.object({
1201
+ message: import_zod30.default.string()
770
1202
  }),
1203
+ 401: DefaultUnauthorizedSchema,
771
1204
  500: DefaultErrorResponseSchema
772
- }
1205
+ },
1206
+ summary: "Create a extension."
773
1207
  },
774
- getCategories: {
1208
+ getExtensions: {
775
1209
  method: "GET",
776
1210
  path: "",
777
- query: import_zod18.default.object({
778
- page: import_zod18.default.coerce.number().optional(),
779
- pageSize: import_zod18.default.coerce.number().optional()
1211
+ query: import_zod30.default.object({
1212
+ page: import_zod30.default.coerce.number().default(1),
1213
+ pageSize: import_zod30.default.coerce.number().default(10),
1214
+ keyword: import_zod30.default.string().optional()
780
1215
  }).optional(),
781
1216
  headers: DefaultHeaderSchema,
782
1217
  responses: {
783
- 200: withPagination(categorySchema),
1218
+ 200: withPagination(ExtensionSchema),
1219
+ 400: import_zod30.default.object({
1220
+ message: import_zod30.default.string()
1221
+ }),
1222
+ 401: DefaultUnauthorizedSchema,
784
1223
  500: DefaultErrorResponseSchema
785
- }
1224
+ },
1225
+ summary: "Get all extensions"
786
1226
  },
787
- updateCategory: {
1227
+ getExtensionByDialpad: {
1228
+ method: "GET",
1229
+ path: "/dialpad",
1230
+ query: import_zod30.default.object({
1231
+ page: import_zod30.default.coerce.number().default(1),
1232
+ pageSize: import_zod30.default.coerce.number().default(10),
1233
+ keyword: import_zod30.default.string().optional()
1234
+ }).optional(),
1235
+ headers: DefaultHeaderSchema,
1236
+ responses: {
1237
+ 200: withPagination(ExtensionSchema),
1238
+ 500: DefaultErrorResponseSchema,
1239
+ 400: import_zod30.default.object({
1240
+ message: import_zod30.default.string()
1241
+ }),
1242
+ 401: DefaultUnauthorizedSchema
1243
+ },
1244
+ summary: "Get by dialpad"
1245
+ },
1246
+ updateExtension: {
788
1247
  method: "PATCH",
789
1248
  path: "/:id",
790
- pathParams: import_zod18.default.object({ id: import_zod18.default.string() }),
791
- headers: DefaultHeaderSchema.extend({
792
- category: categorySchema
793
- }),
794
- body: updateCategorySchema,
1249
+ pathParams: import_zod30.default.object({ id: import_zod30.default.string() }),
1250
+ headers: DefaultHeaderSchema,
1251
+ body: UpdateExtensionSchema,
795
1252
  responses: {
796
- 200: DefaultSuccessResponseSchema,
1253
+ 200: DefaultSuccessResponseSchema.extend({
1254
+ extension: ExtensionSchema
1255
+ }),
797
1256
  500: DefaultErrorResponseSchema
798
- }
1257
+ },
1258
+ summary: "Update a extension."
799
1259
  },
800
- deleteCategory: {
1260
+ deleteExtension: {
801
1261
  method: "DELETE",
802
1262
  path: "/:id",
803
- pathParams: import_zod18.default.object({ id: import_zod18.default.string() }),
1263
+ pathParams: import_zod30.default.object({ id: import_zod30.default.string() }),
804
1264
  headers: DefaultHeaderSchema,
805
- body: import_zod18.default.any().optional(),
1265
+ body: null,
806
1266
  responses: {
807
- 200: DefaultSuccessResponseSchema.extend({ message: import_zod18.default.string() }),
1267
+ 200: DefaultSuccessResponseSchema.extend({ message: import_zod30.default.string() }),
808
1268
  500: DefaultErrorResponseSchema
809
- }
1269
+ },
1270
+ summary: "Delete a extension."
1271
+ }
1272
+ },
1273
+ { pathPrefix: "extension" }
1274
+ );
1275
+
1276
+ // src/permission/index.ts
1277
+ var import_core14 = require("@ts-rest/core");
1278
+ var import_zod31 = __toESM(require("zod"));
1279
+ var permissionContract = (0, import_core14.initContract)().router(
1280
+ {
1281
+ getPermissions: {
1282
+ method: "GET",
1283
+ path: "",
1284
+ headers: DefaultHeaderSchema,
1285
+ responses: {
1286
+ 200: import_zod31.default.object({ permissions: PermissionSchema.array() }),
1287
+ 400: import_zod31.default.object({
1288
+ message: import_zod31.default.string()
1289
+ }),
1290
+ 401: DefaultUnauthorizedSchema,
1291
+ 500: DefaultErrorResponseSchema
1292
+ },
1293
+ summary: "Get all permissions"
810
1294
  },
811
- createCategoryLevel: {
812
- method: "POST",
813
- path: "/level",
1295
+ getPermissionByUserId: {
1296
+ method: "GET",
1297
+ path: "/user/:id",
1298
+ pathParams: import_zod31.default.object({ userId: import_zod31.default.string() }),
814
1299
  headers: DefaultHeaderSchema,
815
- body: createCategoryLevelSchema,
816
1300
  responses: {
817
1301
  200: DefaultSuccessResponseSchema.extend({
818
- categoryLevel: categoryLevelSchema
1302
+ permission: PermissionSchema
1303
+ }),
1304
+ 401: DefaultUnauthorizedSchema
1305
+ },
1306
+ summary: "Get permission by user id"
1307
+ }
1308
+ },
1309
+ { pathPrefix: "permission" }
1310
+ );
1311
+
1312
+ // src/role/index.ts
1313
+ var import_core15 = require("@ts-rest/core");
1314
+ var import_zod33 = __toESM(require("zod"));
1315
+
1316
+ // src/role/validation.ts
1317
+ var import_zod32 = require("zod");
1318
+ var CreateRoleSchema = import_zod32.z.object({
1319
+ systemName: import_zod32.z.string(),
1320
+ displayName: import_zod32.z.string(),
1321
+ description: import_zod32.z.string().nullable(),
1322
+ permissions: import_zod32.z.array(import_zod32.z.string())
1323
+ });
1324
+ var UpdateRoleSchema = CreateRoleSchema.extend({
1325
+ id: import_zod32.z.string()
1326
+ });
1327
+
1328
+ // src/role/index.ts
1329
+ var roleContract = (0, import_core15.initContract)().router(
1330
+ {
1331
+ createRole: {
1332
+ method: "POST",
1333
+ path: "",
1334
+ headers: DefaultHeaderSchema,
1335
+ body: CreateRoleSchema,
1336
+ responses: {
1337
+ 201: DefaultSuccessResponseSchema.extend({
1338
+ role: RoleSchema
819
1339
  }),
1340
+ 400: import_zod33.default.object({
1341
+ message: import_zod33.default.string()
1342
+ }),
1343
+ 401: DefaultUnauthorizedSchema,
820
1344
  500: DefaultErrorResponseSchema
821
- }
1345
+ },
1346
+ summary: "Create a role."
822
1347
  },
823
- updateCategoryLevel: {
1348
+ getRoles: {
1349
+ method: "GET",
1350
+ path: "",
1351
+ query: import_zod33.default.object({
1352
+ page: import_zod33.default.coerce.number().default(1),
1353
+ pageSize: import_zod33.default.coerce.number().default(10)
1354
+ }).optional(),
1355
+ headers: DefaultHeaderSchema,
1356
+ responses: {
1357
+ 200: withPagination(RoleSchema),
1358
+ 400: import_zod33.default.object({
1359
+ message: import_zod33.default.string()
1360
+ }),
1361
+ 401: DefaultUnauthorizedSchema,
1362
+ 500: DefaultErrorResponseSchema
1363
+ },
1364
+ summary: "Get all roles"
1365
+ },
1366
+ updateRole: {
824
1367
  method: "PATCH",
825
- path: "/level/:id",
826
- pathParams: import_zod18.default.object({ id: import_zod18.default.string() }),
1368
+ path: "/:id",
1369
+ pathParams: import_zod33.default.object({ id: import_zod33.default.string() }),
1370
+ headers: DefaultHeaderSchema,
1371
+ body: UpdateRoleSchema,
1372
+ responses: {
1373
+ 201: DefaultSuccessResponseSchema.extend({
1374
+ role: RoleSchema
1375
+ }),
1376
+ 400: import_zod33.default.object({
1377
+ message: import_zod33.default.string()
1378
+ }),
1379
+ 401: DefaultUnauthorizedSchema,
1380
+ 500: DefaultErrorResponseSchema
1381
+ },
1382
+ summary: "Update a role."
1383
+ },
1384
+ deleteRole: {
1385
+ method: "DELETE",
1386
+ path: "/:id",
1387
+ pathParams: import_zod33.default.object({ id: import_zod33.default.string() }),
1388
+ headers: DefaultHeaderSchema,
1389
+ body: null,
1390
+ responses: {
1391
+ 200: DefaultSuccessResponseSchema.extend({ message: import_zod33.default.string() }),
1392
+ 500: DefaultErrorResponseSchema
1393
+ },
1394
+ summary: "Delete a role."
1395
+ }
1396
+ },
1397
+ { pathPrefix: "role" }
1398
+ );
1399
+
1400
+ // src/user/index.ts
1401
+ var import_core16 = require("@ts-rest/core");
1402
+ var import_zod34 = __toESM(require("zod"));
1403
+ var userContract = (0, import_core16.initContract)().router(
1404
+ {
1405
+ createUser: {
1406
+ method: "POST",
1407
+ path: "",
1408
+ headers: DefaultHeaderSchema,
1409
+ responses: {
1410
+ 201: DefaultSuccessResponseSchema.extend({
1411
+ user: UserSchema
1412
+ }),
1413
+ 400: import_zod34.default.object({
1414
+ message: import_zod34.default.string()
1415
+ }),
1416
+ 401: DefaultUnauthorizedSchema
1417
+ },
1418
+ body: UserSchema,
1419
+ summary: "Create a user."
1420
+ },
1421
+ getUsers: {
1422
+ method: "GET",
1423
+ path: "",
1424
+ headers: DefaultHeaderSchema,
1425
+ responses: {
1426
+ 200: DefaultSuccessResponseSchema.extend({
1427
+ user: withPagination(UserSchema)
1428
+ }),
1429
+ 400: import_zod34.default.object({
1430
+ message: import_zod34.default.string()
1431
+ }),
1432
+ 401: DefaultUnauthorizedSchema
1433
+ },
1434
+ summary: "Get all users"
1435
+ },
1436
+ getUserById: {
1437
+ method: "GET",
1438
+ path: "/:id",
1439
+ pathParams: import_zod34.default.object({ id: import_zod34.default.string() }),
827
1440
  headers: DefaultHeaderSchema,
828
- body: updateCategoryLevelSchema,
829
1441
  responses: {
830
1442
  200: DefaultSuccessResponseSchema.extend({
831
- categoryLevel: categoryLevelSchema
1443
+ user: UserSchema
1444
+ }),
1445
+ 400: import_zod34.default.object({
1446
+ message: import_zod34.default.string()
1447
+ }),
1448
+ 401: DefaultUnauthorizedSchema
1449
+ },
1450
+ summary: "Get user by id"
1451
+ },
1452
+ updateUser: {
1453
+ method: "PATCH",
1454
+ path: "/:id",
1455
+ pathParams: import_zod34.default.object({ id: import_zod34.default.string() }),
1456
+ headers: DefaultHeaderSchema,
1457
+ responses: {
1458
+ 201: DefaultSuccessResponseSchema.extend({
1459
+ role: UserSchema
1460
+ }),
1461
+ 400: import_zod34.default.object({
1462
+ message: import_zod34.default.string()
1463
+ }),
1464
+ 401: DefaultUnauthorizedSchema
1465
+ },
1466
+ body: UserSchema.extend({
1467
+ newPassword: import_zod34.default.string()
1468
+ }),
1469
+ summary: "Update a user."
1470
+ },
1471
+ deleteUser: {
1472
+ method: "DELETE",
1473
+ path: "/:id",
1474
+ pathParams: import_zod34.default.object({ id: import_zod34.default.string() }),
1475
+ headers: DefaultHeaderSchema,
1476
+ body: import_zod34.default.null().optional(),
1477
+ responses: { 200: import_zod34.default.string() },
1478
+ summary: "Delete a user."
1479
+ }
1480
+ },
1481
+ { pathPrefix: "user" }
1482
+ );
1483
+
1484
+ // src/widget/index.ts
1485
+ var import_core17 = require("@ts-rest/core");
1486
+ var import_zod37 = __toESM(require("zod"));
1487
+
1488
+ // src/widget/schema.ts
1489
+ var import_zod35 = __toESM(require("zod"));
1490
+ var FieldsSchema = import_zod35.default.object({ data: import_zod35.default.array(import_zod35.default.string()) });
1491
+ var WidgetPositionSchema = import_zod35.default.union([
1492
+ import_zod35.default.literal("menu"),
1493
+ import_zod35.default.literal("ticket_detail"),
1494
+ import_zod35.default.literal("contact_detail")
1495
+ ]);
1496
+ var WidgetSchema = DefaultEntitySchema.extend({
1497
+ name: import_zod35.default.string(),
1498
+ description: import_zod35.default.string().nullable(),
1499
+ position: WidgetPositionSchema.nullable(),
1500
+ fields: FieldsSchema,
1501
+ url: import_zod35.default.string().nullable()
1502
+ });
1503
+
1504
+ // src/widget/validation.ts
1505
+ var import_zod36 = __toESM(require("zod"));
1506
+ var CreateWidgetSchema = import_zod36.default.object({
1507
+ name: import_zod36.default.string(),
1508
+ description: import_zod36.default.string(),
1509
+ url: import_zod36.default.string(),
1510
+ position: WidgetPositionSchema,
1511
+ fields: import_zod36.default.object({
1512
+ data: (
1513
+ // Array of attribute system names
1514
+ import_zod36.default.array(import_zod36.default.string())
1515
+ )
1516
+ }).optional()
1517
+ });
1518
+ var UpdateWidgetSchema = CreateWidgetSchema.extend({
1519
+ id: import_zod36.default.string()
1520
+ });
1521
+
1522
+ // src/widget/index.ts
1523
+ var widgetContract = (0, import_core17.initContract)().router(
1524
+ {
1525
+ createWidget: {
1526
+ method: "POST",
1527
+ path: "",
1528
+ headers: DefaultHeaderSchema,
1529
+ body: CreateWidgetSchema,
1530
+ responses: {
1531
+ 201: DefaultSuccessResponseSchema.extend({
1532
+ widget: WidgetSchema
1533
+ }),
1534
+ 400: import_zod37.default.object({
1535
+ message: import_zod37.default.string()
832
1536
  }),
1537
+ 401: DefaultUnauthorizedSchema,
833
1538
  500: DefaultErrorResponseSchema
834
- }
1539
+ },
1540
+ summary: "Create a widget."
1541
+ },
1542
+ getWidgets: {
1543
+ method: "GET",
1544
+ path: "",
1545
+ query: import_zod37.default.object({
1546
+ page: import_zod37.default.coerce.number().default(1),
1547
+ pageSize: import_zod37.default.coerce.number().default(10)
1548
+ }).optional(),
1549
+ headers: DefaultHeaderSchema,
1550
+ responses: {
1551
+ 200: withPagination(WidgetSchema),
1552
+ 500: DefaultErrorResponseSchema,
1553
+ 400: import_zod37.default.object({
1554
+ message: import_zod37.default.string()
1555
+ }),
1556
+ 401: DefaultUnauthorizedSchema
1557
+ },
1558
+ summary: "Get all widgets"
1559
+ },
1560
+ getMenuWidgets: {
1561
+ method: "GET",
1562
+ path: "/menu",
1563
+ headers: DefaultHeaderSchema,
1564
+ responses: {
1565
+ 200: import_zod37.default.array(WidgetSchema),
1566
+ 400: import_zod37.default.object({
1567
+ message: import_zod37.default.string()
1568
+ }),
1569
+ 401: DefaultUnauthorizedSchema,
1570
+ 500: DefaultErrorResponseSchema
1571
+ },
1572
+ summary: "Get menu widgets"
1573
+ },
1574
+ getTicketWidgets: {
1575
+ method: "GET",
1576
+ path: "/menu",
1577
+ headers: DefaultHeaderSchema,
1578
+ responses: {
1579
+ 200: import_zod37.default.array(WidgetSchema),
1580
+ 400: import_zod37.default.object({
1581
+ message: import_zod37.default.string()
1582
+ }),
1583
+ 401: DefaultUnauthorizedSchema,
1584
+ 500: DefaultErrorResponseSchema
1585
+ },
1586
+ summary: "Get ticket widgets"
1587
+ },
1588
+ getContactWidgets: {
1589
+ method: "GET",
1590
+ path: "/menu",
1591
+ headers: DefaultHeaderSchema,
1592
+ responses: {
1593
+ 200: import_zod37.default.array(WidgetSchema),
1594
+ 400: import_zod37.default.object({
1595
+ message: import_zod37.default.string()
1596
+ }),
1597
+ 401: DefaultUnauthorizedSchema,
1598
+ 500: DefaultErrorResponseSchema
1599
+ },
1600
+ summary: "Get contact widgets"
1601
+ },
1602
+ getWidgetById: {
1603
+ method: "GET",
1604
+ path: "/:id",
1605
+ pathParams: import_zod37.default.object({ id: import_zod37.default.string() }),
1606
+ headers: DefaultHeaderSchema,
1607
+ responses: {
1608
+ 200: import_zod37.default.array(WidgetSchema),
1609
+ 400: import_zod37.default.object({
1610
+ message: import_zod37.default.string()
1611
+ }),
1612
+ 401: DefaultUnauthorizedSchema,
1613
+ 500: DefaultErrorResponseSchema
1614
+ },
1615
+ summary: "Get widget by id"
1616
+ },
1617
+ getWidgetUrl: {
1618
+ method: "GET",
1619
+ path: "/url_token/generate",
1620
+ pathParams: import_zod37.default.object({
1621
+ widgetId: import_zod37.default.string(),
1622
+ // Position ID is ticket ID, contact ID, etc.
1623
+ // TODO: The name "Position ID" is confusing. Think of a better name.
1624
+ positionId: import_zod37.default.string()
1625
+ }),
1626
+ headers: DefaultHeaderSchema,
1627
+ responses: {
1628
+ 201: DefaultSuccessResponseSchema.extend({
1629
+ widget: import_zod37.default.object({
1630
+ url: import_zod37.default.string()
1631
+ })
1632
+ }),
1633
+ 400: import_zod37.default.object({
1634
+ message: import_zod37.default.string()
1635
+ }),
1636
+ 401: DefaultUnauthorizedSchema
1637
+ },
1638
+ summary: "Generate url token for widget."
1639
+ },
1640
+ updateWidget: {
1641
+ method: "PATCH",
1642
+ path: "/:id",
1643
+ pathParams: import_zod37.default.object({ id: import_zod37.default.string() }),
1644
+ headers: DefaultHeaderSchema,
1645
+ responses: {
1646
+ 201: DefaultSuccessResponseSchema.extend({
1647
+ widget: WidgetSchema
1648
+ }),
1649
+ 400: import_zod37.default.object({
1650
+ message: import_zod37.default.string()
1651
+ }),
1652
+ 401: DefaultUnauthorizedSchema
1653
+ },
1654
+ body: UpdateWidgetSchema,
1655
+ summary: "Update a widget."
1656
+ },
1657
+ deleteWidget: {
1658
+ method: "DELETE",
1659
+ path: "/:id",
1660
+ pathParams: import_zod37.default.object({ id: import_zod37.default.string() }),
1661
+ headers: DefaultHeaderSchema,
1662
+ body: import_zod37.default.null().optional(),
1663
+ responses: { 200: import_zod37.default.string() },
1664
+ summary: "Delete a widget."
835
1665
  }
836
1666
  },
1667
+ { pathPrefix: "widget" }
1668
+ );
1669
+
1670
+ // src/telephony-extension/index.ts
1671
+ var import_core18 = require("@ts-rest/core");
1672
+ var import_zod39 = __toESM(require("zod"));
1673
+
1674
+ // src/telephony-extension/schema.ts
1675
+ var import_zod38 = __toESM(require("zod"));
1676
+ var TelephonyExtensionSchema = import_zod38.default.object({
1677
+ errcode: import_zod38.default.coerce.number(),
1678
+ errmsg: import_zod38.default.string(),
1679
+ total_number: import_zod38.default.coerce.number(),
1680
+ data: import_zod38.default.array(import_zod38.default.object({}))
1681
+ });
1682
+
1683
+ // src/telephony-extension/index.ts
1684
+ var telephonyExtensionContract = (0, import_core18.initContract)().router(
837
1685
  {
838
- pathPrefix: "categories"
839
- }
1686
+ getTelephonyExtensions: {
1687
+ method: "GET",
1688
+ path: "/extension_list",
1689
+ headers: DefaultHeaderSchema,
1690
+ query: null,
1691
+ responses: {
1692
+ 200: TelephonyExtensionSchema,
1693
+ 400: import_zod39.default.object({
1694
+ message: import_zod39.default.string()
1695
+ }),
1696
+ 401: DefaultUnauthorizedSchema,
1697
+ 500: DefaultErrorResponseSchema
1698
+ },
1699
+ summary: "Get all extension list by yeastar"
1700
+ }
1701
+ },
1702
+ { pathPrefix: "telephony" }
840
1703
  );
841
1704
 
842
1705
  // src/contract.ts
843
- var apiContract = (0, import_core10.initContract)().router({
1706
+ var apiContract = (0, import_core19.initContract)().router({
844
1707
  auth: authContract,
845
1708
  mail: mailContract,
846
1709
  cxLog: cxLogContract,
1710
+ permission: permissionContract,
1711
+ role: roleContract,
1712
+ user: userContract,
1713
+ extension: extensionContract,
1714
+ widget: widgetContract,
847
1715
  emailEngineWebhooks: emailEngineWebhooksEventsContract,
848
- category: categoryContract
1716
+ category: categoryContract,
1717
+ telephonyExtensionContract,
1718
+ line: lineContract,
1719
+ attribute: attributeContract,
1720
+ tag: tagContract
849
1721
  });
850
1722
  // Annotate the CommonJS export names for ESM import in node:
851
1723
  0 && (module.exports = {
852
1724
  apiContract,
853
- categoryContract
1725
+ attributeContract,
1726
+ categoryContract,
1727
+ tagContract
854
1728
  });
855
1729
  //# sourceMappingURL=index.js.map