@kl1/contracts 1.0.14 → 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,94 +1152,162 @@ 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
  }
1243
+ },
1244
+ createContactByPhone: {
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(
1261
+ (value) => {
1262
+ const numericValue = value.replace(/\s/g, "");
1263
+ return /^\d+$/.test(numericValue);
1264
+ },
1265
+ {
1266
+ message: "Phone number must contain only numeric characters"
1267
+ }
1268
+ )
1269
+ }),
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()
1228
1311
  }
1229
1312
  };
1230
1313
 
@@ -1238,14 +1321,14 @@ var contactContract = (0, import_core7.initContract)().router(
1238
1321
  201: DefaultSuccessResponseSchema.extend({
1239
1322
  message: ContactContractValidationSchema.create.response
1240
1323
  }),
1241
- 400: import_zod26.default.object({
1242
- message: import_zod26.default.string()
1324
+ 400: import_zod27.default.object({
1325
+ message: import_zod27.default.string()
1243
1326
  }),
1244
- 409: import_zod26.default.object({
1245
- message: import_zod26.default.string()
1327
+ 409: import_zod27.default.object({
1328
+ message: import_zod27.default.string()
1246
1329
  }),
1247
- 500: import_zod26.default.object({
1248
- message: import_zod26.default.string()
1330
+ 500: import_zod27.default.object({
1331
+ message: import_zod27.default.string()
1249
1332
  }),
1250
1333
  401: DefaultUnauthorizedSchema,
1251
1334
  404: DefaultNotFoundSchema,
@@ -1262,14 +1345,14 @@ var contactContract = (0, import_core7.initContract)().router(
1262
1345
  200: DefaultSuccessResponseSchema.extend({
1263
1346
  data: ContactContractValidationSchema.getById.response
1264
1347
  }),
1265
- 400: import_zod26.default.object({
1266
- message: import_zod26.default.string()
1348
+ 400: import_zod27.default.object({
1349
+ message: import_zod27.default.string()
1267
1350
  }),
1268
- 409: import_zod26.default.object({
1269
- message: import_zod26.default.string()
1351
+ 409: import_zod27.default.object({
1352
+ message: import_zod27.default.string()
1270
1353
  }),
1271
- 500: import_zod26.default.object({
1272
- message: import_zod26.default.string()
1354
+ 500: import_zod27.default.object({
1355
+ message: import_zod27.default.string()
1273
1356
  }),
1274
1357
  401: DefaultUnauthorizedSchema,
1275
1358
  404: DefaultNotFoundSchema,
@@ -1285,14 +1368,14 @@ var contactContract = (0, import_core7.initContract)().router(
1285
1368
  200: DefaultSuccessResponseSchema.extend(
1286
1369
  ContactContractValidationSchema.getAll.response
1287
1370
  ),
1288
- 400: import_zod26.default.object({
1289
- message: import_zod26.default.string()
1371
+ 400: import_zod27.default.object({
1372
+ message: import_zod27.default.string()
1290
1373
  }),
1291
- 409: import_zod26.default.object({
1292
- message: import_zod26.default.string()
1374
+ 409: import_zod27.default.object({
1375
+ message: import_zod27.default.string()
1293
1376
  }),
1294
- 500: import_zod26.default.object({
1295
- message: import_zod26.default.string()
1377
+ 500: import_zod27.default.object({
1378
+ message: import_zod27.default.string()
1296
1379
  }),
1297
1380
  401: DefaultUnauthorizedSchema,
1298
1381
  404: DefaultNotFoundSchema,
@@ -1308,14 +1391,14 @@ var contactContract = (0, import_core7.initContract)().router(
1308
1391
  200: DefaultSuccessResponseSchema.extend({
1309
1392
  data: ContactContractValidationSchema.getById.response
1310
1393
  }),
1311
- 400: import_zod26.default.object({
1312
- message: import_zod26.default.string()
1394
+ 400: import_zod27.default.object({
1395
+ message: import_zod27.default.string()
1313
1396
  }),
1314
- 409: import_zod26.default.object({
1315
- message: import_zod26.default.string()
1397
+ 409: import_zod27.default.object({
1398
+ message: import_zod27.default.string()
1316
1399
  }),
1317
- 500: import_zod26.default.object({
1318
- message: import_zod26.default.string()
1400
+ 500: import_zod27.default.object({
1401
+ message: import_zod27.default.string()
1319
1402
  }),
1320
1403
  401: DefaultUnauthorizedSchema,
1321
1404
  404: DefaultNotFoundSchema,
@@ -1332,14 +1415,14 @@ var contactContract = (0, import_core7.initContract)().router(
1332
1415
  200: DefaultSuccessResponseSchema.extend({
1333
1416
  message: ContactContractValidationSchema.delete.response
1334
1417
  }),
1335
- 400: import_zod26.default.object({
1336
- message: import_zod26.default.string()
1418
+ 400: import_zod27.default.object({
1419
+ message: import_zod27.default.string()
1337
1420
  }),
1338
- 409: import_zod26.default.object({
1339
- message: import_zod26.default.string()
1421
+ 409: import_zod27.default.object({
1422
+ message: import_zod27.default.string()
1340
1423
  }),
1341
- 500: import_zod26.default.object({
1342
- message: import_zod26.default.string()
1424
+ 500: import_zod27.default.object({
1425
+ message: import_zod27.default.string()
1343
1426
  }),
1344
1427
  401: DefaultUnauthorizedSchema,
1345
1428
  404: DefaultNotFoundSchema,
@@ -1347,6 +1430,121 @@ var contactContract = (0, import_core7.initContract)().router(
1347
1430
  },
1348
1431
  body: null,
1349
1432
  summary: "Delete a contact"
1433
+ },
1434
+ createContactByPhone: {
1435
+ method: "POST",
1436
+ path: "/phone",
1437
+ responses: {
1438
+ 201: DefaultSuccessResponseSchema.extend({
1439
+ data: ContactContractValidationSchema.createContactByPhone.response
1440
+ }),
1441
+ 400: import_zod27.default.object({
1442
+ message: import_zod27.default.string()
1443
+ }),
1444
+ 409: import_zod27.default.object({
1445
+ message: import_zod27.default.string()
1446
+ }),
1447
+ 500: import_zod27.default.object({
1448
+ message: import_zod27.default.string()
1449
+ }),
1450
+ 401: DefaultUnauthorizedSchema,
1451
+ 404: DefaultNotFoundSchema,
1452
+ 422: DefaultUnprocessibleSchema
1453
+ },
1454
+ body: ContactContractValidationSchema.createContactByPhone.request,
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"
1350
1548
  }
1351
1549
  },
1352
1550
  {
@@ -1359,23 +1557,6 @@ var contactContract = (0, import_core7.initContract)().router(
1359
1557
  var import_core8 = require("@ts-rest/core");
1360
1558
  var import_zod29 = __toESM(require("zod"));
1361
1559
 
1362
- // src/cx-log/schema.ts
1363
- var import_zod27 = __toESM(require("zod"));
1364
- var CxLogSchema = DefaultEntitySchema.extend({
1365
- caseId: import_zod27.default.number(),
1366
- entityId: import_zod27.default.string().uuid(),
1367
- entityName: import_zod27.default.string(),
1368
- contactId: import_zod27.default.string().uuid().nullable(),
1369
- channel: import_zod27.default.string().nullable(),
1370
- queueId: import_zod27.default.string().uuid().nullable(),
1371
- agentId: import_zod27.default.string().uuid().nullable(),
1372
- direction: import_zod27.default.string().nullable(),
1373
- startedDate: import_zod27.default.date().nullable(),
1374
- handledTime: import_zod27.default.number().nullable(),
1375
- firstResponseTime: import_zod27.default.number().nullable(),
1376
- disposition: import_zod27.default.string().nullable()
1377
- });
1378
-
1379
1560
  // src/cx-log/validation.ts
1380
1561
  var import_zod28 = __toESM(require("zod"));
1381
1562
  var sentimentScoreSchema = import_zod28.default.union([
@@ -2260,7 +2441,8 @@ var messengerContract = (0, import_core17.initContract)().router({
2260
2441
  path: "/message",
2261
2442
  body: SendMessageToPlatformSchema,
2262
2443
  responses: {
2263
- 200: DefaultSuccessResponseSchema
2444
+ 200: SendMessageResponseSchema,
2445
+ 500: DefaultErrorResponseSchema
2264
2446
  }
2265
2447
  }
2266
2448
  }, {