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