{"context":{"domain":"natura-pay-crm"},"layers":{"ApplicationLayer":{"reference":"ApplicationLayer","availableInstances":[{"reference":"ComponentsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"SystemsDataSet","params":{"filter":{"domain":"data2"},"pagination":{"size":1},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSource"}}}},{"reference":"ExternalComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"SystemsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5e3b796d6228227ca637d0f4","name":"data2","domain":"data2","organization":"62292184611f480b3191c37c","visibility":"public","updatedAt":"2026-07-27T14:19:36.810Z"}]}},{"reference":"OrganizationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"DataComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@DataSet","reference":"OneFileComponentInstancesDataSet","params":{"pagination":{"size":1},"master":{"dataset":{"component":"data2-core-types@ProcessReference","params":{"reference":"SystemsDataSet"}},"localField":"system","masterField":"_id"},"datasource":{"component":"data2-core-types@ProcessReference","params":{"reference":"FileComponentInstancesDataSource"}}}},{"reference":"ApplicationsDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"reference":"ServiceComponentInstancesDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@Data2TableDataSource","reference":"FileComponentInstancesDataSource","params":{"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}}]}},{"component":"data2-core@MemoryDataSource","reference":"EmptyDataSource","params":{"initialData":[]}},{"reference":"ComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"UserComponentsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"DataComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ServiceComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ExternalComponentInstancesDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}},{"reference":"ApplicationsDataSet","component":"data2-core@DataSet","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"EmptyDataSource"}}}}],"processesParams":{}},"HostApplicationLayer":{"reference":"HostApplicationLayer","availableInstances":[{"_id":"5f15ff190528b92601890f71","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"SystemsTableDataSource"}},"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"domain"}}},"pk":"_id","fields":[{"component":"data2-core-types@FieldReference","params":{"key":"_id"}},{"component":"data2-core-types@FieldReference","params":{"key":"name"}},{"component":"data2-core-types@FieldReference","params":{"key":"domain"}},{"component":"data2-core-types@FieldReference","params":{"key":"visibility"}},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization._id"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.name"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.billingStatus"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"organization.publicTrial.active"}}},"break":true},{"component":"data2-core-types@FieldReference","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"settings.defaultAccessPolicy"}}},"break":true}],"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"staticPagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}},"policies":[{"component":"data2-core-auth@Policy","params":{"allow":{"params":{"actions":[{"params":{"components":[{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"_id"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"domain"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"},{"params":{"query":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$params.query"}}}},"field":{"component":"data2-core-primitives@String","params":{"content":"customDomains"}},"fieldType":"string"},"component":"data2@7KkQq0vK4a7D2gg6IVJT7"}]},"component":"data2-core-logical-operators@Or"}]},"component":"data2-core-flow@Series"}}}]},"reference":"SystemsDataSet","updatedAt":"2026-08-07T21:51:24.037Z","createdAt":"2020-07-20T20:31:21.838Z"},{"_id":"5f1601ce0528b92601890f7c","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":1000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"sort":{"params.package":1,"params.component":1},"pk":"_id","autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"staticFilter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"filter":{"system":{"exists":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"reference":"ComponentsDataSet","updatedAt":"2025-11-05T19:37:01.935Z","createdAt":"2020-07-20T20:42:54.898Z"},{"_id":"5f9041dbc8da12be8b94aea4","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":2000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentsTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"UserComponentsDataSet","updatedAt":"2025-11-06T21:06:58.095Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"65d8c4fabc9dbb8f94de8d53","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ExternalComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ExternalComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:23.742Z","createdAt":"2024-02-23T16:17:01.816Z"},{"reference":"SystemsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"69bd2cbc4c2708c13a0b572b","name":"natura pay crm","domain":"natura-pay-crm","visibility":"public","settings":{"defaultAccessPolicy":"private"},"updatedAt":"2026-08-19T20:04:27.597Z","createdAt":"2026-03-20T11:17:16.160Z"}]}},{"reference":"ComponentsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"5f52a278a575399a45d239b4","component":"data2-core-types@Component","params":{"package":"data2-core-primitives","component":"Router","interactions":{"component":"data2-core-types@FieldSet","params":{"fields":{"goBack":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.goBack","args":[]}}}},"icon":{"component":"data2-core-primitives@String","params":{"content":"arrow-left"}},"visibility":"public"}},"goTo":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"component":"data2-core-types@Reference","params":{"reference":"url"}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}}}]}},"parameters":[{"component":"data2-core-primitives@String","params":{"content":"url"}},{"component":"data2-core-primitives@String","params":{"content":"preserveQuery"}}]},"break":true},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Path to route"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Path to redirect user"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Boolean"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Preserve Query"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Preserve query string parameters  preserve query parameters on navigating."}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"}]}},"open":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"component":"data2-core-types@This","params":{}},"prop":"history.push","args":[{"pathname":{"component":"data2-core-types@Reference","params":{"reference":"value"}}}]}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"share"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}]}},"close":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-types@Function"}},"definition":{"component":"data2-core-functions@Function","params":{"body":{"preventEvaluation":true,"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":"close"}},"parameters":["value"]}},"icon":{"component":"data2-core-primitives@String","params":{"content":"times"}},"visibility":"public","arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Link to open"}},"description":{"component":"data2-core-primitives@String","params":{"content":""}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2-core-types@ComponentParameter"},{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Target"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Where to open the link"}},"visibility":"public","required":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"oneOf":[{"params":{"content":"_blank"},"component":"data2-core-primitives@String"},{"params":{"content":"_self"},"component":"data2-core-primitives@String"},{"params":{"content":"_parent"},"component":"data2-core-primitives@String"},{"params":{"content":"_top"},"component":"data2-core-primitives@String"}]},"component":"data2-core-types@ComponentParameter"}],"description":{"component":"data2-core-primitives@String","params":{"content":"Closes a window that was opened via router.open."}}}}}}}}},{"_id":"620d28658271aa4129919d89","component":"data2-core-types@Component","params":{"package":"data2-interface-services","component":"DeviceController","interactions":{"params":{"fields":{"postMessage":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@String","title":{"component":"data2-core-primitives@String","params":{"content":"data"}}}}]},"component":"data2-core-types@ComponentParameter"},"print":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"zoom":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Number"}},"title":{"component":"data2-core-primitives@String","params":{"content":"zoom"}},"visibility":"public"}}},"visibility":"public"},"component":"data2-core-types@ComponentParameter"}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"share":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}}},"component":"data2-core-types@ComponentParameter"},"clipboard.copy":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"clipboard.paste":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}}}}]},"component":"data2-core-types@ComponentParameter"},"download":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}]},"component":"data2-core-types@ComponentParameter"},"downloadUrl":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Url"}}}}]},"component":"data2-core-types@ComponentParameter"},"promptFiles":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"parameters":{"params":{"fields":{"multiple":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Multiple"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Whether or not to allow selecting multiple files"}},"component":"data2-core-primitives@Boolean"}},"acceptedFormats":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Accepted Formats"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Accepted file formats"}},"component":"data2-core-primitives@String","list":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},"timeout":{"component":"data2-core-types@ComponentParameter","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"Timeout"}},"description":{"component":"data2-core-primitives@String","params":{"content":"Max milliseconds to wait for file upload"}},"component":"data2-core-primitives@Number"}}}},"component":"data2-core-types@FieldSet"}}}],"visibility":"public"},"component":"data2-core-types@ComponentParameter"},"meetingRecord":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","definition":{"params":{"actions":[{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"meeting"}},"script":{"component":"data2-core-primitives@String","params":{"content":"(function() {\n  let mediaRecorder;\n  let audioChunks = [];\n  let combinedStream;\n  let audioContext;\n  \n  window.meetingCapture = async function() {\n    try {\n      // Solicitar acesso ao áudio da guia (e vídeo, que será ignorado depois)\n      const tabStream = await navigator.mediaDevices.getDisplayMedia({ \n        video: true, // Necessário para alguns navegadores\n        audio: true\n      });\n      \n      // Remover a trilha de vídeo\n      const tabAudioTrack = tabStream.getAudioTracks()[0];\n      \n      // Solicitar acesso ao microfone\n      const micStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n      const micAudioTrack = micStream.getAudioTracks()[0];\n      \n      // Criar um novo MediaStream com ambas as trilhas de áudio\n      combinedStream = new MediaStream([tabAudioTrack, micAudioTrack]);\n      \n      // Criar um contexto de áudio para misturar os streams\n      audioContext = new AudioContext();\n      const destination = audioContext.createMediaStreamDestination();\n      \n      // Conectar a trilha de áudio da guia\n      const tabSource = audioContext.createMediaStreamSource(new MediaStream([tabAudioTrack]));\n      tabSource.connect(destination);\n      \n      // Conectar a trilha de áudio do microfone\n      const micSource = audioContext.createMediaStreamSource(new MediaStream([micAudioTrack]));\n      micSource.connect(destination);\n      \n      // Iniciar gravação com o stream misturado\n      mediaRecorder = new MediaRecorder(destination.stream);\n      audioChunks = [];\n      mediaRecorder.ondataavailable = (e) => audioChunks.push(e.data);\n      mediaRecorder.start();\n      \n      console.log('Gravação iniciada. Chame meetingCaptureStop() para finalizar.');\n    } catch (error) {\n      console.error('Erro ao iniciar a captura:', error);\n    }\n  };\n  \n  window.meetingCaptureStop = function() {\n    return new Promise((resolve, reject) => {\n      if (!mediaRecorder) {\n        reject('Nenhuma gravação em andamento.');\n        return;\n      }\n      \n      mediaRecorder.onstop = () => {\n        const audioBlob = new Blob(audioChunks, { type: 'audio/webm' });\n        combinedStream.getTracks().forEach(track => track.stop());\n        audioContext.close();\n        \n        resolve(audioBlob);\n        console.log('Gravação finalizada. O arquivo de áudio está pronto para upload.');\n      };\n      \n      mediaRecorder.stop();\n    });\n  };\n})();"}}},"component":"data2-core-web@Script"},{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCapture"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"meetingRecordStop":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"public","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Filename"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Content"}}}},{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Object"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Options"}},"parameters":{"params":{"fields":{"type":{"component":"data2-core-types@ComponentParameter","params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@String"}},"title":{"component":"data2-core-primitives@String","params":{"content":"Mimetype"}}}}}},"component":"data2-core-types@FieldSet"}}}],"definition":{"params":{"actions":[{"component":"data2-core-types@Getter","params":{"module":{"params":{},"component":"data2-core-web@Window"},"prop":{"component":"data2-core-primitives@String","params":{"content":"meetingCaptureStop"}}}}]},"component":"data2-core-flow@Series"}},"component":"data2-core-types@ComponentParameter"},"notify":{"params":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core-primitives@Function"}},"visibility":"private","arguments":[{"component":"data2-core-types@ComponentParameter","params":{"component":"data2-core-primitives@Object","parameters":{"title":{"params":{"component":"data2-core-primitives@String","index":{"component":"data2-core-primitives@Number","params":{"content":0}},"title":{"component":"data2-core-primitives@String","params":{"content":"title"}}},"component":"data2-core-types@ComponentParameter"},"sound":{"params":{"component":"data2-core-types@FileComponentUrlReference","index":{"component":"data2-core-primitives@Number","params":{"content":1}},"title":{"component":"data2-core-primitives@String","params":{"content":"sound"}}},"component":"data2-core-types@ComponentParameter"}},"flat":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}}]},"component":"data2-core-types@ComponentParameter"}}},"component":"data2-core-types@FieldSet"}}},{"_id":"6a3db1250a33ea1e6b2a50c4","component":"data2-core-types@Component","system":"69bd2cbc4c2708c13a0b572b","params":{"extends":"data2-core-primitives@Block","component":"icHGMidS2T0qnSVa5bstW","package":"natura-pay-crm","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    select {\n      width: 100%;\n      height: 100%;\n      border: 1px solid #D1D5DB;\n      border-radius: 8px;\n      padding: 0 8px;\n      font-size: 13px;\n      background: #fff;\n      color: #374151;\n      cursor: pointer;\n      outline: none;\n    }\n    select:focus {\n      border-color: #7C3AED;\n      box-shadow: 0 0 0 2px rgba(124,58,237,0.15);\n    }\n  `,\n  render(d2) {\n    const opts = (d2.params.options || [\n      { label: 'Abertura de conta Emana Pay', value: 'abertura_de_conta_emana_pay' },\n      { label: 'Abertura de conta reduzida', value: 'abertura_de_conta_reduzida' }\n    ]).map(o => `<option value=\"${o.value}\">${o.label}</option>`).join('');\n    const placeholder = d2.params.placeholder || 'Todas as campanhas';\n    return `<select id=\"campaign-select\">\n      <option value=\"\">${placeholder}</option>\n      ${opts}\n    </select>`;\n  },\n  mounted(d2, root) {\n    d2.on(root.querySelector('#campaign-select'), 'change', e => {\n      d2.state.campanha = e.target.value;\n    });\n  }\n}"}},"options":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"options"}}}},"placeholder":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"placeholder"}}}}}}}}}},{"_id":"6aace4904ef0bfdfc9a51e20","component":"data2-core-types@Component","system":"69bd2cbc4c2708c13a0b572b","params":{"extends":"data2-core-primitives@Block","component":"qaSimulador","package":"natura-pay-crm","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    :host { display:block; }\n    * { box-sizing:border-box; }\n    .wrap {\n      display:grid; grid-template-columns: 300px 1fr 320px;\n      height:100%; font-family: ui-sans-serif, system-ui, -apple-system, sans-serif;\n      background:#F7F5F0; color:#1F2A24;\n    }\n    .col { overflow-y:auto; padding:22px; }\n    .left { background:#1E2B24; color:#EDEFEE; }\n    .right { background:#FDFCF9; border-left:1px solid #E3E0D6; }\n    .mid { display:flex; flex-direction:column; padding:0; }\n\n    h2 { font-size:13px; letter-spacing:.09em; text-transform:uppercase; margin:0 0 14px; opacity:.72; font-weight:700; }\n    .left h2 { color:#9FC4AE; }\n\n    .persona {\n      border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:11px 13px;\n      margin-bottom:8px; cursor:pointer; background:transparent;\n    }\n    .persona:hover { background:rgba(255,255,255,.06); }\n    .persona.on { background:#2F6F4E; border-color:#2F6F4E; }\n    .persona .nm { font-weight:700; font-size:13.5px; }\n    .persona .tr { font-size:11.5px; opacity:.78; line-height:1.45; margin-top:3px; }\n    .persona .cn { font-size:10px; opacity:.6; margin-top:5px; font-family:ui-monospace,monospace; }\n\n    .head {\n      padding:18px 26px; border-bottom:1px solid #E3E0D6; background:#FDFCF9;\n      display:flex; align-items:center; gap:14px;\n    }\n    .head .who { font-weight:700; font-size:15px; }\n    .head .sub { font-size:11.5px; color:#5B6660; font-family:ui-monospace,monospace; }\n    .btn {\n      all:unset; cursor:pointer; font-size:12px; padding:6px 13px; border-radius:999px;\n      border:1px solid #D8D4C8; color:#5B6660; background:#fff;\n    }\n    .btn:hover { background:#F0EEE7; color:#1F2A24; }\n    .btn.pri { background:#2F6F4E; color:#fff; border-color:#2F6F4E; }\n    .btn.pri:hover { background:#255C40; color:#fff; }\n    .btn[disabled] { opacity:.4; cursor:default; }\n\n    .chat { flex:1; overflow-y:auto; padding:24px 26px; display:flex; flex-direction:column; gap:14px; }\n    .msg { display:flex; }\n    .msg.u { justify-content:flex-end; }\n    .bub {\n      max-width:74%; padding:11px 15px; border-radius:14px; font-size:13.5px; line-height:1.6;\n      white-space:pre-wrap; word-break:break-word;\n    }\n    .msg.b .bub { background:#fff; border:1px solid #E3E0D6; }\n    .msg.u .bub { background:#2F6F4E; color:#fff; }\n    .meta { font-size:10.5px; color:#93A0A6; font-family:ui-monospace,monospace; margin-top:7px; display:flex; gap:7px; flex-wrap:wrap; align-items:center; }\n    .tag { background:#F0EEE7; color:#5B6660; padding:1px 7px; border-radius:999px; }\n    .tag.bad { background:#F3DEDA; color:#7A2F26; font-weight:700; }\n    .acts { display:flex; gap:6px; margin-top:8px; }\n    .ico { all:unset; cursor:pointer; font-size:15px; padding:3px 8px; border-radius:7px; border:1px solid #E3E0D6; background:#fff; }\n    .ico:hover { background:#F0EEE7; }\n    .ico.on { background:#2F6F4E; border-color:#2F6F4E; }\n\n    .fb { margin-top:9px; background:#F7F5F0; border:1px solid #E3E0D6; border-radius:10px; padding:12px; }\n    .fb label { display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:#5B6660; margin-bottom:4px; font-weight:700; }\n    .fb textarea, .fb input {\n      width:100%; font-family:inherit; font-size:12.5px; padding:7px 9px; border:1px solid #D8D4C8;\n      border-radius:7px; background:#fff; color:#1F2A24; resize:vertical; margin-bottom:9px;\n    }\n    .fb .row { display:flex; gap:7px; }\n\n    .composer { border-top:1px solid #E3E0D6; padding:14px 26px; background:#FDFCF9; display:flex; gap:10px; }\n    .composer textarea {\n      flex:1; font-family:inherit; font-size:13.5px; padding:10px 13px; border:1px solid #D8D4C8;\n      border-radius:10px; resize:none; height:46px; background:#fff; color:#1F2A24;\n    }\n\n    .kv { font-size:12px; line-height:1.65; margin-bottom:13px; }\n    .kv b { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:#93A0A6; margin-bottom:2px; }\n    .empty { color:#93A0A6; font-size:12.5px; line-height:1.7; padding:36px 26px; text-align:center; }\n    .warnbox { background:#F3DEDA; border-left:3px solid #B23A2E; padding:11px 13px; border-radius:8px; font-size:12px; line-height:1.6; margin-bottom:13px; }\n    .spin { font-size:12.5px; color:#5B6660; font-style:italic; }\n  `,\n\n  render(d2) {\n    const esc = (s) => String(s == null ? '' : s)\n      .replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;');\n\n    const personas = (d2.data('personasDs')?.records() || []).filter(p => p.ativo !== false);\n    const st = d2.state;\n    const msgs = st.msgs || [];\n    const sel = st.personaKey;\n    const pers = personas.find(p => p.persona_key === sel);\n\n    const left = `\n      <div class=\"col left\">\n        <h2>Persona</h2>\n        ${personas.map(p => `\n          <div class=\"persona ${p.persona_key === sel ? 'on' : ''}\" data-key=\"${esc(p.persona_key)}\" data-persona=\"${esc(p.persona_key)}\">\n            <div class=\"nm\">${esc(p.nome)}</div>\n            <div class=\"tr\">${esc(p.descricao)}</div>\n            <div class=\"cn\">cenário ${esc(p.cenario_origem)} · ${esc(p.nivel)}</div>\n          </div>`).join('')}\n      </div>`;\n\n    const chat = msgs.length ? msgs.map((m, i) => {\n      if (m.role === 'user') {\n        return `<div class=\"msg u\" data-key=\"m${i}\"><div><div class=\"bub\">${esc(m.text)}</div></div></div>`;\n      }\n      const falhas = (m.checks_falhados || []).map(c => `<span class=\"tag bad\">${esc(c)}</span>`).join('');\n      const aberto = st.fbIdx === i;\n      return `\n        <div class=\"msg b\" data-key=\"m${i}\">\n          <div style=\"max-width:74%\">\n            <div class=\"bub\">${esc(m.text)}</div>\n            <div class=\"meta\">\n              ${m.faq ? `<span class=\"tag\">FAQ ${esc(m.faq)}</span>` : ''}\n              ${m.estado ? `<span class=\"tag\">${esc(m.estado)}</span>` : ''}\n              ${falhas || (m.checks_rodados ? '<span class=\"tag\">checks ok</span>' : '')}\n            </div>\n            <div class=\"acts\">\n              <button class=\"ico ${m.fb === 'positivo' ? 'on' : ''}\" data-fb=\"positivo\" data-i=\"${i}\" title=\"Boa resposta — vira teste de regressão\">👍</button>\n              <button class=\"ico ${m.fb === 'negativo' ? 'on' : ''}\" data-fb=\"negativo\" data-i=\"${i}\" title=\"Resposta ruim — vira teste de progressão\">👎</button>\n            </div>\n            ${aberto ? `\n              <div class=\"fb\">\n                <label>Por que ${st.fbTipo === 'positivo' ? 'está boa' : 'está errada'}?</label>\n                <textarea class=\"f-motivo\" rows=\"2\" placeholder=\"${st.fbTipo === 'positivo' ? 'o que essa resposta acertou' : 'o que o bot deveria ter feito em vez disso'}\"></textarea>\n                ${st.fbTipo === 'negativo' ? `<label>Resposta ideal acordada</label><textarea class=\"f-ideal\" rows=\"3\" placeholder=\"escreva aqui a resposta que o bot deveria ter dado\"></textarea>` : ''}\n                <div class=\"row\">\n                  <button class=\"btn pri\" data-save=\"1\">Salvar feedback</button>\n                  <button class=\"btn\" data-cancel=\"1\">Cancelar</button>\n                </div>\n              </div>` : ''}\n          </div>\n        </div>`;\n    }).join('') : `<div class=\"empty\">Escolha uma persona à esquerda e escreva a primeira mensagem<br>como se você fosse ela.</div>`;\n\n    const ultima = [...msgs].reverse().find(m => m.role !== 'user');\n    const sm = ultima && ultima.state_machine ? ultima.state_machine : null;\n\n    const right = `\n      <div class=\"col right\">\n        <h2>O que o bot entendeu</h2>\n        ${st.erro ? `<div class=\"warnbox\">${esc(st.erro)}</div>` : ''}\n        ${sm ? `\n          <div class=\"kv\"><b>Estado</b>${esc(sm.estado || '—')}</div>\n          <div class=\"kv\"><b>Sub-estado</b>${esc(sm.sub_estado || '—')}</div>\n          <div class=\"kv\"><b>É recusa?</b>${sm.is_recusa ? 'sim' : 'não'}${sm.reason ? ' · ' + esc(sm.reason) : ''}</div>\n          <div class=\"kv\"><b>Instrução dada ao redator</b>${esc(sm.instrucao || '—')}</div>\n          <div class=\"kv\"><b>Resumo do histórico</b>${esc(sm.resumo || '—')}</div>\n        ` : `<div class=\"empty\" style=\"padding:20px 0\">Aparece aqui depois da primeira resposta.</div>`}\n      </div>`;\n\n    return `\n      <div class=\"wrap\">\n        ${left}\n        <div class=\"col mid\">\n          <div class=\"head\">\n            <div style=\"flex:1\">\n              <div class=\"who\">${pers ? esc(pers.nome) : 'Nenhuma persona escolhida'}</div>\n              <div class=\"sub\">${pers ? esc(pers.nivel) + ' · cenário ' + esc(pers.cenario_origem) : 'escolha à esquerda'}</div>\n            </div>\n            <button class=\"btn\" data-reset=\"1\">Recomeçar</button>\n          </div>\n          <div class=\"chat\">${chat}${st.carregando ? '<div class=\"spin\">o bot está respondendo…</div>' : ''}</div>\n          <div class=\"composer\">\n            <textarea class=\"entrada\" placeholder=\"${pers ? 'escreva como ' + esc(pers.nome.split(' ')[0]) + '…' : 'escolha uma persona primeiro'}\" ${pers ? '' : 'disabled'}></textarea>\n            <button class=\"btn pri\" data-send=\"1\" ${pers && !st.carregando ? '' : 'disabled'}>Enviar</button>\n          </div>\n        </div>\n        ${right}\n      </div>`;\n  },\n\n  mounted(d2) {\n    const ABERTURA = 'Olá, {{Nome}}! Tudo bem?\\nVi que você já utiliza o Pag Emana Pay para ter mais prazo e flexibilidade nos seus pedidos Natura e Avon. Isso já ajuda muito, mas sabia que sua rotina pode simplificar ainda mais, ao abrir sua conta Emana Pay? 🚀\\n\\nTopa abrir a sua conta agora para aproveitar essas vantagens ou prefere que eu te explique melhor como funcionam essas ferramentas?';\n\n    if (!d2.state.msgs) d2.state.msgs = [];\n\n    const perfilDe = (p) => ({\n      phone: p.telefone_ficticio || '5511900000000',\n      first_name: (p.nome || '').split(' ')[0],\n      name: p.nome,\n      nivel_consultora: p.nivel,\n      segmentacao_1: p.segmentacao,\n      hab_pep: p.ja_usou_pep === true,\n      hab_aproximaae: p.ja_usou_aproximaae === true,\n      ja_usou_superlink: p.ja_usou_superlink === true,\n      contratou_seg_estoque: p.contratou_seg_estoque === true,\n      campaign_id: '6a0328b953f0fae2fbc989e5'\n    });\n\n    d2.on('[data-persona]', 'click', (e) => {\n      const key = e.target.closest('[data-persona]').dataset.persona;\n      d2.setState({ personaKey: key, msgs: [{ role: 'agent', text: ABERTURA }], fbIdx: null, erro: null });\n    });\n\n    d2.on('[data-reset]', 'click', () => {\n      d2.setState({ msgs: d2.state.personaKey ? [{ role: 'agent', text: ABERTURA }] : [], fbIdx: null, erro: null });\n    });\n\n    const enviar = async () => {\n      const ta = d2.$('.entrada');\n      const texto = (ta?.value || '').trim();\n      const personas = d2.data('personasDs')?.records() || [];\n      const p = personas.find(x => x.persona_key === d2.state.personaKey);\n      if (!texto || !p || d2.state.carregando) return;\n\n      const anteriores = (d2.state.msgs || []).map(m => ({\n        role: m.role === 'user' ? 'user' : 'agent',\n        message: { text: m.text }\n      }));\n      const historico = anteriores.concat([{ role: 'user', message: { text: texto } }]);\n\n      d2.setState({\n        msgs: (d2.state.msgs || []).concat([{ role: 'user', text: texto }]),\n        carregando: true, erro: null, fbIdx: null\n      });\n      if (ta) ta.value = '';\n\n      try {\n        const r = await d2.rush('brainRush').invoke({\n          message: texto,\n          all_messages: historico,\n          user_data: perfilDe(p),\n          started_by_user: false,\n          chat_state_inicial: d2.state.chatState || 'ESTADO_1',\n          sub_state_inicial: d2.state.subState || '',\n          resumo_inicial: d2.state.resumo || ''\n        });\n        const dados = (r && r.data) ? r.data : r;\n        d2.setState({\n          carregando: false,\n          chatState: dados.state_machine?.estado || d2.state.chatState,\n          subState: dados.state_machine?.sub_estado || '',\n          resumo: dados.state_machine?.resumo || '',\n          msgs: (d2.state.msgs || []).concat([{\n            role: 'agent',\n            text: dados.resposta,\n            faq: dados.faq,\n            estado: dados.state_machine?.estado,\n            state_machine: dados.state_machine,\n            checks_rodados: dados.checks_rodados,\n            checks_falhados: dados.checks_falhados,\n            entrada: texto\n          }])\n        });\n      } catch (err) {\n        d2.setState({ carregando: false, erro: 'Falha ao chamar o bot: ' + (err?.message || err) });\n      }\n    };\n\n    d2.on('[data-send]', 'click', enviar);\n    d2.on('.entrada', 'keydown', (e) => {\n      if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); enviar(); }\n    });\n\n    d2.on('[data-fb]', 'click', (e) => {\n      const b = e.target.closest('[data-fb]');\n      d2.setState({ fbIdx: Number(b.dataset.i), fbTipo: b.dataset.fb });\n    });\n    d2.on('[data-cancel]', 'click', () => d2.setState({ fbIdx: null }));\n\n    d2.on('[data-save]', 'click', async () => {\n      const i = d2.state.fbIdx;\n      const m = (d2.state.msgs || [])[i];\n      if (m == null) return;\n      const motivo = d2.$('.f-motivo')?.value || '';\n      const ideal = d2.$('.f-ideal')?.value || '';\n      const personas = d2.data('personasDs')?.records() || [];\n      const p = personas.find(x => x.persona_key === d2.state.personaKey);\n      try {\n        await d2.data('feedbacksDs').create({\n          feedback_id: 'fb-' + Date.now(),\n          origem: 'simulador',\n          consultora: p ? p.nome : '',\n          seq: i,\n          mensagem_usuario: m.entrada || '',\n          mensagem_bot: m.text || '',\n          veredito: d2.state.fbTipo,\n          motivo: motivo,\n          resposta_ideal: ideal,\n          cenario: p ? p.cenario_origem : '',\n          criado_em: new Date().toISOString(),\n          virou_teste: false\n        });\n        const novas = (d2.state.msgs || []).slice();\n        novas[i] = Object.assign({}, novas[i], { fb: d2.state.fbTipo });\n        d2.setState({ msgs: novas, fbIdx: null });\n      } catch (err) {\n        d2.setState({ erro: 'Não consegui salvar o feedback: ' + (err?.message || err) });\n      }\n    });\n  }\n}"}},"personasDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"personasDs"}}}},"feedbacksDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"feedbacksDs"}}}},"brainRush":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"brainRush"}}}}}}}}}},{"_id":"6aace781263c3723046fe391","component":"data2-core-types@Component","system":"69bd2cbc4c2708c13a0b572b","params":{"extends":"data2-core-primitives@Block","component":"qaApp","package":"natura-pay-crm","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"export default {\n  css: `\n    :host { display:block; }\n    * { box-sizing:border-box; }\n    .app { display:grid; grid-template-columns:236px 1fr; height:100%;\n      font-family:ui-sans-serif,system-ui,-apple-system,sans-serif; background:#F7F5F0; color:#1F2A24; }\n\n    .nav { background:#1E2B24; color:#EDEFEE; padding:24px 16px; display:flex; flex-direction:column; gap:26px; overflow-y:auto; }\n    .brand { font-family:Georgia,serif; font-size:19px; line-height:1.25; font-weight:600; }\n    .brand small { display:block; font-family:ui-monospace,monospace; font-size:9.5px; letter-spacing:.11em;\n      text-transform:uppercase; color:#8FB39E; margin-top:7px; }\n    .nv { all:unset; cursor:pointer; display:flex; align-items:center; gap:9px; padding:9px 12px;\n      border-radius:9px; font-size:13.5px; color:#C3D2C9; }\n    .nv:hover { background:rgba(255,255,255,.07); color:#fff; }\n    .nv.on { background:#2F6F4E; color:#fff; font-weight:700; }\n    .nv .n { margin-left:auto; font-family:ui-monospace,monospace; font-size:10.5px; opacity:.7; }\n\n    main { overflow-y:auto; padding:34px 40px 70px; }\n    h1 { font-family:Georgia,serif; font-size:31px; font-weight:600; margin:0 0 8px; line-height:1.15; }\n    .eyebrow { font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:#2F6F4E; font-weight:700; margin:0 0 9px; }\n    .lede { font-size:14.5px; color:#5B6660; line-height:1.65; max-width:78ch; margin:0 0 26px; }\n    h2 { font-family:Georgia,serif; font-size:21px; font-weight:600; margin:34px 0 5px; }\n    .sub { font-size:13px; color:#5B6660; line-height:1.6; margin:0 0 15px; max-width:80ch; }\n\n    .kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); gap:13px; margin-bottom:8px; }\n    .kpi { background:#FDFCF9; border:1px solid #E3E0D6; border-radius:13px; padding:17px 19px; }\n    .kpi .n { font-family:Georgia,serif; font-size:29px; font-weight:700; color:#2F6F4E; line-height:1.1; }\n    .kpi.w .n { color:#B23A2E; }\n    .kpi .c { font-size:12px; color:#5B6660; line-height:1.4; margin-top:5px; }\n\n    .card { background:#FDFCF9; border:1px solid #E3E0D6; border-radius:14px; padding:22px; }\n    .card + .card { margin-top:13px; }\n    .warncard { border-left:3px solid #B23A2E; }\n    .warncard p { margin:0 0 9px; font-size:14px; line-height:1.65; max-width:86ch; }\n    .warncard p:last-child { margin:0; }\n    code { font-family:ui-monospace,monospace; font-size:12px; background:#F0EEE7; padding:1px 5px; border-radius:4px; }\n\n    table { width:100%; border-collapse:collapse; font-size:13px; }\n    th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:#93A0A6;\n      padding:9px 11px; border-bottom:1px solid #E3E0D6; font-weight:700; }\n    td { padding:10px 11px; border-bottom:1px solid #EFEDE5; vertical-align:top; line-height:1.55; }\n    tr.clk { cursor:pointer; }\n    tr.clk:hover { background:#F7F5F0; }\n    .nm { font-weight:700; }\n    .mono { font-family:ui-monospace,monospace; font-size:11.5px; }\n\n    .bar { display:flex; align-items:center; gap:11px; margin-bottom:7px; }\n    .bar .lb { width:250px; flex-shrink:0; font-family:ui-monospace,monospace; font-size:11.5px; color:#5B6660; }\n    .bar .tk { flex:1; background:#F0EEE7; border-radius:6px; height:25px; position:relative; }\n    .bar .fl { position:absolute; left:0; top:0; height:25px; border-radius:6px; background:#2F6F4E;\n      display:flex; align-items:center; justify-content:flex-end; padding-right:8px; min-width:26px; }\n    .bar .fl.w { background:#B23A2E; }\n    .bar .fl b { font-family:ui-monospace,monospace; font-size:11.5px; color:#fff; }\n\n    .pill { display:inline-block; padding:2px 8px; border-radius:999px; font-size:10px; font-weight:700;\n      background:#F0EEE7; color:#5B6660; font-family:ui-monospace,monospace; }\n    .pill.bad { background:#F3DEDA; color:#7A2F26; }\n    .pill.ok { background:#DCE9E1; color:#1F4A34; }\n\n    .btn { all:unset; cursor:pointer; font-size:12.5px; padding:7px 15px; border-radius:999px;\n      border:1px solid #D8D4C8; color:#5B6660; background:#fff; }\n    .btn:hover { background:#F0EEE7; color:#1F2A24; }\n    .btn.pri { background:#2F6F4E; color:#fff; border-color:#2F6F4E; }\n    .btn.pri:hover { background:#255C40; }\n    .btn[disabled] { opacity:.4; cursor:default; }\n    .row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }\n\n    .chat { background:#F7F5F0; border-radius:11px; padding:15px; max-height:440px; overflow-y:auto;\n      display:flex; flex-direction:column; gap:11px; }\n    .msg { display:flex; }\n    .msg.u { justify-content:flex-end; }\n    .bub { max-width:76%; min-width:0; width:fit-content; padding:10px 14px; border-radius:13px;\n      font-size:13px; line-height:1.6; white-space:pre-wrap; overflow-wrap:break-word; flex:0 1 auto; }\n    .msg.b .bub { background:#fff; border:1px solid #E3E0D6; }\n    .msg.u .bub { background:#2F6F4E; color:#fff; }\n    .meta { font-size:10px; color:#93A0A6; font-family:ui-monospace,monospace; margin-top:6px; display:flex; gap:6px; flex-wrap:wrap; }\n    .acts { display:flex; gap:6px; margin-top:7px; }\n    .ico { all:unset; cursor:pointer; font-size:14px; padding:3px 9px; border-radius:7px; border:1px solid #E3E0D6; background:#fff; }\n    .ico:hover { background:#F0EEE7; }\n    .ico.on { background:#2F6F4E; border-color:#2F6F4E; }\n\n    .fb { margin-top:9px; background:#FDFCF9; border:1px solid #E3E0D6; border-radius:10px; padding:13px; }\n    .fb label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:#5B6660; margin-bottom:4px; font-weight:700; }\n    .fb textarea, .fb input, .fb select { width:100%; font-family:inherit; font-size:12.5px; padding:8px 10px;\n      border:1px solid #D8D4C8; border-radius:7px; background:#fff; color:#1F2A24; resize:vertical; margin-bottom:10px; }\n\n    .composer { display:flex; gap:9px; margin-top:13px; }\n    .composer textarea { flex:1; font-family:inherit; font-size:13px; padding:10px 13px; border:1px solid #D8D4C8;\n      border-radius:10px; resize:none; height:44px; background:#fff; }\n\n    .split { display:grid; grid-template-columns:1fr 330px; gap:15px; align-items:start; }\n    .kv { font-size:12.5px; line-height:1.6; margin-bottom:12px; }\n    .kv b { display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; color:#93A0A6; margin-bottom:2px; }\n    .empty { color:#93A0A6; font-size:13px; line-height:1.7; padding:40px 20px; text-align:center; }\n    .note { font-size:11.5px; color:#5B6660; line-height:1.6; margin-top:11px; }\n    .persona { border:1px solid #E3E0D6; border-radius:10px; padding:11px 13px; margin-bottom:7px; cursor:pointer; background:#FDFCF9; }\n    .persona:hover { background:#F0EEE7; }\n    .persona.on { background:#2F6F4E; border-color:#2F6F4E; color:#fff; }\n    .persona .t { font-weight:700; font-size:13px; }\n    .persona .d { font-size:11.5px; opacity:.8; line-height:1.45; margin-top:3px; }\n  `,\n\n  render(d2) {\n    const esc = (s) => String(s == null ? '' : s)\n      .replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n    const st = d2.state;\n    const view = st.view || 'geral';\n\n    const convs = d2.data('conversasDs')?.records() || [];\n    const msgs  = d2.data('mensagensDs')?.records() || [];\n    const fbs   = d2.data('feedbacksDs')?.records() || [];\n    const tests = d2.data('testsDs')?.records() || [];\n    const checks= d2.data('checksDs')?.records() || [];\n    const pers  = (d2.data('personasDs')?.records() || []).filter(p => p.ativo !== false);\n    const res   = d2.data('resultadosDs')?.records() || [];\n\n    const nav = [\n      ['geral','Visão geral',''],\n      ['conversas','Conversas reais', convs.length || ''],\n      ['simulador','Simulador',''],\n      ['feedbacks','Feedbacks', fbs.length || ''],\n      ['testes','Testes', tests.length || ''],\n    ].map(([k,l,n]) => `<button class=\"nv ${view===k?'on':''}\" data-view=\"${k}\">${l}<span class=\"n\">${n}</span></button>`).join('');\n\n    return `<div class=\"app\">\n      <nav class=\"nav\">\n        <div class=\"brand\">Dinâmica<br>CRM Abertura de Contas<small>Emana Pay</small></div>\n        <div style=\"display:flex;flex-direction:column;gap:3px\">${nav}</div>\n      </nav>\n      <main>${this.view(d2, view, {convs,msgs,fbs,tests,checks,pers,res,esc})}</main>\n    </div>`;\n  },\n\n  view(d2, v, x) {\n    if (v === 'conversas')  return this.vConversas(d2, x);\n    if (v === 'simulador')  return this.vSimulador(d2, x);\n    if (v === 'feedbacks')  return this.vFeedbacks(d2, x);\n    if (v === 'testes')     return this.vTestes(d2, x);\n    return this.vGeral(d2, x);\n  },\n\n  vGeral(d2, x) {\n    const { convs, checks, esc } = x;\n    const humano = convs.filter(c => c.resposta_tipo === 'humano').length;\n    const robo   = convs.filter(c => c.resposta_tipo === 'robo').length;\n    const conv   = convs.filter(c => c.status === 'CONVERTED').length;\n    const DISPARADAS = 632, SILENCIO = 601;\n    if (!convs.length) return `\n      <p class=\"eyebrow\">Visão geral</p>\n      <h1>O que os dados reais dizem antes da gente decidir qualquer coisa</h1>\n      <div class=\"card warncard\"><p><b>Carregando os dados…</b> Se esta mensagem continuar aqui, atualize a página.</p></div>`;\n\n    const porCenario = {};\n    convs.forEach(c => { porCenario[c.cenario] = (porCenario[c.cenario]||0)+1; });\n    porCenario['A'] = SILENCIO;\n    const nomes = {A:'Silêncio / não-resposta',R:'Resposta automática (robô da consultora)',B:'Aceitação direta',\n      C:'Recusa branda / adiamento',D:'Recusa firme com motivo',E:'Reclamação operacional camuflada',\n      F:'Erro de premissa',G:'Engajou, não decidiu'};\n    const maxC = Math.max(...Object.values(porCenario));\n    const barras = Object.entries(porCenario).sort((a,b)=>b[1]-a[1]).map(([k,n]) => `\n      <div class=\"bar\"><div class=\"lb\">${k} · ${esc(nomes[k]||k)}</div>\n        <div class=\"tk\"><div class=\"fl ${['D','E','R'].includes(k)?'w':''}\" style=\"width:${Math.max(3,100*n/maxC)}%\"><b>${n}</b></div></div>\n      </div>`).join('');\n\n    const alcance = {};\n    convs.forEach(c => (c.falhas||[]).forEach(f => { alcance[f] = (alcance[f]||0)+1; }));\n    alcance['F1'] = 161;\n    const sev = {}; checks.forEach(c => sev[c.code] = c);\n    const ordem = ['crítica','alta','média','a validar'];\n    const linhasFalha = Object.entries(alcance)\n      .sort((a,b) => (ordem.indexOf(sev[a[0]]?.severidade) - ordem.indexOf(sev[b[0]]?.severidade)) || b[1]-a[1])\n      .map(([code,n]) => {\n        const c = sev[code] || {};\n        return `<tr><td class=\"mono\"><span class=\"pill ${['crítica','alta'].includes(c.severidade)?'bad':''}\">${esc(code)}</span></td>\n          <td class=\"nm\">${esc(c.nome||code)}</td><td>${esc(c.severidade||'—')}</td>\n          <td class=\"mono\">${n}</td><td>${esc(c.implicacao||'')}</td></tr>`;\n      }).join('');\n\n    const porLote = {};\n    convs.forEach(c => { const l=c.lote||'—'; porLote[l]=porLote[l]||{r:0}; porLote[l].r++; });\n    const LOTES = [['09/06',25],['11/06',26],['18/06',91],['19/06',98],['30/07',194],['19/08',198]];\n    const barLote = LOTES.map(([l,n]) => {\n      const r = (porLote[l]?.r)||0, taxa = 100*r/n;\n      return `<div class=\"bar\"><div class=\"lb\">${l} (${n} disparos)</div>\n        <div class=\"tk\"><div class=\"fl\" style=\"width:${Math.max(4,taxa*8)}%\"><b>${taxa.toFixed(1)}%</b></div></div></div>`;\n    }).join('');\n\n    return `\n      <p class=\"eyebrow\">Visão geral</p>\n      <h1>O que os dados reais dizem antes da gente decidir qualquer coisa</h1>\n      <p class=\"lede\">Leitura das conversas que o bot teve no WhatsApp com as consultoras.</p>\n\n      <div class=\"kpis\">\n        <div class=\"kpi\"><div class=\"n\">${DISPARADAS}</div><div class=\"c\">sessões reais disparadas</div></div>\n        <div class=\"kpi w\"><div class=\"n\">${humano} (${(100*humano/DISPARADAS).toFixed(1)}%)</div><div class=\"c\">pessoas responderam</div></div>\n        <div class=\"kpi w\"><div class=\"n\">${robo}</div><div class=\"c\">\"respostas\" que eram robô da própria consultora</div></div>\n        <div class=\"kpi\"><div class=\"n\">${SILENCIO}</div><div class=\"c\">nunca responderam</div></div>\n        <div class=\"kpi\"><div class=\"n\">${conv}</div><div class=\"c\">converteram</div></div>\n      </div>\n\n      <h2>Três achados que mudam a pauta</h2>\n      <div class=\"card warncard\">\n        <p><b>1. A maior categoria não é objeção, é silêncio.</b> ${SILENCIO} de ${DISPARADAS} sessões (95%) nunca tiveram resposta.\n        Mexer no fluxo de objeção afeta um punhado de conversas; mexer na <b>mensagem de abertura</b> afeta todas.\n        E a abertura saiu com o placeholder <code>{{Nome}}</code> literal para <b>161 consultoras</b>.</p>\n        <p><b>2. ${robo} das ${humano+robo} \"respostas\" eram máquina.</b> Auto-resposta do WhatsApp Business da própria consultora —\n        saudação em 3ª pessoa, aviso de ausência, catálogo da loja. O bot não detecta e responde como se fosse conversa,\n        chegando a adotar o nome errado que aparece no texto automático.</p>\n        <p><b>3. A mesma mensagem recebe respostas diferentes a cada vez.</b> Repetindo o caso da Gessy três vezes,\n        em uma delas o bot emendou a oferta de venda e nas outras duas respeitou a recusa. Por isso cada caso\n        de teste roda várias vezes: o resultado é a taxa de acerto, não uma tentativa.</p>\n      </div>\n\n      <h2>Distribuição por cenário</h2>\n      <p class=\"sub\">A situação de cada conversa vem do que a consultora escreveu.</p>\n      <div class=\"card\">${barras}</div>\n\n      <h2>Falhas de comportamento catalogadas</h2>\n      <p class=\"sub\">As de severidade crítica e alta são a pauta de correção.</p>\n      <div class=\"card\" style=\"padding:6px 10px\">\n        <table><tr><th>Cód</th><th>Falha</th><th>Severidade</th><th>Consultoras</th><th>O que fazer</th></tr>${linhasFalha}</table>\n      </div>\n\n      <h2>O que estes dados não respondem</h2>\n      <div class=\"card\">\n        <table>\n          <tr><th>Pergunta</th><th>Por quê</th></tr>\n          <tr><td class=\"nm\">Quem responde mais: segmentação A, B ou C?</td><td>O campo <code>segmentacao_1</code> está com <code>0</code> em 643 das 652 consultoras. Só 5 têm valor real — não dá pra cruzar.</td></tr>\n          <tr><td class=\"nm\">O nível da consultora explica quem responde?</td><td>Não. Ouro 4,4% e Diamante 4,2% — praticamente iguais.</td></tr>\n          <tr><td class=\"nm\">Por que as ${SILENCIO} caladas não responderam?</td><td>Em 471 delas não há nenhuma mensagem armazenada, nem a que o bot mandou. Não há pista do motivo.</td></tr>\n          <tr><td class=\"nm\">A consultora leu a mensagem?</td><td>Não há status de leitura/entrega em nenhuma tabela. \"Não respondeu\" não é o mesmo que \"não viu\".</td></tr>\n        </table>\n      </div>`;\n  },\n\n  vConversas(d2, x) {\n    const { convs, msgs, esc } = x;\n    const st = d2.state;\n    const aberta = st.conv;\n    if (!aberta) {\n      const linhas = convs.map(c => `\n        <tr class=\"clk\" data-conv=\"${esc(c.phone)}\" data-key=\"${esc(c.phone)}\">\n          <td class=\"nm\">${esc(c.nome)}</td>\n          <td><span class=\"pill\">${esc(c.cenario)}</span></td>\n          <td>${c.resposta_tipo==='robo'?'<span class=\"pill bad\">robô</span>':'pessoa'}</td>\n          <td class=\"mono\">${esc(c.lote)}</td>\n          <td class=\"mono\">${esc(c.status)}</td>\n          <td>${(c.falhas||[]).map(f=>`<span class=\"pill bad\">${esc(f)}</span>`).join(' ')}</td>\n          <td style=\"max-width:400px\">${esc(c.resumo||'').slice(0,150)}…</td>\n        </tr>`).join('');\n      return `\n        <p class=\"eyebrow\">Conversas reais</p>\n        <h1>Ler o que aconteceu e transformar em caso de teste</h1>\n        <p class=\"lede\">Abra uma conversa, leia na íntegra, e marque 👍 ou 👎 em qualquer resposta do bot.\n        Cada marcação vira um caso de teste.</p>\n        <div class=\"card\" style=\"padding:6px 10px\">\n          <table><tr><th>Consultora</th><th>Cenário</th><th>Quem respondeu</th><th>Lote</th><th>Status</th><th>Falhas</th><th>Resumo</th></tr>${linhas}</table>\n        </div>`;\n    }\n    const c = convs.find(z => z.phone === aberta) || {};\n    const linha = msgs.filter(m => m.phone === aberta).sort((a,b) => (a.seq||0)-(b.seq||0));\n    const bolhas = linha.length ? linha.map((m,i) => {\n      if (m.role === 'consultora') {\n        return `<div class=\"msg u\" data-key=\"c${i}\"><div><div class=\"bub\">${esc(m.text)}</div>\n          ${m.eh_autoresposta?`<div class=\"meta\" style=\"justify-content:flex-end\"><span class=\"pill bad\">auto-resposta</span>${(m.sinais_autoresposta||[]).map(s=>`<span class=\"pill\">${esc(s)}</span>`).join('')}</div>`:''}</div></div>`;\n      }\n      const ab = st.fbKey === aberta+'#'+m.seq;\n      return `<div class=\"msg b\" data-key=\"b${i}\"><div style=\"max-width:76%\">\n        <div class=\"bub\">${esc(m.text)}</div>\n        <div class=\"meta\">${m.faq?`<span class=\"pill\">FAQ ${esc(m.faq)}</span>`:''}</div>\n        <div class=\"acts\">\n          <button class=\"ico\" data-fbc=\"positivo\" data-phone=\"${esc(aberta)}\" data-seq=\"${m.seq}\" title=\"Boa — vira teste de regressão\">👍</button>\n          <button class=\"ico\" data-fbc=\"negativo\" data-phone=\"${esc(aberta)}\" data-seq=\"${m.seq}\" title=\"Ruim — vira teste de progressão\">👎</button>\n        </div>\n        ${ab?`<div class=\"fb\">\n          <label>Por que ${st.fbTipo==='positivo'?'está boa':'está errada'}?</label>\n          <textarea class=\"f-motivo\" rows=\"2\"></textarea>\n          ${st.fbTipo==='negativo'?`<label>Resposta ideal acordada pelo time</label><textarea class=\"f-ideal\" rows=\"3\"></textarea>`:''}\n          <label>Critério de aceite (o que o teste vai cobrar)</label>\n          <textarea class=\"f-criterio\" rows=\"2\" placeholder=\"ex: deve reconhecer a reclamação e encaminhar para suporte antes de qualquer CTA de venda\"></textarea>\n          <div class=\"row\"><button class=\"btn pri\" data-savec=\"1\">Salvar e criar teste</button><button class=\"btn\" data-cancel=\"1\">Cancelar</button></div>\n        </div>`:''}\n      </div></div>`;\n    }).join('') : `<div class=\"empty\">Esta conversa não tem mensagens replicadas.</div>`;\n\n    return `\n      <div class=\"row\" style=\"margin-bottom:14px\"><button class=\"btn\" data-back=\"1\">← todas as conversas</button></div>\n      <p class=\"eyebrow\">${esc(c.lote)} · cenário ${esc(c.cenario)} · ${esc(c.status)}</p>\n      <h1>${esc(c.nome)}</h1>\n      <p class=\"lede\">${esc(c.resumo||'')}</p>\n      ${(c.falhas||[]).length?`<div class=\"card warncard\" style=\"margin-bottom:15px\"><p><b>Falhas nesta conversa:</b> ${(c.falhas||[]).join(', ')}</p></div>`:''}\n      <div class=\"card\"><div class=\"chat\">${bolhas}</div></div>`;\n  },\n\n  vSimulador(d2, x) {\n    const { pers, esc } = x;\n    const st = d2.state;\n    const p = pers.find(z => z.persona_key === st.personaKey);\n    const ms = st.msgs || [];\n    const lista = pers.map(z => `<div class=\"persona ${z.persona_key===st.personaKey?'on':''}\" data-persona=\"${esc(z.persona_key)}\" data-key=\"${esc(z.persona_key)}\">\n      <div class=\"t\">${esc(z.nome)}</div><div class=\"d\">${esc(z.descricao)}</div></div>`).join('');\n\n    const bolhas = ms.length ? ms.map((m,i) => {\n      if (m.role === 'user') return `<div class=\"msg u\" data-key=\"s${i}\"><div class=\"bub\">${esc(m.text)}</div></div>`;\n      const ab = st.fbIdx === i;\n      return `<div class=\"msg b\" data-key=\"s${i}\"><div style=\"max-width:76%\">\n        <div class=\"bub\">${esc(m.text)}</div>\n        <div class=\"meta\">${m.faq?`<span class=\"pill\">FAQ ${esc(m.faq)}</span>`:''}${m.estado?`<span class=\"pill\">${esc(m.estado)}</span>`:''}\n          ${(m.checks_falhados||[]).map(f=>`<span class=\"pill bad\">${esc(f)}</span>`).join('')}\n          ${(m.checks_falhados||[]).length===0&&m.checks_rodados?'<span class=\"pill ok\">checks ok</span>':''}</div>\n        <div class=\"acts\">\n          <button class=\"ico\" data-fb=\"positivo\" data-i=\"${i}\">👍</button>\n          <button class=\"ico\" data-fb=\"negativo\" data-i=\"${i}\">👎</button>\n        </div>\n        ${ab?`<div class=\"fb\">\n          <label>Por que ${st.fbTipo==='positivo'?'está boa':'está errada'}?</label>\n          <textarea class=\"f-motivo\" rows=\"2\"></textarea>\n          ${st.fbTipo==='negativo'?`<label>Resposta ideal acordada</label><textarea class=\"f-ideal\" rows=\"3\"></textarea>`:''}\n          <label>Critério de aceite</label><textarea class=\"f-criterio\" rows=\"2\"></textarea>\n          <div class=\"row\"><button class=\"btn pri\" data-saves=\"1\">Salvar e criar teste</button><button class=\"btn\" data-cancel=\"1\">Cancelar</button></div>\n        </div>`:''}\n      </div></div>`;\n    }).join('') : `<div class=\"empty\">Escolha uma persona e escreva como se fosse ela.</div>`;\n\n    const ult = [...ms].reverse().find(m => m.role !== 'user');\n    const sm = ult && ult.state_machine;\n\n    return `\n      <p class=\"eyebrow\">Simulador</p>\n      <h1>Conversar com o bot como se fosse uma consultora</h1>\n      <p class=\"lede\">Converse no papel de uma consultora e veja como o bot responde. Nada é enviado para ninguém.</p>\n      ${st.erro?`<div class=\"card warncard\" style=\"margin-bottom:13px\"><p>${esc(st.erro)}</p></div>`:''}\n      <div class=\"split\">\n        <div>\n          <div class=\"card\">\n            <div class=\"row\" style=\"margin-bottom:12px\">\n              <b>${p?esc(p.nome):'Nenhuma persona escolhida'}</b>\n              <button class=\"btn\" data-reset=\"1\" style=\"margin-left:auto\">Recomeçar</button>\n            </div>\n            <div class=\"chat\">${bolhas}${st.carregando?'<div class=\"empty\">o bot está respondendo…</div>':''}</div>\n            <div class=\"composer\">\n              <textarea class=\"entrada\" placeholder=\"${p?'escreva como '+esc((p.nome||'').split(' ')[0])+'…':'escolha uma persona'}\" ${p?'':'disabled'}></textarea>\n              <button class=\"btn pri\" data-send=\"1\" ${p&&!st.carregando?'':'disabled'}>Enviar</button>\n            </div>\n          </div>\n        </div>\n        <div>\n          <div class=\"card\">\n            <b style=\"font-size:12px\">Personas</b>\n            <div style=\"margin-top:10px\">${lista}</div>\n          </div>\n          <div class=\"card\">\n            <b style=\"font-size:12px\">O que o bot entendeu</b>\n            <div style=\"margin-top:11px\">\n            ${sm?`<div class=\"kv\"><b>Estado</b>${esc(sm.estado||'—')}</div>\n              <div class=\"kv\"><b>Sub-estado</b>${esc(sm.sub_estado||'—')}</div>\n              <div class=\"kv\"><b>É recusa?</b>${sm.is_recusa?'sim':'não'}${sm.reason?' · '+esc(sm.reason):''}</div>\n              <div class=\"kv\"><b>Instrução ao redator</b>${esc(sm.instrucao||'—')}</div>`\n            :'<div class=\"note\">Aparece após a primeira resposta.</div>'}\n            </div>\n          </div>\n        </div>\n      </div>`;\n  },\n\n  vFeedbacks(d2, x) {\n    const { fbs, esc } = x;\n    const pos = fbs.filter(f => f.veredito === 'positivo').length;\n    const neg = fbs.filter(f => f.veredito === 'negativo').length;\n    const linhas = fbs.length ? fbs.map(f => `<tr data-key=\"${esc(f.feedback_id)}\">\n      <td>${f.veredito==='positivo'?'<span class=\"pill ok\">👍 regressão</span>':'<span class=\"pill bad\">👎 progressão</span>'}</td>\n      <td class=\"nm\">${esc(f.consultora||'—')}</td>\n      <td class=\"mono\">${esc(f.origem)}</td>\n      <td style=\"max-width:280px\">${esc(f.mensagem_bot||'').slice(0,160)}…</td>\n      <td style=\"max-width:240px\">${esc(f.motivo||'')}</td>\n      <td>${f.virou_teste?'<span class=\"pill ok\">virou teste</span>':'<span class=\"pill\">pendente</span>'}</td>\n    </tr>`).join('') : `<tr><td colspan=\"6\" class=\"empty\">Nenhum feedback ainda. Marque 👍 ou 👎 numa conversa real ou no simulador.</td></tr>`;\n    return `\n      <p class=\"eyebrow\">Feedbacks</p>\n      <h1>O que o time marcou</h1>\n      <p class=\"lede\">Cada 👍 vira um teste de regressão (isto tem que continuar funcionando) e cada 👎 vira um teste\n      de progressão (isto precisa passar a funcionar).</p>\n      <div class=\"kpis\">\n        <div class=\"kpi\"><div class=\"n\">${fbs.length}</div><div class=\"c\">feedbacks coletados</div></div>\n        <div class=\"kpi\"><div class=\"n\">${pos}</div><div class=\"c\">👍 viram regressão</div></div>\n        <div class=\"kpi w\"><div class=\"n\">${neg}</div><div class=\"c\">👎 viram progressão</div></div>\n      </div>\n      <div class=\"card\" style=\"padding:6px 10px\"><table>\n        <tr><th>Tipo</th><th>Consultora</th><th>Origem</th><th>Resposta do bot</th><th>Motivo</th><th>Estado</th></tr>${linhas}\n      </table></div>`;\n  },\n\n  vTestes(d2, x) {\n    const { tests, res, esc } = x;\n    const st = d2.state;\n    const ultimos = {};\n    res.forEach(r => { if (!ultimos[r.test_key] || r.criado_em > ultimos[r.test_key].criado_em) ultimos[r.test_key] = r; });\n    const passou = Object.values(ultimos).filter(r => r.veredito === 'passou').length;\n    const prog = tests.filter(t => t.tipo === 'progressao').length;\n    const linhas = tests.length ? tests.map(t => {\n      const u = ultimos[t.test_key];\n      return `<tr data-key=\"${esc(t.test_key)}\">\n        <td>${t.tipo==='progressao'?'<span class=\"pill bad\">progressão</span>':'<span class=\"pill ok\">regressão</span>'}</td>\n        <td class=\"nm\">${esc(t.titulo)}</td>\n        <td style=\"max-width:260px\">${esc(t.criterio_aceite||'')}</td>\n        <td class=\"mono\">${t.repeticoes||3}×</td>\n        <td>${u?(u.veredito==='passou'?`<span class=\"pill ok\">passou ${u.passou_n}/${u.execucoes}</span>`:`<span class=\"pill bad\">falhou ${u.passou_n}/${u.execucoes}</span>`):'<span class=\"pill\">nunca rodou</span>'}</td>\n        <td style=\"max-width:280px\">${esc(u?.juiz_justificativa||'')}</td>\n      </tr>`;\n    }).join('') : `<tr><td colspan=\"6\" class=\"empty\">Nenhum teste ainda. Eles nascem dos feedbacks 👍 / 👎.</td></tr>`;\n\n    return `\n      <p class=\"eyebrow\">Testes</p>\n      <h1>Rodar a suíte e ver o placar</h1>\n      <p class=\"lede\">Cada caso roda várias vezes, porque a mesma mensagem recebe respostas diferentes a cada tentativa.\n      O resultado é a <b>taxa</b> de rodadas aprovadas.</p>\n      <div class=\"kpis\">\n        <div class=\"kpi\"><div class=\"n\">${tests.length}</div><div class=\"c\">casos na suíte</div></div>\n        <div class=\"kpi w\"><div class=\"n\">${prog}</div><div class=\"c\">de progressão (nascem vermelhos)</div></div>\n        <div class=\"kpi\"><div class=\"n\">${passou}</div><div class=\"c\">passando na última execução</div></div>\n      </div>\n      <div class=\"row\" style=\"margin:16px 0\">\n        <button class=\"btn pri\" data-run=\"1\" ${st.rodando||!tests.length?'disabled':''}>${st.rodando?'rodando a suíte…':'Rodar todos os testes'}</button>\n        ${st.runInfo?`<span class=\"note\">última execução: ${esc(st.runInfo)}</span>`:''}\n      </div>\n      ${st.erroRun?`<div class=\"card warncard\" style=\"margin-bottom:13px\"><p>${esc(st.erroRun)}</p></div>`:''}\n      <div class=\"card\" style=\"padding:6px 10px\"><table>\n        <tr><th>Tipo</th><th>Caso</th><th>Critério de aceite</th><th>Rodadas</th><th>Último resultado</th><th>O juiz disse</th></tr>${linhas}\n      </table></div>`;\n  },\n\n  mounted(d2) {\n    const ABERTURA = 'Olá, {{Nome}}! Tudo bem?\\nVi que você já utiliza o Pag Emana Pay para ter mais prazo e flexibilidade nos seus pedidos Natura e Avon. Isso já ajuda muito, mas sabia que sua rotina pode simplificar ainda mais, ao abrir sua conta Emana Pay? 🚀\\n\\nTopa abrir a sua conta agora para aproveitar essas vantagens ou prefere que eu te explique melhor como funcionam essas ferramentas?';\n    if (!d2.state.view) d2.state.view = 'geral';\n    if (!d2.state.msgs) d2.state.msgs = [];\n\n    d2.on('[data-view]', 'click', e => {\n      d2.setState({ view: e.target.closest('[data-view]').dataset.view, conv: null, fbKey: null, fbIdx: null });\n    });\n    d2.on('[data-conv]', 'click', e => d2.setState({ conv: e.target.closest('[data-conv]').dataset.conv, fbKey: null }));\n    d2.on('[data-back]', 'click', () => d2.setState({ conv: null, fbKey: null }));\n    d2.on('[data-cancel]', 'click', () => d2.setState({ fbKey: null, fbIdx: null }));\n    d2.on('[data-persona]', 'click', e => d2.setState({\n      personaKey: e.target.closest('[data-persona]').dataset.persona,\n      msgs: [{ role:'agent', text: ABERTURA }], fbIdx: null, erro: null,\n      chatState: 'ESTADO_1', subState: '', resumo: ''\n    }));\n    d2.on('[data-reset]', 'click', () => d2.setState({\n      msgs: d2.state.personaKey ? [{ role:'agent', text: ABERTURA }] : [], fbIdx: null, erro: null,\n      chatState: 'ESTADO_1', subState: '', resumo: ''\n    }));\n    d2.on('[data-fb]', 'click', e => {\n      const b = e.target.closest('[data-fb]');\n      d2.setState({ fbIdx: Number(b.dataset.i), fbTipo: b.dataset.fb });\n    });\n    d2.on('[data-fbc]', 'click', e => {\n      const b = e.target.closest('[data-fbc]');\n      d2.setState({ fbKey: b.dataset.phone + '#' + b.dataset.seq, fbTipo: b.dataset.fbc, fbSeq: Number(b.dataset.seq) });\n    });\n\n    const perfil = p => ({\n      phone: p.telefone_ficticio || '5511900000000',\n      first_name: (p.nome||'').split(' ')[0], name: p.nome,\n      nivel_consultora: p.nivel, hab_pep: p.ja_usou_pep === true,\n      hab_aproximaae: p.ja_usou_aproximaae === true,\n      campaign_id: '6a0328b953f0fae2fbc989e5'\n    });\n\n    const enviar = async () => {\n      const ta = d2.$('.entrada');\n      const texto = (ta?.value || '').trim();\n      const p = (d2.data('personasDs')?.records() || []).find(z => z.persona_key === d2.state.personaKey);\n      if (!texto || !p || d2.state.carregando) return;\n      const hist = (d2.state.msgs||[]).map(m => ({ role: m.role === 'user' ? 'user' : 'agent', message:{ text: m.text }}))\n        .concat([{ role:'user', message:{ text: texto }}]);\n      d2.setState({ msgs: (d2.state.msgs||[]).concat([{ role:'user', text: texto }]), carregando:true, erro:null, fbIdx:null });\n      if (ta) ta.value = '';\n      try {\n        const r = await d2.rush('brainRush').invoke({\n          message: texto, all_messages: hist, user_data: perfil(p), started_by_user:false,\n          chat_state_inicial: d2.state.chatState || 'ESTADO_1',\n          sub_state_inicial: d2.state.subState || '', resumo_inicial: d2.state.resumo || ''\n        });\n        const o = (r && r.data) ? r.data : r;\n        d2.setState({\n          carregando:false,\n          chatState: o.state_machine?.estado || d2.state.chatState,\n          subState: o.state_machine?.sub_estado || '', resumo: o.state_machine?.resumo || '',\n          msgs: (d2.state.msgs||[]).concat([{ role:'agent', text:o.resposta, faq:o.faq,\n            estado:o.state_machine?.estado, state_machine:o.state_machine,\n            checks_rodados:o.checks_rodados, checks_falhados:o.checks_falhados, entrada:texto }])\n        });\n      } catch (err) { d2.setState({ carregando:false, erro:'Falha ao chamar o bot: ' + (err?.message||err) }); }\n    };\n    d2.on('[data-send]', 'click', enviar);\n    d2.on('.entrada', 'keydown', e => { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); enviar(); } });\n\n    const gravar = async (payload, idealTexto, criterioTexto) => {\n      const fid = 'fb-' + Date.now();\n      await d2.data('feedbacksDs').create(Object.assign({ feedback_id: fid, criado_em: new Date().toISOString() }, payload));\n      const tipo = payload.veredito === 'positivo' ? 'regressao' : 'progressao';\n      await d2.data('testsDs').create({\n        test_key: 'tc-' + Date.now(),\n        titulo: (payload.consultora ? payload.consultora + ' — ' : '') + (payload.mensagem_usuario || '').slice(0, 60),\n        tipo, persona_key: d2.state.personaKey || '',\n        user_data: payload.user_data || {},\n        historico: payload.historico || [],\n        entrada: payload.mensagem_usuario || '',\n        resposta_referencia: payload.mensagem_bot || '',\n        resposta_ideal: idealTexto || payload.mensagem_bot || '',\n        criterio_aceite: criterioTexto || '',\n        cenario: payload.cenario || '', origem_feedback: fid,\n        status: tipo === 'progressao' ? 'falhando' : 'novo',\n        repeticoes: 3, taxa_minima: 0.9, chat_state_inicial: 'ESTADO_1',\n        criado_em: new Date().toISOString(), ativo: true\n      });\n    };\n\n    d2.on('[data-saves]', 'click', async () => {\n      const i = d2.state.fbIdx, m = (d2.state.msgs||[])[i];\n      if (m == null) return;\n      const p = (d2.data('personasDs')?.records()||[]).find(z => z.persona_key === d2.state.personaKey);\n      const hist = (d2.state.msgs||[]).slice(0, i).map(z => ({ role: z.role==='user'?'user':'agent', message:{ text:z.text }}));\n      try {\n        await gravar({\n          origem:'simulador', consultora: p?p.nome:'', seq:i,\n          mensagem_usuario: m.entrada||'', mensagem_bot: m.text||'',\n          veredito: d2.state.fbTipo, motivo: d2.$('.f-motivo')?.value||'',\n          resposta_ideal: d2.$('.f-ideal')?.value||'', cenario: p?p.cenario_origem:'',\n          virou_teste:true, user_data: p?perfil(p):{}, historico: hist\n        }, d2.$('.f-ideal')?.value, d2.$('.f-criterio')?.value);\n        const nv = (d2.state.msgs||[]).slice(); nv[i] = Object.assign({}, nv[i], { fb: d2.state.fbTipo });\n        d2.setState({ msgs:nv, fbIdx:null });\n      } catch (err) { d2.setState({ erro:'Não consegui salvar: ' + (err?.message||err) }); }\n    });\n\n    d2.on('[data-savec]', 'click', async () => {\n      const phone = d2.state.conv, seq = d2.state.fbSeq;\n      const todas = (d2.data('mensagensDs')?.records()||[]).filter(z => z.phone === phone).sort((a,b)=>(a.seq||0)-(b.seq||0));\n      const m = todas.find(z => z.seq === seq);\n      const antes = todas.filter(z => (z.seq||0) < seq);\n      const ultimaUser = [...antes].reverse().find(z => z.role === 'consultora');\n      const c = (d2.data('conversasDs')?.records()||[]).find(z => z.phone === phone) || {};\n      if (!m) return;\n      try {\n        await gravar({\n          origem:'conversa-real', phone, consultora: c.nome||'', seq,\n          mensagem_usuario: ultimaUser?ultimaUser.text:'', mensagem_bot: m.text||'',\n          veredito: d2.state.fbTipo, motivo: d2.$('.f-motivo')?.value||'',\n          resposta_ideal: d2.$('.f-ideal')?.value||'', cenario: c.cenario||'',\n          virou_teste:true,\n          user_data:{ phone, first_name:(c.nome||'').split(' ')[0], name:c.nome, nivel_consultora:c.nivel,\n            hab_pep:true, hab_aproximaae:false, campaign_id:'6a0328b953f0fae2fbc989e5' },\n          historico: antes.map(z => ({ role: z.role==='consultora'?'user':'agent', message:{ text:z.text }}))\n        }, d2.$('.f-ideal')?.value, d2.$('.f-criterio')?.value);\n        d2.setState({ fbKey:null });\n      } catch (err) { d2.setState({ erro:'Não consegui salvar: ' + (err?.message||err) }); }\n    });\n\n    d2.on('[data-run]', 'click', async () => {\n      if (d2.state.rodando) return;\n      d2.setState({ rodando:true, erroRun:null });\n      try {\n        const r = await d2.rush('runnerRush').invoke({});\n        const o = (r && r.data) ? r.data : r;\n        d2.setState({ rodando:false, runInfo: `${o?.run?.passou||0} de ${o?.run?.total||0} passaram` });\n        await d2.data('resultadosDs').refresh();\n        await d2.data('runsDs').refresh();\n      } catch (err) { d2.setState({ rodando:false, erroRun:'Falha ao rodar a suíte: ' + (err?.message||err) }); }\n    });\n  }\n}"}},"personasDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"personasDs"}}}},"conversasDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"conversasDs"}}}},"mensagensDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"mensagensDs"}}}},"feedbacksDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"feedbacksDs"}}}},"checksDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"checksDs"}}}},"testsDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"testsDs"}}}},"runsDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"runsDs"}}}},"resultadosDs":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"resultadosDs"}}}},"brainRush":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"brainRush"}}}},"runnerRush":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"runnerRush"}}}}}}}}}},{"_id":"5ecd05ded68ce41360f74b43","component":"data2-core-types@Component","params":{"extendable":{"placeholder":"children"},"component":"Block","package":"data2-core-primitives"}},{"_id":"5f494791a575399a45020f87","component":"data2-core-types@Component","params":{"definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"html@input","params":{"style":{"width":"100%","height":"100%","boxSizing":"border-box","background":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"checkbox"}}],"then":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"comparisonSubject":true}}],"then":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"checkboxFill"}}}},"rgba(0,118,255,1)"]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"content":"none"},"component":"data2-core-primitives@String"}}},"else":{"params":{"content":"none"},"component":"data2-core-primitives@String"}}},"color":{"params":{"reference":"super.textColor"},"component":"data2-core-types@Reference"},"border":"none","outline":"none","appearance":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"orient","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"vertical"}}],"then":"slider-vertical","else":"none"}},"cursor":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"super.cursor"}}}},{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":true}}],"then":{"component":"data2-core-primitives@String","params":{"content":"not-allowed"}},"else":{"component":"data2-core-primitives@String","params":{"content":"auto"}}}}]},"component":"data2-core-logical-operators@Or"},"fontWeight":{"component":"data2-core-primitives@String","params":{"content":"inherit"}},"paddingLeft":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"comparisonSubject":{"params":{},"component":"data2-core-primitives@Undefined"},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.left"}}}}},"component":"data2-core-comparison-operators@Different"}],"then":{"params":{"portions":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.left"}}}},{"component":"data2-core-primitives@String","params":{"content":"px"}}]},"component":"data2-core-functions@StringConcat"}}},"paddingRight":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"comparisonSubject":{"params":{},"component":"data2-core-primitives@Undefined"},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.right"}}}}},"component":"data2-core-comparison-operators@Different"}],"then":{"params":{"portions":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"padding.right"}}}},{"component":"data2-core-primitives@String","params":{"content":"px"}}]},"component":"data2-core-functions@StringConcat"}}},"caretColor":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"caretColor"}}}},"textAlign":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"super.textFormat.textAlign"}}},"component":"data2-core-types@Reference"}},"tabIndex":{"component":"data2-core-types@Reference","params":{"reference":"tabIndex","source":"VIRTUAL_COMPONENT_PARAMS"}},"step":{"component":"data2-core-types@Reference","params":{"reference":"step","source":"VIRTUAL_COMPONENT_PARAMS"}},"min":{"component":"data2-core-types@Reference","params":{"reference":"min","source":"VIRTUAL_COMPONENT_PARAMS"}},"max":{"component":"data2-core-types@Reference","params":{"reference":"max","source":"VIRTUAL_COMPONENT_PARAMS"}},"maxLength":{"params":{"then":{"params":{},"component":"data2-core-primitives@Undefined"},"compare":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":"maxLength","source":"VIRTUAL_COMPONENT_PARAMS"}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":""}}},"component":"data2-core-comparison-operators@Equal"}],"else":{"component":"data2-core-types@Reference","params":{"reference":"maxLength","source":"VIRTUAL_COMPONENT_PARAMS"}}},"component":"data2-core-flow@If"},"orient":{"component":"data2-core-types@Reference","params":{"reference":"orient","source":"VIRTUAL_COMPONENT_PARAMS"}},"type":{"component":"data2-core-types@Reference","params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"}},"placeholder":{"component":"data2-core-logical-operators@Or","params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":"placeholder","source":"VIRTUAL_COMPONENT_PARAMS"}},{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}}]}},"value":{"params":{"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"defaultCase":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}},"mask":{"component":"data2-core-types@Reference","params":{"reference":"mask","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"date"}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":"YYYY-MM-DD"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"month"}}}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":{"component":"data2-core-primitives@String","params":{"content":"YYYY-MM"}}}}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"datetime-local"}}}},"value":{"component":"data2-core-functions@DateFormat","params":{"date":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"format":{"component":"data2-core-primitives@String","params":{"content":"YYYY-MM-DDTHH:mm"}}}}}}]},"component":"data2-core-flow@Switch"},"onChange":{"component":"data2-core-types@DataLinkSetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}},"recordUpsert":{"component":"data2-core-types@Reference","params":{"reference":"recordUpsert","source":"VIRTUAL_COMPONENT_PARAMS"}},"onChange":{"component":"data2-core-types@Reference","params":{"reference":"onChange","source":"VIRTUAL_COMPONENT_PARAMS"}},"mask":{"component":"data2-core-types@Reference","params":{"reference":"mask","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"defaultChecked":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Identical","params":{"subject":{"params":{"reference":"type","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"comparisonSubject":"checkbox"}}],"then":{"component":"data2-core-types@DataLinkGetter","params":{"dataset":{"component":"data2-core-types@Reference","params":{"reference":"dataset","source":"VIRTUAL_COMPONENT_PARAMS"}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field","source":"VIRTUAL_COMPONENT_PARAMS"}},"record":{"component":"data2-core-types@Reference","params":{"reference":"record","source":"VIRTUAL_COMPONENT_PARAMS"}}}},"else":""}},"field":{"component":"data2-core-types@Reference","params":{"reference":"field"}},"opacity":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"}],"then":0.38,"else":1}},"disabled":{"params":{"reference":"disabled","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},"autoComplete":{"component":"data2-core-flow@If","params":{"compare":[{"component":"data2-core-comparision-operators@Equal","params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":"builder"}},"comparisonSubject":true}}],"then":"new-password","else":{"params":{"compare":{"params":{"comparisonSubject":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"subject":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"autoComplete"}}},"component":"data2-core-types@Reference"}},"component":"data2-core-comparison-operators@Identical"},"else":{"params":{"components":[{"params":{"reference":"autoComplete","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"},{"component":"data2-core-primitives@String","params":{"content":"off"}}]},"component":"data2-core-logical-operators@Or"}},"component":"data2-core-flow@If"}}},"data-lpignore":{"component":"data2-core-flow@If","params":{"compare":[{"params":{"reference":"autoComplete","source":"VIRTUAL_COMPONENT_PARAMS"},"component":"data2-core-types@Reference"}],"then":"","else":"true"}},"onFocus":{"component":"data2-core-types@Reference","params":{"reference":"onFocus","source":"VIRTUAL_COMPONENT_PARAMS"}},"onBlur":{"component":"data2-core-types@Reference","params":{"reference":"onBlur","source":"VIRTUAL_COMPONENT_PARAMS"}},"onKeyPress":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"onKeyPress"}}}},"autoCapitalize":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"autoCapitalize"}}}},"spellCheck":{"params":{"expression":{"params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"spellCheck"}}},"component":"data2-core-types@Reference"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"value":{"component":"data2-core-primitives@String","params":{"content":"true"}}}},{"component":"data2-core-flow@Case","params":{"expression":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"value":{"component":"data2-core-primitives@String","params":{"content":"false"}}}}]},"component":"data2-core-flow@Switch"}}}}},"component":"DataFieldBlock","package":"data2-blocks","extends":"data2-core-primitives@Block"}},{"_id":"69e126a77c37ffb320ba0146","component":"data2-core-types@Component","system":"69bd2cbc4c2708c13a0b572b","params":{"extends":"data2-core-primitives@Block","package":"natura-pay-crm","component":"tptkXZC-d_v2vEYrE3ya8","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"tptkXZC-d_v2vEYrE3ya8"}}}}}},{"_id":"5ed9bed7b9e0891ce913e884","component":"data2-core-types@Component","params":{"package":"data2-core","component":"DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}},{"_id":"5f472ae463c680de4ff296e9","component":"data2-core-types@Component","params":{"package":"data2-core","component":"Data2TableDataSource","extends":"data2-core@DataSource","renderable":{"dimensions":{"disabled":false,"component":"data2-core-types@Dimensions","params":{"width":1366,"exactWidth":false,"exactHeight":false,"height":768}}}}}]}},{"reference":"ExternalComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"_id":"5f060d9b1ca96def42f3c40a","displayName":"Builder AuthStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"credentials":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"verifier":{"component":"data2-core-types@DataSetReference","params":{"reference":"UsersDataSet"}},"sessionShared":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"nR6Q9d7qdaPtZhJ28Q8Dy"},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true,"reference":"yPCJBTKo8q1Mw0B_3Kpwl"},"component":"data2-core-types@ArtboardReference"}}},"session":[{"component":"data2-core-types@DataSetColumnReference","params":{"column":"name"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}},{"component":"data2-core-types@DataSetColumnReference","params":{"column":"status"}}],"sessionMetadata":{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},{"params":{"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"active"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.status"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is active user"}]},"component":"data2-core-logical-operators@And","displayName":"is active and has _id"}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $user"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-primitives@String","params":{"content":"@data2.app"}},"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user.email"}}}}},"component":"data2-core-functions@Includes","displayName":"isData2User"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}},"component":"data2-core-flow@Step"},{"params":{"action":{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.d2_app"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"management"}}]},"component":"data2-core-functions@Includes","displayName":"isData2App Exception"},"resultName":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}},"component":"data2-core-flow@Step"},{"params":{"resultName":{"component":"data2-core-primitives@String","params":{"content":"has_access"}},"action":{"params":{"compare":{"params":{"components":[{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_user"}}}},{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"is_data2_app_exception"}}}}]},"component":"data2-core-logical-operators@Or"},"else":{"params":{"actions":[{"params":{"actions":[{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"component":"data2-core-logical-operators@Not"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check $metadata.system"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":"filter","args":[{"_id":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"compare":{"params":{"subject":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records.length"}}}}},"component":"data2-core-logical-operators@Not","displayName":"systems not found"},"then":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"}},"component":"data2-core-flow@If","displayName":"check system found"},{"params":{"actions":[{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"organization":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"cursor.current.organization._id"}}}}}]},"component":"data2-core-types@Interaction"},{"params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":"filter","args":[{"user":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$user._id"}}}},"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}}]},"component":"data2-core-types@Interaction"}]},"component":"data2-core-flow@Parallel"}]},"component":"data2-core-flow@Series","displayName":"common setup"},{"params":{"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"},"else":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"compare":{"params":{"components":{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"WuUa-VKHhW9uYU0E3-mJ8"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"mapper":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"system"}}],"body":{"params":{"expression":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.visibility"}}}},"defaultCase":{"params":{"content":false},"component":"data2-core-primitives@Boolean"},"cases":[{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"public"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"billing-owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}},{"component":"data2-core-primitives@String","params":{"content":"member"}}]},"component":"data2-core-functions@Includes","displayName":"has role with access"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"comparisonSubject":{"component":"data2-core-primitives@String","params":{"content":"collaborator"}}},"component":"data2-core-comparison-operators@Equal","displayName":"is collaborator"}]},"component":"data2-core-logical-operators@And","displayName":"is org member and collaborator"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is collaborator"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is collaborator and has system access"}]},"component":"data2-core-logical-operators@Or"}}},{"component":"data2-core-flow@Case","params":{"expression":{"component":"data2-core-primitives@String","params":{"content":"private"}},"value":{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"components":[{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal","displayName":"is org member"},{"params":{"pattern":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.role"}}}},"subject":[{"component":"data2-core-primitives@String","params":{"content":"owner"}},{"component":"data2-core-primitives@String","params":{"content":"admin"}}]},"component":"data2-core-functions@Includes","displayName":"is owner/admin"}]},"component":"data2-core-logical-operators@And","displayName":"has org member role with access"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is owner/admin"},{"params":{"components":[{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"Ok6Tsu5XkS7r8PyW_7TyW"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"member"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"member.organization._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system.organization._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"is org member"},{"params":{"array":{"params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NqKAY34n2ffFL64zamp7t"}},"prop":{"component":"data2-core-primitives@String","params":{"content":"data.records"}}},"component":"data2-core-types@Getter"},"filter":{"disabled":false,"component":"data2-core-functions@Function","params":{"parameters":[{"component":"data2-core-primitives@String","params":{"content":"access"}}],"body":{"params":{"subject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"access.system._id"}}}},"comparisonSubject":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"system._id"}}}}},"component":"data2-core-comparison-operators@Equal"}}}},"component":"data2-core-functions@ArrayFind","displayName":"has system access"}]},"component":"data2-core-logical-operators@And","displayName":"is member and has system access"}]},"component":"data2-core-logical-operators@Or","displayName":"is owner/admin or has system access"}}}]},"component":"data2-core-flow@Switch"}}}},"component":"data2-core-functions@ArrayMap"}},"component":"data2-core-logical-operators@And","displayName":"has org member for all systems in request"}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"then":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}},"component":"data2-core-flow@If"}},"component":"data2-core-flow@Step"},{"params":{"then":{"system":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"$metadata.system"}}}}},"else":{"params":{"message":{"component":"data2-core-primitives@String","params":{"content":"Invalid Credentials"}},"code":{"component":"data2-core-primitives@String","params":{"content":"401"}}},"component":"data2-core-types@Error"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"has_access"}}}}},"component":"data2-core-flow@If"}]},"component":"data2-core-flow@Series"},"sessionExpiresIn":{"component":"data2-core-primitives@Number","params":{"content":604800}},"sessionRenewal":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"identityProviders":[{"provider":{"component":"data2-core-primitives@String","params":{"content":"GOOGLE"}},"clientId":{"component":"data2-core-primitives@String","params":{"content":"55470861603-22pvfc1t49lp8cjnbfk71s5ct9hp1q1v.apps.googleusercontent.com"}}}]},"reference":"Data2BuilderAuthentication","updatedAt":"2026-08-06T19:31:23.557Z"},{"_id":"5f060ee51ca96def42f3fbd1","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"UsersTableDataSource"}},"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":1}}}},"reference":"UsersDataSet","updatedAt":"2026-03-04T21:16:40.291Z"},{"_id":"68f938cf5fb002e33752a43d","displayName":"InternalApplicationsAuthenticationStrategy","component":"data2-core@AuthenticationStrategy","system":"5e3b796d6228227ca637d0f4","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"InternalApplicationsVerifierDataSet"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"secret"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}],"session":[{"component":"data2-core-types@FieldReference","params":{"key":"application"}},{"component":"data2-core-types@FieldReference","params":{"key":"secret"}},{"component":"data2-core-types@FieldReference","params":{"key":"status"}}]},"reference":"InternalApplicationsAuthenticationStrategy","updatedAt":"2025-10-22T20:08:54.442Z","createdAt":"2025-10-22T20:04:31.198Z"},{"component":"data2-core@DataSet","reference":"SessionsDataSet","params":{"requiresConfirmation":false,"pk":"key","datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"data2sessionsdatasource"}}}},{"reference":"UsersTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}},{"component":"data2-core@ServerSessionsDataSource","reference":"data2sessionsdatasource","params":{}},{"_id":"5f16172a0528b92601890f85","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":{"component":"data2-core-primitives@Number","params":{"content":10000}}},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"DataComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"DataComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:12.831Z","createdAt":"2020-07-20T22:14:02.097Z"},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"69dd35de3ee304ca7269b513","component":"data2-core@AuthenticationStrategy","system":"69bd2cbc4c2708c13a0b572b","params":{"resetPassword":{"resetEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}},"resetSuccessEmail":{"artboard":{"params":{"preventEvaluation":true},"component":"data2-core-types@ArtboardReference"}}},"verifier":{"disabled":false,"component":"data2-core-types@DataSetReference","params":{"reference":"JbI9yaVQT7YppFeo8r1IX"}},"credentials":[{"component":"data2-core-types@FieldReference","params":{"key":"email"}},{"component":"data2-core-types@FieldReference","params":{"key":"password"}}],"email":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"email"}},"password":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"password"}}},"reference":"QqWi4ePQDBVuRh0MHZBRT"},{"_id":"6a8496a71f2a0876f45f94b1","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"t2A9EdVGsy2TAInGA9cBk"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":20},"fields":[{"component":"data2-core-types@FieldReference","params":{"key":"email"}},{"component":"data2-core-types@FieldReference","params":{"key":"password"}}]},"reference":"JbI9yaVQT7YppFeo8r1IX","deleteMetadata":{}},{"_id":"69dd35fa3ee304ca7269b515","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"t2A9EdVGsy2TAInGA9cBk","multi":["create"],"schema":[{"component":"data2-core-types@Field","params":{"title":"email","key":"email","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"password","key":"password","component":"data2-core-types@Password"}},{"component":"data2-core-types@Field","params":{"title":"nome","key":"nome","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"initials","key":"initials","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"title":"role","key":"role","component":"data2-core-primitives@String","validation":{"oneOf":{"component":"data2-core-primitives@String","params":{"content":"AGENT,ADMIN"}}}}}]},"reference":"t2A9EdVGsy2TAInGA9cBk"},{"_id":"6aacd49c01be65c4a08a0e05","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-run-results"}}},"reference":"qa-run-resultsDataSet","deleteMetadata":{}},{"_id":"6aacd490e3e5a77d93e56452","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-runs"}}},"reference":"qa-runsDataSet","deleteMetadata":{}},{"_id":"6aacd485263c3723046fd0cd","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-tests"}}},"reference":"qa-testsDataSet","deleteMetadata":{}},{"_id":"6aacd4c28896e6d9b559f641","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-checks"}}},"reference":"qa-checksDataSet","deleteMetadata":{}},{"_id":"6aacd47aad994b41d42b0a9c","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-feedbacks"}}},"reference":"qa-feedbacksDataSet","deleteMetadata":{}},{"_id":"6aacd5123dfd8e27bf4f98fe","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-mensagens"}}},"reference":"qa-mensagensDataSet","deleteMetadata":{}},{"_id":"6aacd5093dfd8e27bf4f98f2","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-conversas"}}},"reference":"qa-conversasDataSet","deleteMetadata":{}},{"_id":"6aacd45fad994b41d42b0a7a","component":"data2-core@DataSet","system":"69bd2cbc4c2708c13a0b572b","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"qa-personas"}}},"reference":"qa-personasDataSet","deleteMetadata":{}},{"_id":"6aacd49bad994b41d42b0ab7","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-run-results","schema":[{"component":"data2-core-types@Field","params":{"key":"run_key","title":"Execução","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"test_key","title":"Teste","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"titulo","title":"Título do teste","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"tipo","title":"Tipo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"entrada","title":"Entrada","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"resposta_obtida","title":"Resposta obtida agora","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"veredito","title":"Veredito","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"checks_resultado","title":"Resultado dos checks","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"checks_passou","title":"Checks passaram","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"juiz_veredito","title":"Veredito do juiz","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"juiz_confianca","title":"Confiança do juiz","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"juiz_justificativa","title":"Justificativa do juiz","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"juiz_raw","title":"Retorno bruto do juiz","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"duracao_ms","title":"Duração (ms)","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"criado_em","title":"Criado em","component":"data2-core-primitives@Date"}}]},"reference":"qa-run-results","deleteMetadata":{}},{"_id":"6aacd48e8896e6d9b559f60a","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-runs","schema":[{"component":"data2-core-types@Field","params":{"key":"run_key","title":"Chave da execução","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"criado_em","title":"Rodado em","component":"data2-core-primitives@Date"}},{"component":"data2-core-types@Field","params":{"key":"criado_por","title":"Rodado por","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"escopo","title":"Escopo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"total","title":"Total de testes","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"passou","title":"Passaram","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"falhou","title":"Falharam","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"erro","title":"Com erro","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"duracao_ms","title":"Duração (ms)","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"nota","title":"Nota da execução","component":"data2-core-primitives@String"}}]},"reference":"qa-runs","deleteMetadata":{}},{"_id":"6aacd4858896e6d9b559f5fd","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-tests","schema":[{"component":"data2-core-types@Field","params":{"key":"test_key","title":"Chave do teste","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"titulo","title":"Título","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"tipo","title":"Tipo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"persona_key","title":"Persona","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"user_data","title":"Perfil enviado ao bot","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"historico","title":"Histórico antes da entrada","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"entrada","title":"Mensagem de entrada","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"resposta_referencia","title":"Resposta que o bot deu","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"resposta_ideal","title":"Resposta ideal acordada","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"criterio_aceite","title":"Critério de aceite","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"checks","title":"Checks determinísticos","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"cenario","title":"Cenário","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"falha_code","title":"Código da falha","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"origem_feedback","title":"Feedback de origem","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"status","title":"Status atual","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"ultimo_run","title":"Última execução","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"ultimo_resultado_em","title":"Resultado em","component":"data2-core-primitives@Date"}},{"component":"data2-core-types@Field","params":{"key":"criado_por","title":"Criado por","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"criado_em","title":"Criado em","component":"data2-core-primitives@Date"}},{"component":"data2-core-types@Field","params":{"key":"ativo","title":"Ativo","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"repeticoes","title":"Rodadas por execução","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"taxa_minima","title":"Taxa mínima para passar","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"chat_state_inicial","title":"Estado inicial do bot","component":"data2-core-primitives@String"}}]},"reference":"qa-tests","deleteMetadata":{}},{"_id":"6aacd4c23ec5fe1aff65573c","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-checks","schema":[{"component":"data2-core-types@Field","params":{"key":"code","title":"Código","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"nome","title":"Nome da falha","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"descricao","title":"O que é","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"implicacao","title":"O que fazer","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"regex_proibido","title":"Regex que NUNCA pode aparecer","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"aplica_em","title":"Aplica em","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"severidade","title":"Severidade","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"automatico","title":"Verificável por regex","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"ordem","title":"Ordem","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"ativo","title":"Ativo","component":"data2-core-primitives@Boolean"}}]},"reference":"qa-checks","deleteMetadata":{}},{"_id":"6aacd47a850d506c9bd36503","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-feedbacks","schema":[{"component":"data2-core-types@Field","params":{"key":"feedback_id","title":"ID","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"origem","title":"Origem","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"sim_id","title":"ID da simulação","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"phone","title":"Telefone (conversa real)","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"consultora","title":"Consultora","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"seq","title":"Ordem da mensagem","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"mensagem_usuario","title":"O que a consultora disse","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"mensagem_bot","title":"O que o bot respondeu","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"veredito","title":"Joia ou não","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"motivo","title":"Por quê","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"resposta_ideal","title":"Resposta ideal acordada","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"falha_code","title":"Código da falha","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"cenario","title":"Cenário","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"autor","title":"Quem marcou","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"criado_em","title":"Criado em","component":"data2-core-primitives@Date"}},{"component":"data2-core-types@Field","params":{"key":"virou_teste","title":"Virou teste","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"test_key","title":"Teste gerado","component":"data2-core-primitives@String"}}]},"reference":"qa-feedbacks","deleteMetadata":{}},{"_id":"6aacd5123dfd8e27bf4f98f9","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-mensagens","schema":[{"component":"data2-core-types@Field","params":{"key":"phone","title":"Telefone","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"nome","title":"Consultora","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"seq","title":"Ordem","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"role","title":"Quem falou","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"text","title":"Texto","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"faq","title":"FAQ acionada","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"cenario","title":"Cenário","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"eh_autoresposta","title":"É auto-resposta","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"sinais_autoresposta","title":"Sinais de auto-resposta","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"falhas","title":"Falhas nesta mensagem","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"snapshot_em","title":"Réplica feita em","component":"data2-core-primitives@Date"}}]},"reference":"qa-mensagens","deleteMetadata":{}},{"_id":"6aacd5093ec5fe1aff655759","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-conversas","schema":[{"component":"data2-core-types@Field","params":{"key":"phone","title":"Telefone","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"nome","title":"Consultora","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"status","title":"Status","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"state","title":"Estado do bot","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"cenario","title":"Cenário","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"resposta_tipo","title":"Quem respondeu","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"lote","title":"Lote de disparo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"campanha","title":"Campanha","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"nivel","title":"Nível","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"refuse_reason","title":"Motivo de recusa","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"n_falas","title":"Falas dela","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"n_bot","title":"Mensagens do bot","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"falhas","title":"Falhas detectadas","component":"data2-core-primitives@Array"}},{"component":"data2-core-types@Field","params":{"key":"resumo","title":"Resumo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"snapshot_em","title":"Réplica feita em","component":"data2-core-primitives@Date"}}]},"reference":"qa-conversas","deleteMetadata":{}},{"_id":"6aacd45f01be65c4a08a0dd7","component":"data2-core@Data2TableDataSource","system":"69bd2cbc4c2708c13a0b572b","params":{"table":"qa-personas","schema":[{"component":"data2-core-types@Field","params":{"key":"persona_key","title":"Chave","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"nome","title":"Nome da persona","component":"data2-core-primitives@String","required":true}},{"component":"data2-core-types@Field","params":{"key":"descricao","title":"Traço central","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"telefone_ficticio","title":"Telefone fictício","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"nivel","title":"Nível da consultora","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"segmentacao","title":"Segmentação","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"ja_usou_pep","title":"Já usou PEP","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"ja_usou_superlink","title":"Já usou SuperLink","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"ja_usou_aproximaae","title":"Já usou Aproxima aê","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"contratou_seg_estoque","title":"Contratou Seguro Estoque","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"elegivel_pep","title":"Elegível PEP","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"cenario_origem","title":"Cenário de origem","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"notas","title":"Notas","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"ativo","title":"Ativa","component":"data2-core-primitives@Boolean"}}]},"reference":"qa-personas","deleteMetadata":{}}]}},{"_id":"5f1600b70528b92601890f75","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ServiceComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ServiceComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:20.208Z","createdAt":"2020-07-20T20:38:15.436Z"},{"_id":"5f1602190528b92601890f7d","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"pagination":{"size":40000},"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ComponentInstancesTableDataSource"}},"sort":{"_id":1},"pk":"_id","autoEdit":true,"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}},"policies":{"params":{"allowGet":{"component":"data2-core-primitives@Boolean","params":{"content":true}}},"component":"data2@hkXy-UhMjhyfptdE6_fpW"}},"reference":"ComponentInstancesDataSet","updatedAt":"2025-11-06T21:07:07.089Z","createdAt":"2020-07-20T20:44:09.350Z"},{"_id":"5f16017f0528b92601890f7a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"FileComponentInstancesDataSet","updatedAt":"2023-08-03T16:08:18.193Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"5f1601990528b92601890f7b","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"ApplicationsTableDataSource"}},"pk":"_id","autoEdit":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"master":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"params":{"column":"_id"},"component":"data2-core-types@DataSetColumnReference"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"ApplicationsDataSet","updatedAt":"2022-12-13T21:51:13.995Z","createdAt":"2020-07-20T20:42:01.657Z"},{"_id":"60ddc1bbda3861ca65407c5a","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"domain":{"component":"data2-core-types@Reference","params":{"reference":"clientApplicationDomain"}}},"pagination":{"size":1},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"}},"reference":"OneFileComponentInstancesDataSet","updatedAt":"2022-02-09T19:44:38.036Z","createdAt":"2020-07-20T20:41:35.797Z"},{"_id":"63ee3d38b8c9838c62fb05fb","displayName":"DriveFileComponentInstancesDataSet","component":"data2-core@DataSet","system":"5e3b796d6228227ca637d0f4","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"FileComponentInstancesTableDataSource"}},"pk":"_id","autoEdit":true,"filter":{"component":{"component":"data2-core-primitives@String","params":{"content":"data2-core@Drive"}}},"master":{"params":{"dataset":{"component":"data2-core-types@DataSetReference","params":{"reference":"SystemsDataSet"}},"localField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"system"}},"masterField":{"component":"data2-core-types@DataSetColumnReference","params":{"column":"_id"}}},"component":"data2-core-types@DataSetMaster"},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":false}}},"reference":"DriveFileComponentInstancesDataSet","updatedAt":"2025-12-04T21:58:32.367Z","createdAt":"2023-02-16T14:27:07.797Z"},{"reference":"ServiceComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6aace6d99d64232a9b7c19ac","component":"data2-rush@HTTPListener","reference":"qa-run-tests","system":"69bd2cbc4c2708c13a0b572b","params":{},"deleteMetadata":{}},{"_id":"6aace280263c3723046fdafa","component":"data2-rush@HTTPListener","reference":"qa-brain-turn","system":"69bd2cbc4c2708c13a0b572b","params":{},"deleteMetadata":{}}]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6aace4ae0a79d2d193a5695e","component":"data2-core-primitives@Router","system":"69bd2cbc4c2708c13a0b572b","displayName":"QA Router — Dinâmica e Testes","params":{"routerType":{"component":"data2-core-primitives@String","params":{"content":"browser"}},"routes":[{"component":"data2-core-primitives@Route","params":{"path":{"component":"data2-core-primitives@String","params":{"content":"/"}},"content":{"disabled":false,"component":"data2-core-types@ArtboardReference","params":{"reference":"kzm1iWdlHCwK4NrAF9rUE"}},"policies":[{"component":"data2-core-auth@Policy","params":{"authenticationStrategy":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"QqWi4ePQDBVuRh0MHZBRT"}}}}]}}],"login":{"component":"data2-core-types@ArtboardReference","params":{"reference":"wHn3lGrJf6qMGc_e23Unz"}}},"reference":"qaRouter","deleteMetadata":{}},{"_id":"69dd35ec3ee304ca7269b514","component":"data2-core-primitives@Artboard","system":"69bd2cbc4c2708c13a0b572b","displayName":"Login Page","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1366,"height":768}},"fill":{"disabled":false,"component":"data2-core-types@Fill","params":{"backgrounds":[{"params":{"color":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"offset":"0%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgb(255,255,255)"}},"offset":"100%"}}],"angle":315}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]}}},"reference":"wHn3lGrJf6qMGc_e23Unz"},{"_id":"6aace791850d506c9bd37839","component":"data2-core-primitives@Artboard","system":"69bd2cbc4c2708c13a0b572b","displayName":"QA - App Dinâmica","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"QA - App Dinâmica"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0}}},"reference":"kzm1iWdlHCwK4NrAF9rUE","deleteMetadata":{}},{"_id":"69dd36363ee304ca7269b517","parent":"69dd35ec3ee304ca7269b514","component":"data2-core-primitives@Block","system":"69bd2cbc4c2708c13a0b572b","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"4"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":713,"height":385}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":326,"y":192,"exactX":326,"exactY":192,"fixed":true}},"shadow":[{"component":"data2-core-types@Shadow","params":{"offsetY":"30","offsetX":"30","blur":"75","color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,0,0,0.28)"}}}}]},"index":0},{"_id":"0439fe3f86e55c29d0fc6469","parent":"6aace791850d506c9bd37839","component":"natura-pay-crm@qaApp","system":"69bd2cbc4c2708c13a0b572b","displayName":"App Dinâmica","params":{"personasDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-personasDataSet"}},"conversasDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-conversasDataSet"}},"mensagensDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-mensagensDataSet"}},"feedbacksDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-feedbacksDataSet"}},"checksDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-checksDataSet"}},"testsDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-testsDataSet"}},"runsDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-runsDataSet"}},"resultadosDs":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-run-resultsDataSet"}},"brainRush":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-brain-turn"}},"runnerRush":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"qa-run-tests"}},"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":true,"top":true,"bottom":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}}}},"reference":"me7dSmU_WmJi9VjLHcPZB","deleteMetadata":{}},{"_id":"69ee180c9fd92958b0bde7df","parent":"69dd36363ee304ca7269b517","component":"data2-core-primitives@Block","system":"69bd2cbc4c2708c13a0b572b","displayName":"login-title","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill","disabled":true},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":128,"height":43,"exactHeight":43.379999999999995,"exactWidth":127.67}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":293,"y":35,"exactX":false,"exactY":false,"top":true}},"text":{"component":"data2-core-primitives@String","params":{"content":"LOGIN"}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Roboto"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle","fontWeight":600}},"textSize":{"component":"data2-core-primitives@Number","params":{"content":38}},"textColor":{"params":{"colors":[{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(249,86,35,1)"}},"offset":"26%"}},{"component":"data2-core-types@ColorGradientStop","params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,139,101,1)"}},"offset":"56.00000000000001%"}}],"type":"linear","angle":140},"component":"data2-core-types@ColorGradient"}},"index":0},{"_id":"69e9356e02c7d48a4a3b0604","parent":"69dd36363ee304ca7269b517","component":"data2-blocks@DataFieldBlock","system":"69bd2cbc4c2708c13a0b572b","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":{"params":{"then":{"component":"data2-core-primitives@String","params":{"content":"#F95623"}},"else":{"component":"data2-core-primitives@String","params":{"content":"#666666"}},"compare":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9356e02c7d48a4a3b0604"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isFocus"}}}}}}]},"component":"data2-core-flow@If"},"radius":{"leftTop":"4"},"width":{"left":"1","top":"1","right":"1","bottom":"1"}},"break":true},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":527,"height":64,"exactWidth":526.5500000000001,"exactHeight":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":93,"y":102,"exactX":false,"exactY":false}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle"}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"isFocus"}},"component":"data2-core-primitives@Boolean"}}]},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"QqWi4ePQDBVuRh0MHZBRT"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"credentials.email"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":"email"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":12}}},"onFocus":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9356e02c7d48a4a3b0604"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isFocus"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onBlur":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9356e02c7d48a4a3b0604"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isFocus"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}}},"index":1},{"_id":"69e9359102c7d48a4a3b0607","parent":"69dd36363ee304ca7269b517","component":"data2-blocks@DataFieldBlock","system":"69bd2cbc4c2708c13a0b572b","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":{"params":{"then":{"component":"data2-core-primitives@String","params":{"content":"#F95623"}},"else":{"component":"data2-core-primitives@String","params":{"content":"#666666"}},"compare":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9359102c7d48a4a3b0607"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}}}}]},"component":"data2-core-flow@If"},"radius":{"leftTop":"4"},"width":{"left":"1","top":"1","right":"1","bottom":"1"}},"break":true},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":527,"height":64,"exactWidth":526.5500000000001,"exactHeight":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":93,"y":172,"exactX":false,"exactY":false}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"textOverflow":false,"verticalAlignment":"middle"}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}},"component":"data2-core-primitives@Boolean"}}]},"dataset":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"QqWi4ePQDBVuRh0MHZBRT"}},"field":{"disabled":false,"component":"data2-core-types@DataSetColumnReference","params":{"column":"credentials.password"}},"placeholder":{"component":"data2-core-primitives@String","params":{"content":"senha"}},"padding":{"left":{"component":"data2-core-primitives@Number","params":{"content":12}}},"onFocus":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9359102c7d48a4a3b0607"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onBlur":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e9359102c7d48a4a3b0607"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"type":"password"},"index":2},{"_id":"69e930d23dbb6bf91d35fa1e","parent":"69dd36363ee304ca7269b517","component":"natura-pay-crm@tptkXZC-d_v2vEYrE3ya8","system":"69bd2cbc4c2708c13a0b572b","params":{"super":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":328,"height":40,"exactWidth":327.93,"exactHeight":39.51}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":193,"y":253,"exactX":false,"exactY":false}},"cursor":"pointer","onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"QqWi4ePQDBVuRh0MHZBRT"}},"prop":"login","args":[{}]}}},"text":{"component":"data2-core-primitives@String","params":{"content":"Entrar"}}},"index":3},{"_id":"69f89b30978ae93b450ace3e","parent":"69dd36363ee304ca7269b517","component":"data2-core-primitives@Block","system":"69bd2cbc4c2708c13a0b572b","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(0,120,220,0.3)"},"disabled":true},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":175,"height":17}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":269,"y":306,"exactX":false,"exactY":false}},"text":{"component":"data2-core-primitives@String","params":{"content":"Criar conta"}},"textColor":{"params":{"rgba":"rgba(249,86,35,1)"},"component":"data2-core-types@Color"},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle"}},"textDecoration":{"params":{"line":"underline"},"component":"data2-core-types@TextDecoration"},"cursor":"pointer","onClick":{"disabled":false,"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"NMZG6l77ES7sLFS_CmT8xInterface"}},"prop":"goTo","args":[{"component":"data2-core-primitives@String","params":{"content":"/create-account"}}]}},"hide":{"component":"data2-core-primitives@Boolean","params":{"content":true}}}},{"_id":"69e125fd7c37ffb320ba0144","component":"data2-core-primitives@Artboard","system":"69bd2cbc4c2708c13a0b572b","displayName":"Button Primary","params":{"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":328,"height":40,"exactWidth":328,"exactHeight":40}},"fill":{"params":{"backgrounds":[{"params":{"color":{"disabled":true,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"gradient":{"disabled":true,"component":"data2-core-types@ColorGradient","params":{}},"image":{"disabled":true,"component":"data2-core-types@String","params":{}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"componentClass":{"disabled":false,"component":"data2-core-types@ComponentClass","params":{}}},"reference":"tptkXZC-d_v2vEYrE3ya8"},{"_id":"69e126207c37ffb320ba0145","parent":"69e125fd7c37ffb320ba0144","component":"data2-core-primitives@Block","system":"69bd2cbc4c2708c13a0b572b","params":{"border":{"component":"data2-core-types@Border","params":{"color":"#808080","radius":{"leftTop":"32"},"width":{"left":"0","top":"0","right":"0","bottom":"0"}}},"fill":{"params":{"then":{"params":{"rgba":"rgba(204,204,204,1)"},"component":"data2-core-types@Color"},"else":{"params":{"then":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(185,53,14,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"},"compare":{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e126207c37ffb320ba0145"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}}}},"else":{"params":{"backgrounds":[{"params":{"color":{"component":"data2-core-types@Color","params":{"rgba":"rgba(249,86,35,1)"}}},"component":"data2-core-types@Background"}]},"component":"data2-core-types@Fill"}},"component":"data2-core-flow@If"},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"disabled"}}}}},"component":"data2-core-flow@If"},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":328,"height":40,"exactWidth":328.33,"exactHeight":false}},"position":{"component":"data2-core-types@Position","params":{"freeTransform":true,"x":0,"y":0,"exactX":0,"exactY":0,"growH":true,"growV":true}},"font":{"disabled":false,"component":"data2-core-web@GoogleFont","params":{"fontFamily":"Roboto"}},"text":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"text"}}}},"textColor":{"disabled":false,"component":"data2-core-types@Color","params":{"rgba":"rgba(255,255,255,1)"}},"textFormat":{"disabled":false,"component":"data2-core-types@TextFormat","params":{"horizontalAlignment":"center","textOverflow":false,"verticalAlignment":"middle"}},"stateDefinitions":[{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}},"component":"data2-core-primitives@Boolean"}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"disabled"}},"component":"data2-core-primitives@Boolean"}},{"component":"data2-core-user-interface@StateDefinition","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"isLoading"}},"component":"data2-core-primitives@Boolean"}}],"onMouseEnter":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e126207c37ffb320ba0145"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}},"value":{"params":{"content":true},"component":"data2-core-primitives@Boolean"}}},"onMouseLeave":{"component":"data2-core-types@Setter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e126207c37ffb320ba0145"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isHover"}}}},"value":{"params":{"content":false},"component":"data2-core-primitives@Boolean"}}},"cursor":{"params":{"then":{"component":"data2-core-primitives@String","params":{"content":"not-allowed"}},"compare":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"disabled"}}}},"else":{"component":"data2-core-primitives@String","params":{"content":"pointer"}}},"component":"data2-core-flow@If"},"disabled":{"params":{"components":[{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e126207c37ffb320ba0145"}},"key":{"component":"data2-core-primitives@String","params":{"content":"disabled"}}}}}},{"component":"data2-core-types@Getter","params":{"module":{"disabled":false,"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"__UIState"}},"prop":{"component":"data2-core-user-interface@StateProp","params":{"componentId":{"component":"data2-core-primitives@String","params":{"content":"69e126207c37ffb320ba0145"}},"key":{"component":"data2-core-primitives@String","params":{"content":"isLoading"}}}}}}]},"component":"data2-core-logical-operators@Or"},"transitions":[{"component":"data2-core-types@Transition","params":{"scope":"ALL","easing":"cubic-bezier(0.48026315789473684,0.0063750000000000195,0.506578947368421,0.982375)","delay":"10","duration":"250"}}]}}]}},{"_id":"5fc4faeec8da12be8bf3d08a","component":"data2-core@Data2TableDataSource","system":"5e3b796d6228227ca637d0f4","params":{"paginate":{"default":1000},"super":{},"table":"fileComponentInstances","schema":[{"component":"data2-core-types@Field","params":{"key":"component","title":"Component","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"system","title":"System","component":"data2-core-primitives@ObjectId"}},{"component":"data2-core-types@Field","params":{"key":"displayName","title":"Display Name","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"params","title":"Params","component":"data2-core-primitives@Object"}},{"component":"data2-core-types@Field","params":{"key":"reference","title":"Reference","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":{"component":"data2-core-primitives@String","params":{"content":"fileId"}},"title":"File ID","component":"data2-core-primitives@ObjectId"},"break":true}],"hooks":{"before":{"all":[{"hook":"softDelete"}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"timestamp","options":{"fields":["createdAt","updatedAt"]}}],"update":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}],"patch":[{"hook":"timestamp","options":{"fields":["updatedAt"]}}]},"after":{"all":[{"hook":"fileUrl","options":{"downloadField":"params.fileUrl","uploadField":"params.uploadFileUrl","enhanceSchema":false}}],"find":[{"hook":"useCache","options":{"additionalGroupKeys":["$and.0.system","$and.1.system"],"skipCache":true}}],"create":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"update":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"patch":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}],"remove":[{"hook":"invalidateCache","options":{"additionalGroupKeys":["system"],"secondaryUniqueKeys":["reference"]}},{"hook":"invalidateEnvCache"}]}},"multi":["create"],"useEstimatedDocumentCount":true},"reference":"FileComponentInstancesTableDataSource","updatedAt":"2022-12-19T20:42:51.837Z","createdAt":"2020-11-30T13:59:52.294Z"},{"reference":"ApplicationsTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6aace4b73dfd8e27bf4fa5e8","displayName":"QA - Dinâmica e Testes","reference":"XXzOcR0gL6KVSJDN9LNqj","params":{"domain":{"component":"data2-core-primitives@String","params":{"content":"qa"}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Router","reference":"qaRouter"}}},"system":"69bd2cbc4c2708c13a0b572b","component":"data2-core-primitives@Application"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}