@kl1/contracts 1.0.15 → 1.0.16

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.
package/dist/index.js CHANGED
@@ -696,7 +696,7 @@ var channelContract = (0, import_core5.initContract)().router(
696
696
 
697
697
  // src/chat/index.ts
698
698
  var import_core6 = require("@ts-rest/core");
699
- var import_zod24 = __toESM(require("zod"));
699
+ var import_zod25 = __toESM(require("zod"));
700
700
 
701
701
  // src/contact/schema.ts
702
702
  var import_zod20 = __toESM(require("zod"));
@@ -809,18 +809,38 @@ var ContactSchema = import_zod20.default.object({
809
809
  });
810
810
 
811
811
  // src/chat/schema.ts
812
+ var import_zod22 = __toESM(require("zod"));
813
+
814
+ // src/cx-log/schema.ts
812
815
  var import_zod21 = __toESM(require("zod"));
813
- var MessageDirectionTypeSchema = import_zod21.default.enum([
816
+ var CxLogSchema = DefaultEntitySchema.extend({
817
+ caseId: import_zod21.default.number(),
818
+ entityId: import_zod21.default.string().uuid(),
819
+ entityName: import_zod21.default.string(),
820
+ contactId: import_zod21.default.string().uuid().nullable(),
821
+ channel: import_zod21.default.string().nullable(),
822
+ queueId: import_zod21.default.string().uuid().nullable(),
823
+ agentId: import_zod21.default.string().uuid().nullable(),
824
+ direction: import_zod21.default.string().nullable(),
825
+ startedDate: import_zod21.default.date().nullable(),
826
+ handledTime: import_zod21.default.number().nullable(),
827
+ firstResponseTime: import_zod21.default.number().nullable(),
828
+ disposition: import_zod21.default.string().nullable()
829
+ });
830
+
831
+ // src/chat/schema.ts
832
+ var MessageDirectionTypeSchema = import_zod22.default.enum([
814
833
  "incoming",
815
834
  "outgoing",
816
835
  "system"
817
836
  ]);
818
- var MessageTypeSchema = import_zod21.default.enum([
837
+ var MessageTypeSchema = import_zod22.default.enum([
819
838
  "text",
820
839
  "image",
821
840
  "video",
822
841
  "audio",
823
842
  "file",
843
+ "imagemap",
824
844
  "fallback",
825
845
  "location",
826
846
  "attachment",
@@ -834,136 +854,138 @@ var MessageTypeSchema = import_zod21.default.enum([
834
854
  "updated",
835
855
  "started"
836
856
  ]);
837
- var MessageLocaleTypeSchema = import_zod21.default.enum([
838
- "mm",
839
- "en",
840
- "th"
841
- ]);
842
- var PlatformContactMetadataSchema = import_zod21.default.object({
843
- id: import_zod21.default.string(),
844
- name: import_zod21.default.string(),
845
- picture: import_zod21.default.string(),
846
- additionalCredentials: import_zod21.default.any()
857
+ var MessageLocaleTypeSchema = import_zod22.default.enum(["mm", "en", "th"]);
858
+ var PlatformContactMetadataSchema = import_zod22.default.object({
859
+ id: import_zod22.default.string(),
860
+ name: import_zod22.default.string(),
861
+ picture: import_zod22.default.string(),
862
+ additionalCredentials: import_zod22.default.any()
847
863
  });
848
864
  var PlatformContactSchema = DefaultEntitySchema.extend({
849
- channelId: import_zod21.default.string().uuid(),
850
- socialPlatformId: import_zod21.default.string().uuid(),
851
- platform: ChannelTypeSchema,
865
+ channelId: import_zod22.default.string().uuid(),
866
+ socialPlatformId: import_zod22.default.string().uuid(),
867
+ type: ChannelTypeSchema,
852
868
  metadata: PlatformContactMetadataSchema,
853
869
  contact: ContactSchema
854
870
  });
855
871
  var RoomSchema = DefaultEntitySchema.extend({
856
- lastMessage: import_zod21.default.string(),
857
- handleTime: import_zod21.default.number(),
858
- isSolved: import_zod21.default.boolean(),
859
- closeAt: import_zod21.default.date(),
860
- unreadCount: import_zod21.default.number(),
861
- firstResponseTime: import_zod21.default.date(),
862
- isLatest: import_zod21.default.boolean(),
872
+ lastMessage: import_zod22.default.string(),
873
+ handleTime: import_zod22.default.number(),
874
+ closeAt: import_zod22.default.date(),
875
+ unreadCount: import_zod22.default.number(),
876
+ firstResponseAt: import_zod22.default.date(),
877
+ firstResponseTime: import_zod22.default.number(),
878
+ isLatest: import_zod22.default.boolean(),
863
879
  direction: MessageDirectionTypeSchema,
864
880
  platformContact: PlatformContactSchema,
865
881
  actor: UserSchema,
866
882
  assignee: UserSchema,
867
- channel: ChannelSchema
883
+ channel: ChannelSchema,
884
+ cxLog: CxLogSchema
868
885
  });
869
886
  var MessageSchema = DefaultEntitySchema.extend({
870
- message: import_zod21.default.string(),
887
+ message: import_zod22.default.string(),
871
888
  direction: MessageDirectionTypeSchema,
872
889
  type: MessageTypeSchema,
873
- readAt: import_zod21.default.date(),
874
- metadata: import_zod21.default.any(),
875
- platformId: import_zod21.default.string(),
876
- platformMessageId: import_zod21.default.string(),
877
- replyPlatformMessageId: import_zod21.default.string(),
878
- template: import_zod21.default.any(),
890
+ readAt: import_zod22.default.date(),
891
+ metadata: import_zod22.default.any(),
892
+ platformId: import_zod22.default.string(),
893
+ platformMessageId: import_zod22.default.string(),
894
+ replyPlatformMessageId: import_zod22.default.string(),
895
+ template: import_zod22.default.any(),
879
896
  locale: MessageLocaleTypeSchema,
880
- isSent: import_zod21.default.boolean(),
897
+ url: import_zod22.default.string(),
898
+ previewUrl: import_zod22.default.string(),
899
+ imageSetId: import_zod22.default.string(),
881
900
  room: RoomSchema,
882
901
  upload: UploadSchema,
883
902
  actor: UserSchema,
884
903
  assignee: UserSchema,
885
904
  sender: UserSchema
886
905
  });
887
- var UnreadCountsByAssigneeSchema = import_zod21.default.object({
888
- assigneeId: import_zod21.default.string(),
889
- totalUnreadCount: import_zod21.default.number()
906
+ var UnreadCountsByAssigneeSchema = import_zod22.default.object({
907
+ assigneeId: import_zod22.default.string(),
908
+ totalUnreadCount: import_zod22.default.number()
890
909
  });
891
910
 
892
911
  // src/chat/validation.ts
893
- var import_zod23 = __toESM(require("zod"));
912
+ var import_zod24 = __toESM(require("zod"));
894
913
 
895
914
  // src/custom-field/schema.ts
896
- var import_zod22 = __toESM(require("zod"));
915
+ var import_zod23 = __toESM(require("zod"));
897
916
  var CustomFieldSchema = DefaultEntitySchema.extend({
898
- textValue: import_zod22.default.string().nullable(),
899
- booleanValue: import_zod22.default.boolean().nullable(),
900
- numberValue: import_zod22.default.number().nullable(),
901
- dateValue: import_zod22.default.date().nullable(),
902
- entityId: import_zod22.default.string().uuid(),
903
- attributeId: import_zod22.default.string().uuid()
917
+ textValue: import_zod23.default.string().nullable(),
918
+ booleanValue: import_zod23.default.boolean().nullable(),
919
+ numberValue: import_zod23.default.number().nullable(),
920
+ dateValue: import_zod23.default.date().nullable(),
921
+ entityId: import_zod23.default.string().uuid(),
922
+ attributeId: import_zod23.default.string().uuid()
904
923
  });
905
924
 
906
925
  // src/chat/validation.ts
907
- var GetRoomsSchema = import_zod23.default.object({
908
- page: import_zod23.default.coerce.number().positive().default(1),
909
- pageSize: import_zod23.default.coerce.number().positive().default(20),
910
- contactTagIds: import_zod23.default.string().array().optional(),
911
- contactIds: import_zod23.default.string().array().optional(),
912
- agentIds: import_zod23.default.string().array().optional(),
913
- roomTagIds: import_zod23.default.string().array().optional(),
914
- keyword: import_zod23.default.string().optional(),
915
- company: import_zod23.default.string().array().optional(),
916
- channel: import_zod23.default.string().array().optional(),
917
- name: import_zod23.default.string().optional(),
918
- address: import_zod23.default.string().optional(),
919
- contactGroups: import_zod23.default.string().array().optional(),
920
- selectedDate: import_zod23.default.string().optional(),
921
- customFields: import_zod23.default.array(CustomFieldSchema).optional(),
922
- tags: import_zod23.default.string().array().optional(),
923
- phone: import_zod23.default.string().optional(),
924
- email: import_zod23.default.string().optional(),
925
- notes: import_zod23.default.string().optional(),
926
- tab: import_zod23.default.string().optional()
927
- });
928
- var UpdateRoomTagsAndNotesSchema = import_zod23.default.object({
929
- notes: import_zod23.default.string().optional(),
930
- tags: import_zod23.default.string().array().optional()
926
+ var GetRoomsSchema = import_zod24.default.object({
927
+ page: import_zod24.default.coerce.number().positive().default(1),
928
+ pageSize: import_zod24.default.coerce.number().positive().default(20),
929
+ contactTagIds: import_zod24.default.string().array().optional(),
930
+ contactIds: import_zod24.default.string().array().optional(),
931
+ agentIds: import_zod24.default.string().array().optional(),
932
+ roomTagIds: import_zod24.default.string().array().optional(),
933
+ keyword: import_zod24.default.string().optional(),
934
+ company: import_zod24.default.string().array().optional(),
935
+ channel: import_zod24.default.string().array().optional(),
936
+ name: import_zod24.default.string().optional(),
937
+ address: import_zod24.default.string().optional(),
938
+ contactGroups: import_zod24.default.string().array().optional(),
939
+ selectedDate: import_zod24.default.string().optional(),
940
+ customFields: import_zod24.default.array(CustomFieldSchema).optional(),
941
+ tags: import_zod24.default.string().array().optional(),
942
+ phone: import_zod24.default.string().optional(),
943
+ email: import_zod24.default.string().optional(),
944
+ notes: import_zod24.default.string().optional(),
945
+ tab: import_zod24.default.string().optional()
946
+ });
947
+ var UpdateRoomTagsAndNotesSchema = import_zod24.default.object({
948
+ note: import_zod24.default.string().optional(),
949
+ tags: TagSchema.array().optional()
931
950
  });
932
951
  var UpdateRoomAttributesSchema = UpdateRoomTagsAndNotesSchema.extend({
933
- roomId: import_zod23.default.string().uuid()
934
- });
935
- var MessageAttachmentSchema = import_zod23.default.object({
936
- bucketName: import_zod23.default.string(),
937
- fileKey: import_zod23.default.string(),
938
- fileName: import_zod23.default.string(),
939
- fileSize: import_zod23.default.number(),
940
- url: import_zod23.default.string(),
952
+ roomId: import_zod24.default.string().uuid()
953
+ });
954
+ var MessageAttachmentSchema = import_zod24.default.object({
955
+ bucketName: import_zod24.default.string(),
956
+ fileKey: import_zod24.default.string(),
957
+ fileName: import_zod24.default.string(),
958
+ fileSize: import_zod24.default.number(),
959
+ url: import_zod24.default.string(),
941
960
  fileType: MessageTypeSchema,
942
- thumbnailUrl: import_zod23.default.string().optional()
961
+ thumbnailUrl: import_zod24.default.string().optional()
943
962
  });
944
- var SendMessageSchema = import_zod23.default.object({
945
- roomId: import_zod23.default.string().uuid(),
963
+ var SendMessageSchema = import_zod24.default.object({
964
+ roomId: import_zod24.default.string().uuid(),
946
965
  messageType: MessageTypeSchema,
947
- message: import_zod23.default.string().optional(),
966
+ message: import_zod24.default.string().optional(),
948
967
  direction: MessageDirectionTypeSchema,
949
968
  messageAttachments: MessageAttachmentSchema.optional(),
950
- user: UserSchema.optional(),
951
- packageId: import_zod23.default.number().optional(),
952
- stickerId: import_zod23.default.number().optional()
969
+ user: UserSchema,
970
+ packageId: import_zod24.default.number().optional(),
971
+ stickerId: import_zod24.default.number().optional()
953
972
  });
954
- var SolveRoomSchema = import_zod23.default.object({
955
- roomId: import_zod23.default.string()
973
+ var SolveRoomSchema = import_zod24.default.object({
974
+ roomId: import_zod24.default.string()
956
975
  });
957
976
  var UpdateAssigneeSchema = SolveRoomSchema.extend({
958
- assigneeId: import_zod23.default.string().uuid()
977
+ assigneeId: import_zod24.default.string().uuid()
959
978
  });
960
979
  var SearchRoomsSchema = DefaultQueryParamsSchema.extend({
961
- query: import_zod23.default.string()
980
+ query: import_zod24.default.string()
962
981
  });
963
- var SendMessageToPlatformSchema = import_zod23.default.object({
982
+ var SendMessageToPlatformSchema = import_zod24.default.object({
964
983
  room: RoomSchema,
965
984
  message: MessageSchema,
966
- url: import_zod23.default.string().optional()
985
+ url: import_zod24.default.string().optional()
986
+ });
987
+ var SendMessageResponseSchema = DefaultSuccessResponseSchema.extend({
988
+ data: MessageSchema
967
989
  });
968
990
 
969
991
  // src/chat/index.ts
@@ -974,11 +996,11 @@ var mainChatContract = (0, import_core6.initContract)().router(
974
996
  path: "/rooms",
975
997
  responses: {
976
998
  200: DefaultSuccessResponseSchema.extend({
977
- total: import_zod24.default.number(),
978
- page: import_zod24.default.number(),
979
- pageSize: import_zod24.default.number(),
980
- data: import_zod24.default.array(RoomSchema),
981
- unreadCountsByAssignee: import_zod24.default.array(UnreadCountsByAssigneeSchema)
999
+ total: import_zod25.default.number(),
1000
+ page: import_zod25.default.number(),
1001
+ pageSize: import_zod25.default.number(),
1002
+ data: import_zod25.default.array(RoomSchema),
1003
+ unreadCountsByAssignee: import_zod25.default.array(UnreadCountsByAssigneeSchema)
982
1004
  }),
983
1005
  401: DefaultUnauthorizedSchema
984
1006
  },
@@ -988,8 +1010,8 @@ var mainChatContract = (0, import_core6.initContract)().router(
988
1010
  getRoomContact: {
989
1011
  method: "GET",
990
1012
  path: "/contact/:contactId",
991
- pathParams: import_zod24.default.object({
992
- contactId: import_zod24.default.string().uuid()
1013
+ pathParams: import_zod25.default.object({
1014
+ contactId: import_zod25.default.string().uuid()
993
1015
  }),
994
1016
  responses: {
995
1017
  200: DefaultSuccessResponseSchema.extend({
@@ -1009,17 +1031,6 @@ var mainChatContract = (0, import_core6.initContract)().router(
1009
1031
  },
1010
1032
  summary: "Update room attributes"
1011
1033
  },
1012
- updateRoomTagsAndNotes: {
1013
- method: "PATCH",
1014
- path: "/room/:roomId",
1015
- body: UpdateRoomAttributesSchema,
1016
- responses: {
1017
- 200: DefaultSuccessResponseSchema.extend({
1018
- data: RoomSchema
1019
- })
1020
- },
1021
- summary: "Update room tags and notes"
1022
- },
1023
1034
  sendMessage: {
1024
1035
  method: "POST",
1025
1036
  path: "/message",
@@ -1032,14 +1043,18 @@ var mainChatContract = (0, import_core6.initContract)().router(
1032
1043
  getMessages: {
1033
1044
  method: "GET",
1034
1045
  path: "/message/:roomId",
1035
- pathParams: import_zod24.default.object({
1036
- roomId: import_zod24.default.string().uuid()
1046
+ pathParams: import_zod25.default.object({
1047
+ roomId: import_zod25.default.string().uuid()
1037
1048
  }),
1038
1049
  responses: {
1039
1050
  200: DefaultSuccessResponseSchema.extend({
1040
- data: import_zod24.default.array(MessageSchema)
1051
+ total: import_zod25.default.number(),
1052
+ page: import_zod25.default.number(),
1053
+ pageSize: import_zod25.default.number(),
1054
+ data: import_zod25.default.array(MessageSchema)
1041
1055
  })
1042
1056
  },
1057
+ query: DefaultQueryParamsSchema,
1043
1058
  summary: "Get messages"
1044
1059
  },
1045
1060
  solveRoom: {
@@ -1049,7 +1064,7 @@ var mainChatContract = (0, import_core6.initContract)().router(
1049
1064
  responses: {
1050
1065
  200: DefaultSuccessResponseSchema.extend({
1051
1066
  data: RoomSchema.extend({
1052
- solveMessage: import_zod24.default.string()
1067
+ solveMessage: import_zod25.default.string()
1053
1068
  })
1054
1069
  }),
1055
1070
  409: DefaultErrorResponseSchema
@@ -1070,8 +1085,8 @@ var mainChatContract = (0, import_core6.initContract)().router(
1070
1085
  getRoom: {
1071
1086
  method: "GET",
1072
1087
  path: "/room/:roomId",
1073
- pathParams: import_zod24.default.object({
1074
- roomId: import_zod24.default.string().uuid()
1088
+ pathParams: import_zod25.default.object({
1089
+ roomId: import_zod25.default.string().uuid()
1075
1090
  }),
1076
1091
  responses: {
1077
1092
  200: DefaultSuccessResponseSchema.extend({
@@ -1083,15 +1098,15 @@ var mainChatContract = (0, import_core6.initContract)().router(
1083
1098
  },
1084
1099
  createRoom: {
1085
1100
  method: "POST",
1086
- path: "/room/create/:roomid",
1087
- pathParams: import_zod24.default.object({
1088
- roomId: import_zod24.default.string().uuid()
1101
+ path: "/room/create/:platformContactId",
1102
+ pathParams: import_zod25.default.object({
1103
+ platformContactId: import_zod25.default.string().uuid()
1089
1104
  }),
1090
1105
  responses: {
1091
1106
  200: DefaultSuccessResponseSchema.extend({
1092
1107
  data: RoomSchema.extend({
1093
1108
  contact: ContactSchema,
1094
- openMessage: import_zod24.default.string()
1109
+ openMessage: import_zod25.default.string()
1095
1110
  })
1096
1111
  })
1097
1112
  },
@@ -1101,13 +1116,13 @@ var mainChatContract = (0, import_core6.initContract)().router(
1101
1116
  readRoom: {
1102
1117
  method: "POST",
1103
1118
  path: "/room/:roomid/read",
1104
- pathParams: import_zod24.default.object({
1105
- roomId: import_zod24.default.string().uuid()
1119
+ pathParams: import_zod25.default.object({
1120
+ roomId: import_zod25.default.string().uuid()
1106
1121
  }),
1107
1122
  responses: {
1108
1123
  200: DefaultSuccessResponseSchema.extend({
1109
1124
  data: RoomSchema.extend({
1110
- description: import_zod24.default.string().nullable()
1125
+ description: import_zod25.default.string().nullable()
1111
1126
  })
1112
1127
  })
1113
1128
  },
@@ -1119,10 +1134,10 @@ var mainChatContract = (0, import_core6.initContract)().router(
1119
1134
  path: "/search",
1120
1135
  responses: {
1121
1136
  200: DefaultSuccessResponseSchema.extend({
1122
- total: import_zod24.default.number(),
1123
- page: import_zod24.default.number(),
1124
- pageSize: import_zod24.default.number(),
1125
- data: import_zod24.default.array(RoomSchema)
1137
+ total: import_zod25.default.number(),
1138
+ page: import_zod25.default.number(),
1139
+ pageSize: import_zod25.default.number(),
1140
+ data: import_zod25.default.array(RoomSchema)
1126
1141
  })
1127
1142
  },
1128
1143
  query: SearchRoomsSchema,
@@ -1137,98 +1152,112 @@ var mainChatContract = (0, import_core6.initContract)().router(
1137
1152
 
1138
1153
  // src/contact/index.ts
1139
1154
  var import_core7 = require("@ts-rest/core");
1140
- var import_zod26 = __toESM(require("zod"));
1155
+ var import_zod27 = __toESM(require("zod"));
1141
1156
 
1142
1157
  // src/contact/validation.ts
1143
- var import_zod25 = __toESM(require("zod"));
1144
- var BaseSchema = import_zod25.default.object({
1145
- isRequired: import_zod25.default.boolean(),
1146
- attributeId: import_zod25.default.string()
1158
+ var import_zod26 = __toESM(require("zod"));
1159
+ var BaseSchema = import_zod26.default.object({
1160
+ isRequired: import_zod26.default.boolean(),
1161
+ attributeId: import_zod26.default.string()
1147
1162
  });
1148
1163
  var SingleValue = {
1149
- value: import_zod25.default.string()
1164
+ value: import_zod26.default.string()
1150
1165
  };
1151
1166
  var ContactContractValidationSchema = {
1152
1167
  create: {
1153
- request: import_zod25.default.object({
1168
+ request: import_zod26.default.object({
1154
1169
  name: BaseSchema.extend(SingleValue),
1155
1170
  email: BaseSchema.extend({
1156
- value: import_zod25.default.array(
1157
- import_zod25.default.object({
1158
- email: import_zod25.default.string(),
1159
- isPrimary: import_zod25.default.boolean()
1171
+ value: import_zod26.default.array(
1172
+ import_zod26.default.object({
1173
+ email: import_zod26.default.string(),
1174
+ isPrimary: import_zod26.default.boolean()
1160
1175
  })
1161
1176
  )
1162
1177
  }),
1163
1178
  channel: BaseSchema.extend(SingleValue),
1164
1179
  address: BaseSchema.extend(SingleValue),
1165
1180
  phone: BaseSchema.extend({
1166
- value: import_zod25.default.array(
1167
- import_zod25.default.object({
1168
- phone: import_zod25.default.string(),
1169
- isPrimary: import_zod25.default.boolean()
1181
+ value: import_zod26.default.array(
1182
+ import_zod26.default.object({
1183
+ phone: import_zod26.default.string(),
1184
+ isPrimary: import_zod26.default.boolean()
1170
1185
  })
1171
1186
  )
1172
1187
  }).optional(),
1173
1188
  notes: BaseSchema.extend(SingleValue),
1174
1189
  tags: BaseSchema.extend({
1175
- value: import_zod25.default.array(import_zod25.default.string())
1190
+ value: import_zod26.default.array(import_zod26.default.string())
1176
1191
  }),
1177
1192
  company: BaseSchema.extend(SingleValue),
1178
- customFields: import_zod25.default.array(
1193
+ customFields: import_zod26.default.array(
1179
1194
  BaseSchema.extend({
1180
- value: import_zod25.default.union([import_zod25.default.string(), import_zod25.default.array(import_zod25.default.string())]),
1181
- type: import_zod25.default.string(),
1182
- isDefaultAttribute: import_zod25.default.boolean()
1195
+ value: import_zod26.default.union([import_zod26.default.string(), import_zod26.default.array(import_zod26.default.string())]),
1196
+ type: import_zod26.default.string(),
1197
+ isDefaultAttribute: import_zod26.default.boolean()
1183
1198
  })
1184
1199
  )
1185
1200
  }),
1186
- response: import_zod25.default.string()
1201
+ response: import_zod26.default.string()
1187
1202
  },
1188
1203
  getById: {
1189
- request: import_zod25.default.object({
1190
- id: import_zod25.default.string().uuid()
1204
+ request: import_zod26.default.object({
1205
+ id: import_zod26.default.string().uuid()
1191
1206
  }),
1192
1207
  response: ContactSchema
1193
1208
  },
1194
1209
  delete: {
1195
- request: import_zod25.default.object({
1196
- id: import_zod25.default.string().uuid()
1210
+ request: import_zod26.default.object({
1211
+ id: import_zod26.default.string().uuid()
1197
1212
  }),
1198
- response: import_zod25.default.string()
1213
+ response: import_zod26.default.string()
1199
1214
  },
1200
1215
  getAll: {
1201
- request: import_zod25.default.object({
1202
- page: import_zod25.default.coerce.number().default(1),
1203
- pageSize: import_zod25.default.coerce.number().default(10),
1204
- keyword: import_zod25.default.string().optional(),
1205
- company: import_zod25.default.array(import_zod25.default.string().uuid()),
1206
- name: import_zod25.default.string(),
1207
- address: import_zod25.default.string(),
1208
- channel: import_zod25.default.array(import_zod25.default.string()),
1209
- selectedDate: import_zod25.default.string(),
1210
- customFields: import_zod25.default.array(
1211
- import_zod25.default.object({
1212
- attributeId: import_zod25.default.string().uuid(),
1213
- type: import_zod25.default.string(),
1214
- value: import_zod25.default.union([import_zod25.default.string(), import_zod25.default.array(import_zod25.default.string())])
1216
+ request: import_zod26.default.object({
1217
+ page: import_zod26.default.coerce.number().default(1),
1218
+ pageSize: import_zod26.default.coerce.number().default(10),
1219
+ keyword: import_zod26.default.string().optional(),
1220
+ company: import_zod26.default.array(import_zod26.default.string().uuid()),
1221
+ name: import_zod26.default.string(),
1222
+ address: import_zod26.default.string(),
1223
+ channel: import_zod26.default.array(import_zod26.default.string()),
1224
+ selectedDate: import_zod26.default.string(),
1225
+ customFields: import_zod26.default.array(
1226
+ import_zod26.default.object({
1227
+ attributeId: import_zod26.default.string().uuid(),
1228
+ type: import_zod26.default.string(),
1229
+ value: import_zod26.default.union([import_zod26.default.string(), import_zod26.default.array(import_zod26.default.string())])
1215
1230
  })
1216
1231
  ),
1217
- tags: import_zod25.default.array(import_zod25.default.string().uuid()),
1218
- phone: import_zod25.default.string(),
1219
- email: import_zod25.default.string(),
1220
- notes: import_zod25.default.string()
1232
+ tags: import_zod26.default.array(import_zod26.default.string().uuid()),
1233
+ phone: import_zod26.default.string(),
1234
+ email: import_zod26.default.string(),
1235
+ notes: import_zod26.default.string()
1221
1236
  }).partial(),
1222
1237
  response: {
1223
- page: import_zod25.default.number(),
1224
- pageSize: import_zod25.default.number(),
1225
- total: import_zod25.default.number(),
1226
- data: import_zod25.default.array(ContactSchema)
1238
+ page: import_zod26.default.number(),
1239
+ pageSize: import_zod26.default.number(),
1240
+ total: import_zod26.default.number(),
1241
+ data: import_zod26.default.array(ContactSchema)
1227
1242
  }
1228
1243
  },
1229
1244
  createContactByPhone: {
1230
- request: import_zod25.default.object({
1231
- phoneNumber: import_zod25.default.string().refine(
1245
+ request: import_zod26.default.object({
1246
+ phoneNumber: import_zod26.default.string().refine(
1247
+ (value) => {
1248
+ const numericValue = value.replace(/\s/g, "");
1249
+ return /^\d+$/.test(numericValue);
1250
+ },
1251
+ {
1252
+ message: "Phone number must contain only numeric characters"
1253
+ }
1254
+ )
1255
+ }),
1256
+ response: ContactSchema
1257
+ },
1258
+ updateContactByPhone: {
1259
+ request: import_zod26.default.object({
1260
+ phoneNumber: import_zod26.default.string().refine(
1232
1261
  (value) => {
1233
1262
  const numericValue = value.replace(/\s/g, "");
1234
1263
  return /^\d+$/.test(numericValue);
@@ -1239,6 +1268,46 @@ var ContactContractValidationSchema = {
1239
1268
  )
1240
1269
  }),
1241
1270
  response: ContactSchema
1271
+ },
1272
+ updateFromOngoingCall: {
1273
+ request: import_zod26.default.object({
1274
+ name: import_zod26.default.string(),
1275
+ companyId: import_zod26.default.string().uuid()
1276
+ }).partial(),
1277
+ response: ContactSchema
1278
+ },
1279
+ merge: {
1280
+ request: import_zod26.default.object({
1281
+ primaryContactId: import_zod26.default.string().uuid(),
1282
+ emails: import_zod26.default.array(
1283
+ import_zod26.default.object({
1284
+ email: import_zod26.default.string(),
1285
+ isPrimary: import_zod26.default.boolean()
1286
+ })
1287
+ ),
1288
+ phones: import_zod26.default.array(
1289
+ import_zod26.default.object({
1290
+ phone: import_zod26.default.string(),
1291
+ isPrimary: import_zod26.default.boolean()
1292
+ })
1293
+ ),
1294
+ otherContacts: import_zod26.default.array(import_zod26.default.string().uuid())
1295
+ }),
1296
+ response: ContactSchema
1297
+ },
1298
+ checkContactPhone: {
1299
+ request: import_zod26.default.object({
1300
+ contactId: import_zod26.default.string().uuid().optional(),
1301
+ phoneNumber: import_zod26.default.string()
1302
+ }),
1303
+ response: import_zod26.default.boolean()
1304
+ },
1305
+ checkContactEmail: {
1306
+ request: import_zod26.default.object({
1307
+ contactId: import_zod26.default.string().uuid().optional(),
1308
+ email: import_zod26.default.string()
1309
+ }),
1310
+ response: import_zod26.default.boolean()
1242
1311
  }
1243
1312
  };
1244
1313
 
@@ -1252,14 +1321,14 @@ var contactContract = (0, import_core7.initContract)().router(
1252
1321
  201: DefaultSuccessResponseSchema.extend({
1253
1322
  message: ContactContractValidationSchema.create.response
1254
1323
  }),
1255
- 400: import_zod26.default.object({
1256
- message: import_zod26.default.string()
1324
+ 400: import_zod27.default.object({
1325
+ message: import_zod27.default.string()
1257
1326
  }),
1258
- 409: import_zod26.default.object({
1259
- message: import_zod26.default.string()
1327
+ 409: import_zod27.default.object({
1328
+ message: import_zod27.default.string()
1260
1329
  }),
1261
- 500: import_zod26.default.object({
1262
- message: import_zod26.default.string()
1330
+ 500: import_zod27.default.object({
1331
+ message: import_zod27.default.string()
1263
1332
  }),
1264
1333
  401: DefaultUnauthorizedSchema,
1265
1334
  404: DefaultNotFoundSchema,
@@ -1276,14 +1345,14 @@ var contactContract = (0, import_core7.initContract)().router(
1276
1345
  200: DefaultSuccessResponseSchema.extend({
1277
1346
  data: ContactContractValidationSchema.getById.response
1278
1347
  }),
1279
- 400: import_zod26.default.object({
1280
- message: import_zod26.default.string()
1348
+ 400: import_zod27.default.object({
1349
+ message: import_zod27.default.string()
1281
1350
  }),
1282
- 409: import_zod26.default.object({
1283
- message: import_zod26.default.string()
1351
+ 409: import_zod27.default.object({
1352
+ message: import_zod27.default.string()
1284
1353
  }),
1285
- 500: import_zod26.default.object({
1286
- message: import_zod26.default.string()
1354
+ 500: import_zod27.default.object({
1355
+ message: import_zod27.default.string()
1287
1356
  }),
1288
1357
  401: DefaultUnauthorizedSchema,
1289
1358
  404: DefaultNotFoundSchema,
@@ -1299,14 +1368,14 @@ var contactContract = (0, import_core7.initContract)().router(
1299
1368
  200: DefaultSuccessResponseSchema.extend(
1300
1369
  ContactContractValidationSchema.getAll.response
1301
1370
  ),
1302
- 400: import_zod26.default.object({
1303
- message: import_zod26.default.string()
1371
+ 400: import_zod27.default.object({
1372
+ message: import_zod27.default.string()
1304
1373
  }),
1305
- 409: import_zod26.default.object({
1306
- message: import_zod26.default.string()
1374
+ 409: import_zod27.default.object({
1375
+ message: import_zod27.default.string()
1307
1376
  }),
1308
- 500: import_zod26.default.object({
1309
- message: import_zod26.default.string()
1377
+ 500: import_zod27.default.object({
1378
+ message: import_zod27.default.string()
1310
1379
  }),
1311
1380
  401: DefaultUnauthorizedSchema,
1312
1381
  404: DefaultNotFoundSchema,
@@ -1322,14 +1391,14 @@ var contactContract = (0, import_core7.initContract)().router(
1322
1391
  200: DefaultSuccessResponseSchema.extend({
1323
1392
  data: ContactContractValidationSchema.getById.response
1324
1393
  }),
1325
- 400: import_zod26.default.object({
1326
- message: import_zod26.default.string()
1394
+ 400: import_zod27.default.object({
1395
+ message: import_zod27.default.string()
1327
1396
  }),
1328
- 409: import_zod26.default.object({
1329
- message: import_zod26.default.string()
1397
+ 409: import_zod27.default.object({
1398
+ message: import_zod27.default.string()
1330
1399
  }),
1331
- 500: import_zod26.default.object({
1332
- message: import_zod26.default.string()
1400
+ 500: import_zod27.default.object({
1401
+ message: import_zod27.default.string()
1333
1402
  }),
1334
1403
  401: DefaultUnauthorizedSchema,
1335
1404
  404: DefaultNotFoundSchema,
@@ -1346,14 +1415,14 @@ var contactContract = (0, import_core7.initContract)().router(
1346
1415
  200: DefaultSuccessResponseSchema.extend({
1347
1416
  message: ContactContractValidationSchema.delete.response
1348
1417
  }),
1349
- 400: import_zod26.default.object({
1350
- message: import_zod26.default.string()
1418
+ 400: import_zod27.default.object({
1419
+ message: import_zod27.default.string()
1351
1420
  }),
1352
- 409: import_zod26.default.object({
1353
- message: import_zod26.default.string()
1421
+ 409: import_zod27.default.object({
1422
+ message: import_zod27.default.string()
1354
1423
  }),
1355
- 500: import_zod26.default.object({
1356
- message: import_zod26.default.string()
1424
+ 500: import_zod27.default.object({
1425
+ message: import_zod27.default.string()
1357
1426
  }),
1358
1427
  401: DefaultUnauthorizedSchema,
1359
1428
  404: DefaultNotFoundSchema,
@@ -1369,14 +1438,14 @@ var contactContract = (0, import_core7.initContract)().router(
1369
1438
  201: DefaultSuccessResponseSchema.extend({
1370
1439
  data: ContactContractValidationSchema.createContactByPhone.response
1371
1440
  }),
1372
- 400: import_zod26.default.object({
1373
- message: import_zod26.default.string()
1441
+ 400: import_zod27.default.object({
1442
+ message: import_zod27.default.string()
1374
1443
  }),
1375
- 409: import_zod26.default.object({
1376
- message: import_zod26.default.string()
1444
+ 409: import_zod27.default.object({
1445
+ message: import_zod27.default.string()
1377
1446
  }),
1378
- 500: import_zod26.default.object({
1379
- message: import_zod26.default.string()
1447
+ 500: import_zod27.default.object({
1448
+ message: import_zod27.default.string()
1380
1449
  }),
1381
1450
  401: DefaultUnauthorizedSchema,
1382
1451
  404: DefaultNotFoundSchema,
@@ -1384,6 +1453,98 @@ var contactContract = (0, import_core7.initContract)().router(
1384
1453
  },
1385
1454
  body: ContactContractValidationSchema.createContactByPhone.request,
1386
1455
  summary: "Create a new contact using phone number"
1456
+ },
1457
+ updateFromOngoingCall: {
1458
+ method: "PATCH",
1459
+ path: "/:id/ongoing",
1460
+ responses: {
1461
+ 201: DefaultSuccessResponseSchema.extend({
1462
+ data: ContactContractValidationSchema.updateFromOngoingCall.response
1463
+ }),
1464
+ 400: import_zod27.default.object({
1465
+ message: import_zod27.default.string()
1466
+ }),
1467
+ 409: import_zod27.default.object({
1468
+ message: import_zod27.default.string()
1469
+ }),
1470
+ 500: import_zod27.default.object({
1471
+ message: import_zod27.default.string()
1472
+ }),
1473
+ 401: DefaultUnauthorizedSchema,
1474
+ 404: DefaultNotFoundSchema,
1475
+ 422: DefaultUnprocessibleSchema
1476
+ },
1477
+ body: ContactContractValidationSchema.updateFromOngoingCall.request,
1478
+ summary: "Update a contact with name and company while making ongoing call"
1479
+ },
1480
+ merge: {
1481
+ method: "POST",
1482
+ path: "/merge",
1483
+ responses: {
1484
+ 200: DefaultSuccessResponseSchema.extend({
1485
+ data: ContactContractValidationSchema.merge.response
1486
+ }),
1487
+ 400: import_zod27.default.object({
1488
+ message: import_zod27.default.string()
1489
+ }),
1490
+ 409: import_zod27.default.object({
1491
+ message: import_zod27.default.string()
1492
+ }),
1493
+ 500: import_zod27.default.object({
1494
+ message: import_zod27.default.string()
1495
+ }),
1496
+ 401: DefaultUnauthorizedSchema,
1497
+ 404: DefaultNotFoundSchema,
1498
+ 422: DefaultUnprocessibleSchema
1499
+ },
1500
+ body: ContactContractValidationSchema.merge.request,
1501
+ summary: "Merge contacts into a single contact."
1502
+ },
1503
+ checkContactPhone: {
1504
+ method: "POST",
1505
+ path: "/check/phone",
1506
+ responses: {
1507
+ 200: DefaultSuccessResponseSchema.extend({
1508
+ existed: ContactContractValidationSchema.checkContactPhone.response
1509
+ }),
1510
+ 400: import_zod27.default.object({
1511
+ message: import_zod27.default.string()
1512
+ }),
1513
+ 409: import_zod27.default.object({
1514
+ message: import_zod27.default.string()
1515
+ }),
1516
+ 500: import_zod27.default.object({
1517
+ message: import_zod27.default.string()
1518
+ }),
1519
+ 401: DefaultUnauthorizedSchema,
1520
+ 404: DefaultNotFoundSchema,
1521
+ 422: DefaultUnprocessibleSchema
1522
+ },
1523
+ body: ContactContractValidationSchema.checkContactPhone.request,
1524
+ summary: "Check whether a contact owns a phone number"
1525
+ },
1526
+ checkContactEmail: {
1527
+ method: "POST",
1528
+ path: "/check/email",
1529
+ responses: {
1530
+ 200: DefaultSuccessResponseSchema.extend({
1531
+ existed: ContactContractValidationSchema.checkContactEmail.response
1532
+ }),
1533
+ 400: import_zod27.default.object({
1534
+ message: import_zod27.default.string()
1535
+ }),
1536
+ 409: import_zod27.default.object({
1537
+ message: import_zod27.default.string()
1538
+ }),
1539
+ 500: import_zod27.default.object({
1540
+ message: import_zod27.default.string()
1541
+ }),
1542
+ 401: DefaultUnauthorizedSchema,
1543
+ 404: DefaultNotFoundSchema,
1544
+ 422: DefaultUnprocessibleSchema
1545
+ },
1546
+ body: ContactContractValidationSchema.checkContactEmail.request,
1547
+ summary: "Check whether a contact owns a email"
1387
1548
  }
1388
1549
  },
1389
1550
  {
@@ -1396,23 +1557,6 @@ var contactContract = (0, import_core7.initContract)().router(
1396
1557
  var import_core8 = require("@ts-rest/core");
1397
1558
  var import_zod29 = __toESM(require("zod"));
1398
1559
 
1399
- // src/cx-log/schema.ts
1400
- var import_zod27 = __toESM(require("zod"));
1401
- var CxLogSchema = DefaultEntitySchema.extend({
1402
- caseId: import_zod27.default.number(),
1403
- entityId: import_zod27.default.string().uuid(),
1404
- entityName: import_zod27.default.string(),
1405
- contactId: import_zod27.default.string().uuid().nullable(),
1406
- channel: import_zod27.default.string().nullable(),
1407
- queueId: import_zod27.default.string().uuid().nullable(),
1408
- agentId: import_zod27.default.string().uuid().nullable(),
1409
- direction: import_zod27.default.string().nullable(),
1410
- startedDate: import_zod27.default.date().nullable(),
1411
- handledTime: import_zod27.default.number().nullable(),
1412
- firstResponseTime: import_zod27.default.number().nullable(),
1413
- disposition: import_zod27.default.string().nullable()
1414
- });
1415
-
1416
1560
  // src/cx-log/validation.ts
1417
1561
  var import_zod28 = __toESM(require("zod"));
1418
1562
  var sentimentScoreSchema = import_zod28.default.union([
@@ -2297,7 +2441,8 @@ var messengerContract = (0, import_core17.initContract)().router({
2297
2441
  path: "/message",
2298
2442
  body: SendMessageToPlatformSchema,
2299
2443
  responses: {
2300
- 200: DefaultSuccessResponseSchema
2444
+ 200: SendMessageResponseSchema,
2445
+ 500: DefaultErrorResponseSchema
2301
2446
  }
2302
2447
  }
2303
2448
  }, {