contentoh-components-library 21.3.52 → 21.3.54

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 (36) hide show
  1. package/.env.development +2 -0
  2. package/dist/components/molecules/CarouselImagesLogin/index.js +1 -1
  3. package/dist/components/molecules/HeaderTop/index.js +68 -11
  4. package/dist/components/organisms/Chat/Chat.stories.js +21 -1
  5. package/dist/components/organisms/Chat/ContainerItems/index.js +19 -3
  6. package/dist/components/organisms/Chat/ContainerItems/styles.js +1 -1
  7. package/dist/components/organisms/Chat/ContentChat/index.js +343 -191
  8. package/dist/components/organisms/Chat/Footer/index.js +48 -39
  9. package/dist/components/organisms/Chat/index.js +48 -3
  10. package/dist/components/organisms/FullProductNameHeader/index.js +2 -2
  11. package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +190 -111
  12. package/dist/components/pages/ProviderProductEdition/index.js +193 -152
  13. package/dist/components/pages/ProviderProductEdition/styles.js +1 -1
  14. package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +87 -57
  15. package/dist/components/pages/RetailerProductEdition/index.js +266 -277
  16. package/dist/components/pages/RetailerProductEdition/styles.js +1 -1
  17. package/dist/components/pages/RetailerProductEdition/utils.js +61 -2
  18. package/package.json +1 -1
  19. package/src/components/molecules/AvatarAndValidation/index.js +1 -1
  20. package/src/components/molecules/CarouselImagesLogin/index.js +1 -1
  21. package/src/components/molecules/HeaderTop/index.js +52 -6
  22. package/src/components/organisms/Chat/Chat.stories.js +21 -0
  23. package/src/components/organisms/Chat/ContainerItems/index.js +18 -2
  24. package/src/components/organisms/Chat/ContainerItems/styles.js +10 -2
  25. package/src/components/organisms/Chat/ContentChat/index.js +81 -6
  26. package/src/components/organisms/Chat/Footer/index.js +11 -0
  27. package/src/components/organisms/Chat/index.js +47 -3
  28. package/src/components/organisms/FullProductNameHeader/index.js +1 -1
  29. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +202 -115
  30. package/src/components/pages/ProviderProductEdition/index.js +109 -75
  31. package/src/components/pages/ProviderProductEdition/styles.js +5 -1
  32. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +93 -59
  33. package/src/components/pages/RetailerProductEdition/index.js +110 -136
  34. package/src/components/pages/RetailerProductEdition/styles.js +4 -0
  35. package/src/components/pages/RetailerProductEdition/utils.js +37 -0
  36. package/dist/assets/fonts/roboto/LICENSE.txt +0 -202
@@ -39,6 +39,9 @@ import Slide1_4 from "../../../assets/images/sliderToolTip/slide4.svg";
39
39
  import Slide1_5 from "../../../assets/images/sliderToolTip/slide5.svg";
40
40
  import { VersionSelector } from "../../organisms/VersionSelector";
41
41
  import { useCloseModal } from "../../../global-files/customHooks";
42
+ import { createMessage, sendMessage } from "../RetailerProductEdition/utils";
43
+ import { Modal } from "../../organisms/Modal";
44
+ import { ButtonV2 } from "../../atoms/ButtonV2";
42
45
 
43
46
  const reducerImages = (state, action) => {
44
47
  let { values, attrForImgs, inputsByRetailer } = state;
@@ -214,11 +217,13 @@ export const ProviderProductEdition = ({
214
217
  const isRetailer = user?.is_retailer;
215
218
  const [loading, setLoading] = useState(true);
216
219
  const [validatedAll, setValidatedAll] = useState(false);
220
+ const [showRejectModal, setShowRejectModal] = useState(false);
217
221
 
222
+ const originProp = location?.state?.origin;
218
223
  const [origin, setOrigin] = useState({
219
- "Ficha técnica": null,
220
- Descripción: null,
221
- Imágenes: null,
224
+ "Ficha técnica": originProp,
225
+ Descripción: originProp,
226
+ Imágenes: originProp,
222
227
  });
223
228
  const [inCart, setInCart] = useState(false);
224
229
  const [dataGenericModal, setDataGenericModal] = useState({
@@ -342,28 +347,6 @@ export const ProviderProductEdition = ({
342
347
  (type) => {
343
348
  const formatter = new Intl.ListFormat("es", { type: "conjunction" });
344
349
  switch (type) {
345
- case "error":
346
- setGlobalModal({
347
- message: `${activeTab} rechazada`,
348
- detail: "Agrega tu comentarios para enviar el rechazo",
349
- img: errorModal,
350
- textArea: true,
351
- button1: {
352
- name: "Enviar",
353
- action: (e) => {
354
- const textArea = document.querySelector("#area");
355
- if (textArea.value) {
356
- textArea.style.border = "none";
357
- createComment(e, textArea.value);
358
- showGlobalModal("commentsSent");
359
- validatedAll ? validateAll("R") : sendEvaluation("R");
360
- } else {
361
- textArea.style.border = "2px solid red";
362
- }
363
- },
364
- },
365
- });
366
- break;
367
350
  case "generic":
368
351
  setGlobalModal(dataGenericModal);
369
352
  break;
@@ -477,15 +460,6 @@ export const ProviderProductEdition = ({
477
460
  }
478
461
  }, [showModal]);
479
462
 
480
- useEffect(() => {
481
- console.log({ location });
482
- setOrigin({
483
- "Ficha técnica": location?.state?.origin,
484
- Descripción: location?.state?.origin,
485
- Imágenes: location?.state?.origin,
486
- });
487
- }, [location?.state?.origin]);
488
-
489
463
  const loadData = async () => {
490
464
  const services = await getRetailerServices(
491
465
  product?.id_article || product?.article?.id_article,
@@ -524,7 +498,9 @@ export const ProviderProductEdition = ({
524
498
  );
525
499
  setServicesData(parsedResponse);
526
500
  }
527
- !activeRetailer.id && setActiveRetailer(active ? active : retailers[0]);
501
+ retailers &&
502
+ !activeRetailer.id &&
503
+ setActiveRetailer(active ? active : retailers[0]);
528
504
  };
529
505
 
530
506
  const isRevision = () => {
@@ -539,13 +515,6 @@ export const ProviderProductEdition = ({
539
515
  "Contentoh",
540
516
  ].includes(orgn);
541
517
  if (isRetailer) {
542
- console.log({
543
- origin: origin[activeTab],
544
- concept,
545
- orgn,
546
- revision,
547
- currentService,
548
- });
549
518
  if (revision && currentService === "AP") return true;
550
519
  } else {
551
520
  const { product } = productEdit;
@@ -607,7 +576,7 @@ export const ProviderProductEdition = ({
607
576
  });
608
577
  }
609
578
  setProduct(productTemp);
610
- setActivePercentage(retailers[0]?.percentage);
579
+ retailers && setActivePercentage(retailers[0]?.percentage);
611
580
  }, [percentages]);
612
581
 
613
582
  const loadInputs = () => {
@@ -848,32 +817,19 @@ export const ProviderProductEdition = ({
848
817
  }
849
818
  };
850
819
 
851
- const createComment = async (e, body, tab) => {
852
- let concept = "";
853
- switch (activeTab) {
854
- case "Ficha técnica":
855
- concept = "datasheet";
856
- break;
857
- case "Imágenes":
858
- concept = "images";
859
- break;
860
-
861
- default:
862
- concept = "description";
863
- break;
864
- }
820
+ const createComment = async (messages = [], retailerId) => {
865
821
  const data = {
866
- articleId: product?.id_article,
867
- orderId: product?.orderId,
868
- message: body,
869
- concept: concept,
870
- version: version,
871
- };
872
- await axios.post(`${process.env.REACT_APP_COMMENTS_ENDPOINT}`, data, {
873
- headers: {
874
- Authorization: token,
822
+ paramsBody: {
823
+ id: product.article.id_article || productEdit.ArticleId,
824
+ version: version,
825
+ items: messages,
826
+ retailerId: retailerId,
827
+ status: product.status || productEdit.product.status,
875
828
  },
876
- });
829
+ paramsHeader: { Authorization: token },
830
+ };
831
+ setMessage("");
832
+ return sendMessage(data);
877
833
  };
878
834
 
879
835
  useEffect(() => {
@@ -1073,6 +1029,27 @@ export const ProviderProductEdition = ({
1073
1029
  const { newArticleStatus, newServiceStatus, newStatus } = JSON.parse(
1074
1030
  res.data.body
1075
1031
  );
1032
+
1033
+ const message = createMessage(
1034
+ product.retailers || product.retailersAvailable,
1035
+ activeRetailer.id,
1036
+ product[sectionStatusKey],
1037
+ newStatus,
1038
+ activeTab
1039
+ );
1040
+
1041
+ const messageData = {
1042
+ paramsBody: {
1043
+ id: product.article.id_article || productEdit.ArticleId,
1044
+ version: version,
1045
+ items: [{ type: "status", value: message }],
1046
+ retailerId: activeRetailer.id,
1047
+ status: product.status || productEdit.product.status,
1048
+ },
1049
+ paramsHeader: { Authorization: token },
1050
+ };
1051
+ await sendMessage(messageData);
1052
+
1076
1053
  if (newArticleStatus) productTemp.status = newArticleStatus[articleId];
1077
1054
  const retailerStatusCopy = { ...retailerStatus };
1078
1055
  retailerStatusCopy[activeRetailer.id][concept] = newStatus;
@@ -1104,6 +1081,7 @@ export const ProviderProductEdition = ({
1104
1081
  result,
1105
1082
  isAproved: result === "A",
1106
1083
  };
1084
+ const messages = [];
1107
1085
  servicesData?.forEach((ret) => {
1108
1086
  const { service, id_retailer } = ret;
1109
1087
  let data = {};
@@ -1120,6 +1098,18 @@ export const ProviderProductEdition = ({
1120
1098
  },
1121
1099
  })
1122
1100
  );
1101
+ if (product[`${ret.service}_status`] !== "NS") {
1102
+ const message = createMessage(
1103
+ product.retailers,
1104
+ ret.id_retailer,
1105
+ product[`${ret.service}_status`],
1106
+ `${result}A`,
1107
+ ret.service
1108
+ );
1109
+ messages.push(
1110
+ createComment([{ type: "status", value: message }], ret.id_retailer)
1111
+ );
1112
+ }
1123
1113
  });
1124
1114
  await Promise.all(evaluationArray);
1125
1115
  const userType = user.is_retailer === 1 ? "CA" : "P";
@@ -1159,6 +1149,7 @@ export const ProviderProductEdition = ({
1159
1149
  product: productTemp,
1160
1150
  })
1161
1151
  );
1152
+ await Promise.all(messages);
1162
1153
 
1163
1154
  await loadData();
1164
1155
  } catch (error) {
@@ -1195,7 +1186,6 @@ export const ProviderProductEdition = ({
1195
1186
 
1196
1187
  const getSectionStatus = () => {
1197
1188
  const concept = getConcept(activeTab);
1198
- console.log("getSectionStatus", productEdit.product[`${concept}_status`]);
1199
1189
  return ["AA", "AP", "R", "CA", "RCA"].includes(
1200
1190
  productEdit.product[`${concept}_status`]
1201
1191
  );
@@ -1287,8 +1277,7 @@ export const ProviderProductEdition = ({
1287
1277
  return;
1288
1278
  } else if (user.is_retailer) {
1289
1279
  if (product.id_order || product.orderId) {
1290
- setValidatedAll(true);
1291
- showGlobalModal("error");
1280
+ sendEvaluation("R");
1292
1281
  } else {
1293
1282
  setDataGenericModal((prev) => ({
1294
1283
  ...prev,
@@ -1300,8 +1289,7 @@ export const ProviderProductEdition = ({
1300
1289
  showGlobalModal("generic");
1301
1290
  }
1302
1291
  } else {
1303
- setValidatedAll(true);
1304
- showGlobalModal("error");
1292
+ sendEvaluation("R");
1305
1293
  }
1306
1294
  }
1307
1295
  };
@@ -1310,6 +1298,7 @@ export const ProviderProductEdition = ({
1310
1298
  <HeaderTop
1311
1299
  setHeaderTop={setHeaderTop}
1312
1300
  withChat={location?.state?.withChat}
1301
+ chatType={location?.state?.chatType}
1313
1302
  productSelected={productSelected}
1314
1303
  token={token}
1315
1304
  activeRetailer={activeRetailer}
@@ -1388,7 +1377,7 @@ export const ProviderProductEdition = ({
1388
1377
  } else if (user.is_retailer) {
1389
1378
  if (product.id_order || product.orderId) {
1390
1379
  setValidatedAll(true);
1391
- showGlobalModal("error");
1380
+ setShowRejectModal(true);
1392
1381
  } else {
1393
1382
  setDataGenericModal((prev) => ({
1394
1383
  ...prev,
@@ -1400,12 +1389,14 @@ export const ProviderProductEdition = ({
1400
1389
  showGlobalModal("generic");
1401
1390
  }
1402
1391
  } else {
1392
+ setShowRejectModal(true);
1403
1393
  setValidatedAll(true);
1404
- showGlobalModal("error");
1405
1394
  }
1406
1395
  }}
1407
1396
  approve={() => sendToEvaluation("A")}
1408
- reject={() => sendToEvaluation("R")}
1397
+ reject={() => {
1398
+ setShowRejectModal(true);
1399
+ }}
1409
1400
  />
1410
1401
  <FullTabsMenu
1411
1402
  tabsSections={tabsSections}
@@ -1640,6 +1631,49 @@ export const ProviderProductEdition = ({
1640
1631
  jwt={token}
1641
1632
  />
1642
1633
  )}
1634
+ {showRejectModal && (
1635
+ <Modal
1636
+ title={"Agregar mensaje de rechazo"}
1637
+ show={showRejectModal}
1638
+ customComponent={
1639
+ <TagAndInput
1640
+ label={"Caja de Comentario"}
1641
+ inputType={"textarea"}
1642
+ inputId={"modal-message-box"}
1643
+ index={0}
1644
+ color={"white"}
1645
+ />
1646
+ }
1647
+ buttons={[
1648
+ <ButtonV2
1649
+ key={"btn-Cancelar"}
1650
+ type={"white"}
1651
+ label={"Cancelar"}
1652
+ size={12}
1653
+ onClick={() => {
1654
+ setShowRejectModal(false);
1655
+ }}
1656
+ />,
1657
+ <ButtonV2
1658
+ key={"btn-Aceptar"}
1659
+ type={"pink"}
1660
+ label={"Aceptar"}
1661
+ size={12}
1662
+ onClick={async () => {
1663
+ const body = document.querySelector(
1664
+ "#modal-message-box .ql-container .ql-editor > p"
1665
+ ).innerHTML;
1666
+ const messages = [
1667
+ { type: "message", value: body?.replace(/<.*?\/?>/gm, "") },
1668
+ ];
1669
+ await createComment(messages, activeRetailer.id);
1670
+ validatedAll ? validateAll("R") : sendToEvaluation("R");
1671
+ setShowRejectModal(false);
1672
+ }}
1673
+ />,
1674
+ ]}
1675
+ />
1676
+ )}
1643
1677
  </Container>
1644
1678
  );
1645
1679
  };
@@ -107,6 +107,10 @@ export const Container = styled.div`
107
107
  }
108
108
  }
109
109
  }
110
+ #modal-message-box {
111
+ width: 400px;
112
+ height: 100px;
113
+ }
110
114
  .container {
111
115
  width: 100%;
112
116
  height: 100%;
@@ -115,4 +119,4 @@ export const Container = styled.div`
115
119
  width: 100%;
116
120
  }
117
121
  }
118
- `;
122
+ `;
@@ -16,88 +16,122 @@ RetailerProductEditionDefault.args = {
16
16
  Imágenes: false,
17
17
  },
18
18
  token:
19
- "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJmYjIzMDRlZi1lMWEyLTRjMmItODg3NC1lYjc1NGU0ZjYzMzIiLCJjb2duaXRvOmdyb3VwcyI6WyJ1c3VhcmlvX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwiY29nbml0bzp1c2VybmFtZSI6ImZiMjMwNGVmLWUxYTItNGMyYi04ODc0LWViNzU0ZTRmNjMzMiIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI4MGFmMGIwNi1iMGYyLTQ5YjgtYjczYy1lMzQ5MTFmMGVkNmEiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4MzkxOTkxMSwibmFtZSI6IkNvbGFib3JhZG9yIiwicGhvbmVfbnVtYmVyIjoiKzUyMTExMSIsImV4cCI6MTY4MzkyMzUxMSwiaWF0IjoxNjgzOTE5OTExLCJlbWFpbCI6ImNhZGVuYWJvZGVnYUBhbGxmcmVlbWFpbC5uZXQifQ.h8rhLTIPMxhCs85K5JIn1efY4yZ5TAvzaBbLItby8W7HdLnNjK4Cv39mTCprrk0yjmKhOGIA1gyVeXcm18n5LqSLmOyz85uwTRwZ91s2on49rX3cO9FZp5S3tg4MseNKePBBetwycXttVm_aJZOLGvt2XoAfdxXHTUk2uDu7IphAdz746qrgXxSFyq_cWX9SdWrYhAn_XjHbNOqOuvcmbD7FquvUq-RYWqTAyeT9qeZUjA8oJvENkpohybxc6OoKaPOcdxWvZsvNcFxpEzjHQja3dAQnlA-Pc9_iJf9S4fzf3d3aqXIIDQuozJiixnT6-kK29p4MVbEJ2r4Pd2Ox2A",
19
+ "eyJraWQiOiJkQWJkZCtlclwvTlwveVRQUWNvUlVyOCtrNUd2M1hMM2N1MWUzQ09zWExVRnc9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiI5YTIxMzEyOC02NDgyLTRjMTYtYTRiNi02ZTY0ZjIyNWIxYmQiLCJjb2duaXRvOmdyb3VwcyI6WyJjb2xhYm9yYWRvcmVzX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfWE1aUWRxa0dqIiwiY29nbml0bzp1c2VybmFtZSI6IjlhMjEzMTI4LTY0ODItNGMxNi1hNGI2LTZlNjRmMjI1YjFiZCIsImNvZ25pdG86cm9sZXMiOlsiYXJuOmF3czppYW06Ojg5ODY3MDIzMjgwNzpyb2xlXC9jb250ZW50b2gtZGV2LXVzLWVhc3QtMS1sYW1iZGFSb2xlIl0sImF1ZCI6IjVhYzh0cGdzNmdic3ExM2ZydnJwaWVlcDQwIiwiZXZlbnRfaWQiOiI5OGE0NzYxMy04ZGIyLTRlZjUtYjA0Mi01ZDU3MWRkZjIwMWIiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY4Mzg3NTIyNiwibmFtZSI6IkNvbGFib3JhZG9yIiwicGhvbmVfbnVtYmVyIjoiKzUyMTExMSIsImV4cCI6MTY4Mzg3ODgyNiwiaWF0IjoxNjgzODc1MjI2LCJlbWFpbCI6ImlzbWFlbDk3bG9wZXpAZ21haWwuY29tIn0.EtgmT_THMx-Zy_zB5yZK4gz6TXNTVVJEKFt5X0JK2UkGVrp_q_92YCEuejS4n976fyTez0jkwOee6IkVHLV71uZWRBDFt-3Yw4ZxfsZYPNJWhoHXGNxhMU8MCkSntfu597esBTk-VsUpstT5R7L-WJfN8viE7R-qVo-42RlPTG0TFrWA9q0oTcqjv8vbxLpOBUjiEpjmqRhg4blJZwgkGNta6MOlw1vfmisOVbo9wMvqwnCZ9xx9KMKoH9U4uNObK_JomjbvPmTmkcUXsE-wGSD7XcoSwtuhBngLC7-jiu1u8MvL_ff5Z0Qp70sSpLdUglcSS8d1Xf7j_fcZuJ5jKA",
20
20
  productSelected: {
21
- orderId: 15104,
22
- article_status: "AP",
23
- datasheet_status: "AC",
24
- description_status: "AC",
25
- images_status: "AC",
21
+ orderId: 15142,
22
+ status: "CA",
23
+ datasheet_status: "CA",
26
24
  prio: "none",
27
25
  version: 3,
28
- brand: null,
29
- article: {
30
- category: "Juguetes|Juguetes|Juguetes",
31
- company_name: "Financiado Bodega",
32
- id_company: 912,
33
- country: "México",
34
- id_category: "4208",
35
- id_article: 37569,
36
- name: "BB HORA DEL BANO SET MENTA",
37
- upc: "93905444796",
26
+ description_status: "AC",
27
+ images_status: "CA",
28
+ brand: "Garnier",
29
+ retailerOrder: 0,
30
+ missing: {
31
+ datasheet: null,
32
+ descriptions: null,
33
+ images: null,
38
34
  },
39
- retailers: [
40
- {
41
- id: 70,
42
- name: "Bodega Aurrera",
43
- },
44
- ],
45
35
  services: {
46
36
  datasheets: 1,
47
37
  descriptions: 1,
48
38
  images: 1,
49
39
  },
50
- statusByRetailer: {
51
- 70: {
52
- datasheet: "AP",
53
- description: "AP",
54
- images: "AP",
55
- },
40
+ article: {
41
+ category:
42
+ "Salud y Belleza|Cuidado del Cabello|Shampoos y Acondicionadores",
43
+ company_name: "GRUPO BRAHMA",
44
+ country: "México",
45
+ id_category: "697",
46
+ id_datasheet_especialist: 54,
47
+ id_datasheet_facilitator: 52,
48
+ id_description_especialist: 54,
49
+ id_description_facilitator: 52,
50
+ id_images_especialist: 55,
51
+ id_images_facilitator: 53,
52
+ id_order: 15142,
53
+ id_article: 39270,
54
+ id_auditor: 37,
55
+ name: "Acondicionador Garnier Fructis 650 ml",
56
+ timestamp: "2023-03-27T18:37:48.000Z",
57
+ upc: "750955287656712",
56
58
  },
57
- retailersWithService: ["70"],
58
- id_article: 37569,
59
- retailersAvailable: [
59
+ retailers: [
60
+ {
61
+ id: 12,
62
+ name: "La Comer",
63
+ image:
64
+ "https://content-management-images.s3.amazonaws.com/retailers/12.png",
65
+ services: ["CA", "CA", "AC", "NA", "NA", "NA", "NA", "NA", "NA"],
66
+ percentage: 100,
67
+ },
68
+ {
69
+ id: 29,
70
+ name: "Farmacias del Ahorro",
71
+ image:
72
+ "https://content-management-images.s3.amazonaws.com/retailers/29.png",
73
+ services: ["NA", "NA", "NA", "CA", "CA", "CA", "NA", "NA", "NA"],
74
+ percentage: 100,
75
+ },
60
76
  {
61
- id: 70,
62
- name: "Bodega Aurrera",
77
+ id: 63,
78
+ name: "DAX",
79
+ image:
80
+ "https://content-management-images.s3.amazonaws.com/retailers/63.png",
81
+ services: ["NA", "NA", "NA", "NA", "NA", "NA", "AC", "AC", "CA"],
82
+ percentage: 83,
63
83
  },
64
84
  ],
85
+ statusByRetailer: {
86
+ 12: {
87
+ datasheet: "CA",
88
+ description: "CA",
89
+ },
90
+ 29: {
91
+ datasheet: "CA",
92
+ description: "CA",
93
+ },
94
+ },
65
95
  },
66
96
  location: {
67
- product: { articleId: 37569, versionId: 3 },
97
+ product: { articleId: 354, versionId: 3 },
98
+ state: {
99
+ withChat: true,
100
+ chatType: "product_status",
101
+ },
68
102
  },
69
103
  user: {
70
- id_user: 132,
71
- name: "Bodega",
72
- last_name: "Aurrera",
73
- email: "cadenabodega@allfreemail.net",
74
- position: "TI",
75
- telephone: "+529999999999",
104
+ id_user: 37,
105
+ name: "José",
106
+ last_name: "Castañeda",
107
+ email: "ismael97lopez@gmail.com",
108
+ position: "Auditor",
109
+ telephone: "",
76
110
  country: "México",
77
- id_company: 912,
78
- id_cognito: "fb2304ef-e1a2-4c2b-8874-eb754e4f6332",
111
+ id_company: 2,
112
+ id_cognito: "9a213128-6482-4c16-a4b6-6e64f225b1bd",
79
113
  birth_Date: null,
80
- about_me: null,
81
- zip_code: null,
82
- address: null,
83
- job: null,
84
- id_stripe: null,
85
- id_role: 0,
114
+ about_me: "",
115
+ zip_code: "",
116
+ address: "",
117
+ job: "",
118
+ id_stripe: "",
119
+ id_role: 6,
86
120
  active: 1,
87
- is_retailer: 1,
121
+ is_retailer: 0,
88
122
  email_notify: 1,
89
123
  is_user_tech: null,
90
124
  membership: {
91
- id: 101,
92
- start_date: "2022-12-22T19:16:53.000Z",
93
- end_date: "2023-12-22T19:16:53.000Z",
94
- planID: 8,
95
- plan: "prod_KtlhECVSFG2iro",
96
- name: "Plan Pro",
97
- user_limit: "20",
98
- products_limit: "5000",
99
- type: "Enterprise",
125
+ id: 2,
126
+ start_date: "2021-11-05T02:35:12.000Z",
127
+ end_date: "2022-11-05T02:34:49.000Z",
128
+ planID: 1,
129
+ plan: "prod_KtkvuFFLpOdP6e",
130
+ name: "Plan Free",
131
+ user_limit: "1",
132
+ products_limit: "3",
133
+ type: "PyMES",
100
134
  },
101
- src: "https://content-management-profile.s3.amazonaws.com/id-132/132.png?1683919912271",
135
+ src: "https://content-management-profile.s3.amazonaws.com/id-37/37.png?1683875228327",
102
136
  },
103
137
  };