{"context":{"domain":"ai-playground"},"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":"2022-03-09T02:01:26.213Z"}]}},{"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}],"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":"2025-11-05T19:23:47.135Z","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":"6a11aec3b70f2dc40823369a","name":"ai-playground","domain":"ai-playground","visibility":"public","updatedAt":"2026-05-23T13:42:33.945Z","createdAt":"2026-05-23T13:42:27.995Z"}]}},{"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":"6a455ead209db9c366369b7a","component":"data2-core-types@Component","system":"6a11aec3b70f2dc40823369a","params":{"extends":"data2-core-primitives@Block","component":"kVivProduct","package":"ai-playground","definition":{"preventEvaluation":true,"component":"data2-core-types@Definition","params":{"def":{"component":"data2-code-components@CodeHost","params":{"code":{"component":"data2-core-primitives@String","params":{"content":"function esc(s){return String(s==null?'':s).replace(/[&<>\"]/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c];});}\nfunction digUrl(o,d){if(o==null||d>6)return '';if(typeof o==='string'){if(o.indexOf('data:image')===0||/^https?:\\/\\//.test(o))return o;return '';}if(typeof o==='object'){if(typeof o.url==='string'){var u0=digUrl(o.url,d+1);if(u0)return u0;}if(typeof o.imageUrl==='string'){var u1=digUrl(o.imageUrl,d+1);if(u1)return u1;}if(o.length!=null){for(var i=0;i<o.length;i++){var u=digUrl(o[i],d+1);if(u)return u;}}for(var k in o){try{if(!Object.prototype.hasOwnProperty.call(o,k))continue;}catch(e){continue;}var u2=digUrl(o[k],d+1);if(u2)return u2;}return '';}return '';}\nfunction imgs(p){var out=[];var its=p.items||[];for(var i=0;i<its.length;i++){var im=its[i].images||[];for(var j=0;j<im.length;j++){var u=im[j]&&im[j].imageUrl;if(u&&out.indexOf(u)<0)out.push(u);}}return out;}\nfunction norm(p){var pr=p.priceRange||{};var all=imgs(p);return {id:String(p.productId),name:p.productName||'Sem nome',image:all[0]||'',images:all,price:(pr.sellingPrice&&pr.sellingPrice.lowPrice)||(pr.listPrice&&pr.listPrice.lowPrice)||0,cat:(p.categories&&p.categories[0])||'',brand:p.brand||'Vivara'};}\nfunction H(s){s=String(s);var n=2166136261;for(var i=0;i<s.length;i++){n^=s.charCodeAt(i);n=Math.imul(n,16777619);}return (n>>>0);}\nfunction R(seed){var x=Math.sin(seed)*10000;return x-Math.floor(x);}\nfunction money(v){v=Math.round(v);var s=v.toString();var o='';var c=0;for(var i=s.length-1;i>=0;i--){o=s[i]+o;if(++c%3===0&&i>0)o='.'+o;}return 'R$ '+o;}\nfunction kfmt(v){v=Math.round(v);if(v>=1000000)return (v/1000000).toFixed(1).replace('.',',')+'M';if(v>=1000)return (v/1000).toFixed(v>=10000?0:1).replace('.',',')+'k';return String(v);}\nfunction pctf(v){return v.toFixed(2).replace('.',',')+'%';}\nfunction sim(key,price){var im=3200+Math.floor(R(H(key))*15800);var ctr=2.4+R(H(key+'|ctr'))*7.2;var cvr=1.1+R(H(key+'|cvr'))*4.9;var clicks=Math.round(im*ctr/100);var cart=Math.round(clicks*(0.34+R(H(key+'|ca'))*0.26));var orders=Math.round(clicks*cvr/100);var revenue=orders*(price||1200);return {impressions:im,ctr:ctr,cvr:cvr,clicks:clicks,cart:cart,orders:orders,revenue:revenue};}\nfunction series(key,n,base,vol,drift){var a=[],v=base;for(var i=0;i<n;i++){v+=(R(H(key+'|'+i))-0.5)*vol+drift;if(v<base*0.35)v=base*0.35;a.push(v);}return a;}\nfunction areaPath(a,w,h,pad){var mn=Math.min.apply(null,a),mx=Math.max.apply(null,a);var rg=(mx-mn)||1;var n=a.length;var pts=a.map(function(v,i){var x=pad+i/(n-1)*(w-pad*2);var y=pad+(1-(v-mn)/rg)*(h-pad*2);return [x,y];});var ln='M'+pts.map(function(p){return p[0].toFixed(1)+' '+p[1].toFixed(1);}).join(' L ');var ar=ln+' L '+(w-pad).toFixed(1)+' '+(h-pad).toFixed(1)+' L '+pad.toFixed(1)+' '+(h-pad).toFixed(1)+' Z';return {line:ln,area:ar,last:pts[pts.length-1]};}\nvar LOGO='https://upload.wikimedia.org/wikipedia/commons/4/45/Vivara.png';\nvar SCENE=[['Mármore','floating on polished white marble with subtle gold veining'],['Preto','on a dramatic pure black background'],['Creme','seamless warm cream infinity backdrop'],['Sunset','warm golden sunset gradient glow'],['Boudoir','blurred luxe interior bokeh'],['Botânico','out-of-focus botanical greenery'],['Seda','nestled in champagne silk folds'],['Veludo','on deep black velvet with soft sheen'],['Água','on a still water surface with subtle ripple reflection'],['Pedra','on raw natural stone with organic texture'],['Espelho','on a mirrored surface with elegant reflection']];\nvar LIGHT=[['Joalheria','crisp jewelry lighting, maximum gemstone sparkle and fire'],['Suave','soft diffused studio light, gentle gradients'],['Dramática','dramatic single-source light, deep luxury shadows'],['Golden','warm golden glow, premium mood'],['High-Key','bright clean high-key e-commerce lighting'],['Contraluz','elegant backlight with a soft rim glow'],['Natural','soft natural window light']];\nvar STYLE=[['Hero','hero macro shot, extreme detail, shallow depth of field'],['Editorial','high-fashion editorial composition, magazine grade'],['Lifestyle','aspirational lifestyle styling with elegant props'],['Minimal','ultra-minimal clean catalog, centered'],['Pack-shot','crisp e-commerce pack-shot, full sharp focus'],['Macro','extreme macro detail of the gemstones and finish'],['Campanha','bold advertising campaign composition']];\nvar RATIO=[['Quadrado','1024x1024'],['Retrato','896x1152'],['Paisagem','1152x896']];\nvar MTYPE=[['Mão','mao',\"a woman's elegant hand and wrist\"],['Colo','colo',\"a woman's neckline and collarbone, elegantly clothed\"],['Orelha','orelha',\"a woman's ear and the side of her face, hair elegantly styled\"],['Pescoço','pescoco',\"a woman's elegant neck and throat\"],['Pulso','pulso',\"a woman's wrist and forearm\"],['Rosto','rosto',\"a woman's face and shoulders, a refined beauty portrait\"]];\nvar SKIN=[['Clara','fair porcelain'],['Média','light beige'],['Morena','warm golden-brown'],['Negra','deep rich ebony']];\nvar MOOD=[['Suave','soft diffused daylight, natural elegant mood'],['Glamour','warm golden glow, glamorous luxe styling'],['Editorial','refined editorial lighting, high-fashion mood']];\nvar STEPS=['Estudando a peça','Montando o set','Posicionando as luzes','Capturando reflexos','Renderizando em alta'];\nvar MSTEPS=['Definindo o casting','Ajustando pose e clima','Iluminando o set','Renderizando o modelo'];\nvar RUSH='https://ai-playground.data2apis.com/rush/vivDraw';\nfunction wait(ms){return new Promise(function(res){setTimeout(res,ms);});}\nfunction drawRetry(prompts,images,size,i){i=i||0;var p=prompts[Math.min(i,prompts.length-1)];return fetch(RUSH,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({prompt:p,images:images||[],options:{size:size}})}).then(function(r){return r.json();}).then(function(j){var u=digUrl(j,0);if(u)return u;if(i<2)return wait(700).then(function(){return drawRetry(prompts,images,size,i+1);});return '';}).catch(function(){if(i<2)return wait(700).then(function(){return drawRetry(prompts,images,size,i+1);});return '';});}\nfunction mdesc(v){for(var i=0;i<MTYPE.length;i++){if(MTYPE[i][0]===v)return MTYPE[i][2];}return MTYPE[0][2];}\nfunction mkind(v){for(var i=0;i<MTYPE.length;i++){if(MTYPE[i][0]===v)return MTYPE[i][1];}return 'mao';}\nfunction modelPrompts(typ,sk,mo){return [\n  'Elegant fashion beauty photograph for a luxury jewelry brand. A tightly cropped studio close-up of '+typ+', '+sk+' complexion, '+mo+'. Only '+typ+' fills the frame, macro editorial framing. Professional high-end fashion photography, photorealistic, natural realistic skin texture with fine detail, physically accurate light, tasteful and refined, clean seamless studio background, ready to showcase fine jewelry. Never CGI or 3D-render look. No jewelry in frame, no text, no watermark.',\n  'Refined commercial macro close-up of '+typ+' for a fine jewelry catalog, '+sk+' complexion, elegant styling, soft premium studio lighting, tightly cropped composition, clean background, tasteful. No jewelry, no text.',\n  'Luxury jewelry catalog close-up crop showing '+typ+', '+sk+' complexion, graceful pose, clean studio backdrop, premium fashion editorial framing, tasteful. No text, no watermark.'\n];}\nfunction frag(a,v){for(var i=0;i<a.length;i++){if(a[i][0]===v)return a[i][1];}return a[0][1];}\nfunction chips(t,a,k,sel){return '<div class=\"sec\"><div class=\"sl\">'+t+'</div><div class=\"chips\">'+a.map(function(o){return '<span class=\"chip'+(sel===o[0]?' on':'')+'\" data-sk=\"'+k+'\" data-sv=\"'+esc(o[0])+'\">'+esc(o[0])+'</span>';}).join('')+'</div></div>';}\nfunction initials(s){s=String(s||'?').trim();var p=s.split(/\\s+/);return ((p[0]&&p[0][0])||'')+((p[1]&&p[1][0])||'');}\nfunction jtype(cat){var c=(cat||'').toLowerCase();\n  if(c.indexOf('alian')>=0)return {t:'wedding ring',p:'worn on a single finger',l:'Aliança'};\n  if(c.indexOf('anel')>=0||c.indexOf('anéis')>=0||c.indexOf('aneis')>=0)return {t:'ring',p:'worn on a single finger, sitting at the base of one finger',l:'Anel'};\n  if(c.indexOf('pulseira')>=0||c.indexOf('bracelete')>=0)return {t:'bracelet',p:'worn around the wrist',l:'Pulseira'};\n  if(c.indexOf('brinco')>=0||c.indexOf('argola')>=0)return {t:'pair of earrings',p:'worn on the ear',l:'Brinco'};\n  if(c.indexOf('colar')>=0||c.indexOf('gargantilha')>=0||c.indexOf('corrente')>=0)return {t:'necklace',p:'worn around the neck, resting on the neckline',l:'Colar'};\n  if(c.indexOf('pingente')>=0||c.indexOf('berloque')>=0)return {t:'pendant',p:'on a chain around the neck',l:'Pingente'};\n  if(c.indexOf('rel')>=0)return {t:'watch',p:'worn around the wrist',l:'Relógio'};\n  return {t:'jewelry piece',p:'worn correctly at realistic scale',l:((cat||'').split('/').filter(Boolean).pop())||'Joia'};}\n\nvar MOD={\n  css: `@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Jost:wght@300;400;500;600&display=swap');\n    *{box-sizing:border-box}\n    .vp{height:100%;display:flex;font-family:'Jost',-apple-system,sans-serif;background:#FAF8F5;color:#1A1A1A;overflow:hidden}\n    .col{width:300px;flex:0 0 auto;background:#fff;border-right:1px solid #E8E2D9;display:flex;flex-direction:column;min-height:0}\n    .colh{padding:22px 22px 14px;border-bottom:1px solid #F0EBE2}\n    .colh .vlogo{height:22px;width:auto;display:block;margin-bottom:4px}\n    .colh .s{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:#B08D57}\n    .srch{margin:12px 22px;padding:9px 12px;border:1px solid #E0D6C4;border-radius:3px;font:inherit;font-size:12.5px;color:#1A1A1A;outline:none}\n    .srch:focus{border-color:#B08D57}\n    .plist{flex:1;overflow:auto;padding:4px 12px 12px}\n    .prow{display:flex;gap:11px;align-items:center;padding:9px 10px;border-radius:5px;cursor:pointer;transition:.14s;border:1px solid transparent}\n    .prow:hover{background:#FAF8F5}.prow.on{background:#1A1A1A;border-color:#1A1A1A}.prow.on .pn{color:#fff}.prow.on .pp{color:#C9A24B}\n    .prow img{width:44px;height:44px;object-fit:contain;mix-blend-mode:multiply;flex:0 0 auto}\n    .pn{font-size:12.5px;line-height:1.25;max-height:32px;overflow:hidden}.pp{font-size:11px;color:#9B8E7E;margin-top:2px}\n    .main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:auto}\n    .empty{margin:auto;text-align:center;color:#9B8E7E}.empty .big{font-family:'Cormorant Garamond',serif;font-size:32px;color:#1A1A1A;margin-bottom:8px}\n    .hero{display:flex;gap:26px;padding:28px 34px 22px;border-bottom:1px solid #E8E2D9;align-items:center}\n    .hero .fig{width:132px;height:132px;flex:0 0 auto;background:#fff;border:1px solid #eee;display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden}\n    .hero .fig img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}\n    .hero .meta{flex:1;min-width:0}\n    .hero .cat{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#B08D57}\n    .hero h1{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;margin:5px 0 8px;line-height:1.08}\n    .hero .price{font-size:19px;font-weight:500}.hero .sku{font-size:11px;color:#9B8E7E;margin-top:6px}\n    .cta{margin-left:auto;flex:0 0 auto;background:#1A1A1A;color:#fff;border:none;padding:14px 22px;font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:.18s;align-self:center}\n    .cta:hover{background:#B08D57;letter-spacing:.13em}\n    .kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:#E8E2D9;border-bottom:1px solid #E8E2D9}\n    .kpi{background:#fff;padding:16px 20px}\n    .kpi .kl{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#9B8E7E}\n    .kpi .kv{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:600;margin-top:5px;line-height:1}\n    .kpi .kd{font-size:11px;margin-top:5px;color:#5A5045}.kpi .kd.up{color:#2E7D5B}.kpi .kd.dn{color:#B0857A}\n    .row2{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;padding:22px 34px 4px}\n    .panel{background:#fff;border:1px solid #EFE7DA;border-radius:6px;padding:18px 20px}\n    .ph3{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}\n    .ph3 .t{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600}\n    .ph3 .v{font-size:12px;color:#9B8E7E}\n    .chart{width:100%;height:120px;display:block}\n    .fun{display:flex;flex-direction:column;gap:9px}\n    .fstop{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}\n    .fstop .fn{color:#5A5045}.fstop .fv{font-weight:600}\n    .ftrack{height:12px;background:#F0EBE2;border-radius:3px;overflow:hidden}\n    .ffill{height:100%;background:linear-gradient(90deg,#C9A24B,#B08D57);border-radius:3px}\n    .frate{font-size:10px;color:#9B8E7E;margin-top:2px;text-align:right}\n    .ins{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:16px 34px 4px}\n    .icard{background:#fff;border:1px solid #EFE7DA;border-left:3px solid #C9A24B;border-radius:5px;padding:15px 17px}\n    .icard .ik{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#B08D57;margin-bottom:6px}\n    .icard .iv{font-size:13.5px;line-height:1.4;color:#3A342C}.icard .iv b{color:#1A1A1A}\n    .sect{padding:22px 34px 30px}\n    .sh{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}\n    .sh h2{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;margin:0}\n    .sh .sub{font-size:12px;color:#9B8E7E}\n    .grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}\n    .card{background:#fff;border:1px solid #EFE7DA;border-radius:5px;overflow:hidden;transition:.18s;position:relative}\n    .card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(120,95,50,.16)}\n    .card.win{border-color:#C9A24B;box-shadow:0 0 0 1px #C9A24B}\n    .card .ph{aspect-ratio:1;background:#FAF8F5;display:flex;align-items:center;justify-content:center;overflow:hidden}\n    .card .ph img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}\n    .crown{position:absolute;top:10px;left:10px;background:#C9A24B;color:#fff;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:2px}\n    .tag{position:absolute;top:10px;right:10px;background:rgba(26,26,26,.86);color:#fff;font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:2px}\n    .cbody{padding:12px 13px 14px}\n    .clabel{font-size:12.5px;font-weight:500}\n    .cvrrow{display:flex;align-items:flex-end;justify-content:space-between;margin-top:9px}\n    .cvr{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:600;line-height:1}\n    .cvr.hi{color:#2E7D5B}.cvr.lo{color:#B0857A}\n    .cvrl{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#9B8E7E}\n    .imp{font-size:10.5px;color:#9B8E7E;text-align:right;line-height:1.5}\n    .bar{height:4px;background:#F0EBE2;border-radius:3px;margin-top:10px;overflow:hidden}\n    .bfill{height:100%;background:linear-gradient(90deg,#C9A24B,#B08D57)}\n    .mrow{display:flex;gap:10px;font-size:10.5px;color:#7A7060;margin-top:8px;border-top:1px solid #F4EFE6;padding-top:8px}\n    .mrow div{flex:1}.mrow b{color:#1A1A1A;font-weight:600;display:block;font-size:12px}\n    .newc{border:1.5px dashed #D9C9A8;background:transparent;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:#9B8E7E;min-height:196px;transition:.18s}\n    .newc:hover{border-color:#B08D57;color:#B08D57;background:#fff}\n    .newc .pl{font-size:34px;font-weight:200;line-height:.7}.newc .nt{font-size:12px;letter-spacing:.04em}\n    .ov{position:absolute;inset:0;background:rgba(26,22,18,.42);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:20;animation:fin .2s ease}\n    @keyframes fin{from{opacity:0}to{opacity:1}}\n    .studio{width:min(960px,95%);height:min(640px,94%);background:#FAF8F5;border-radius:8px;box-shadow:0 40px 100px rgba(0,0,0,.4);display:flex;overflow:hidden;animation:pop .25s cubic-bezier(.2,.8,.3,1)}\n    @keyframes pop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}\n    .scfg{width:340px;flex:0 0 auto;background:#fff;border-right:1px solid #E8E2D9;display:flex;flex-direction:column;min-height:0}\n    .sch{padding:17px 22px;border-bottom:1px solid #F0EBE2;display:flex;align-items:center;gap:10px}\n    .sbk{font-size:18px;color:#8A7E6E;cursor:pointer;line-height:1}.sbk:hover{color:#1A1A1A}\n    .sch .st{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600}\n    .sch .ss{font-size:11px;color:#9B8E7E;margin-top:2px}\n    .sbody{flex:1;overflow:auto;padding:16px 22px}\n    .seg{display:flex;gap:6px;margin-bottom:16px;background:#F0EBE2;padding:4px;border-radius:5px}\n    .segb{flex:1;text-align:center;font-size:12px;padding:9px;border-radius:3px;cursor:pointer;transition:.15s;color:#5A5045;font-weight:500}\n    .segb.on{background:#1A1A1A;color:#fff}\n    .sec{margin-bottom:16px}.sl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#9B8E7E;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}\n    .sl .add{color:#B08D57;cursor:pointer;font-size:10px;letter-spacing:.04em;text-transform:none}.sl .add:hover{text-decoration:underline}\n    .chips{display:flex;flex-wrap:wrap;gap:6px}\n    .chip{font-size:11.5px;padding:6px 11px;border:1px solid #E0D6C4;background:#fff;cursor:pointer;transition:.14s;color:#5A5045;border-radius:2px}\n    .chip:hover{border-color:#B08D57}.chip.on{background:#1A1A1A;color:#fff;border-color:#1A1A1A}\n    .models{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}\n    .mc{cursor:pointer;border:2px solid transparent;border-radius:5px;overflow:hidden;transition:.15s;background:#FAF8F5;position:relative}\n    .mc .mi{width:100%;aspect-ratio:1;object-fit:cover;display:block}\n    .mc.noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:58px}\n    .mc.noimg::before{content:attr(data-ini);font-family:'Cormorant Garamond',serif;font-size:20px;color:#B08D57;text-transform:uppercase}\n    .mc.on{border-color:#B08D57}.mc .mn{font-size:9px;text-align:center;padding:3px 2px;color:#5A5045;background:#fff}\n    .mc.newm{border:1.5px dashed #D9C9A8;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9B8E7E;min-height:82px;gap:2px}\n    .mc.newm:hover{border-color:#B08D57;color:#B08D57}.mc.newm .p{font-size:22px;font-weight:200;line-height:.8}.mc.newm .l{font-size:8.5px}\n    .mc .mdel{position:absolute;top:2px;right:2px;width:17px;height:17px;border-radius:50%;background:rgba(26,26,26,.72);color:#fff;font-size:12px;line-height:17px;text-align:center;cursor:pointer;opacity:0;transition:.14s;z-index:3}\n    .mc:hover .mdel{opacity:1}.mc .mdel:hover{background:#B0857A}\n    .sgo{flex:0 0 auto;margin:14px 22px 18px;background:#1A1A1A;color:#fff;border:none;padding:14px;font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:.18s;position:relative;overflow:hidden}\n    .sgo:hover:not(:disabled){background:#B08D57;letter-spacing:.14em}.sgo:disabled{opacity:.4;cursor:default}\n    .sgo .sheen{position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(201,162,75,.5) 50%,transparent 65%);transform:translateX(-120%);animation:shn 3.4s ease-in-out infinite;pointer-events:none}@keyframes shn{0%{transform:translateX(-120%)}55%,100%{transform:translateX(120%)}}\n    .sstage{flex:1;display:flex;align-items:center;justify-content:center;padding:26px;background:radial-gradient(circle at 50% 34%,#FFFDFA,#EFE7DA);position:relative;min-width:0}\n    .sx{position:absolute;top:14px;right:16px;font-size:22px;line-height:1;color:#8A7E6E;cursor:pointer;z-index:2;font-weight:300}.sx:hover{color:#1A1A1A}\n    .shint{text-align:center;color:#9B8E7E;max-width:300px}.shint .bg{font-family:'Cormorant Garamond',serif;font-size:25px;color:#1A1A1A;margin-bottom:8px;line-height:1.1}\n    .res{padding:12px;background:#fff;box-shadow:0 18px 44px rgba(120,95,50,.24);border-radius:2px;position:relative;max-height:100%;animation:fd .5s ease;text-align:center}\n    .res::after{content:'';position:absolute;inset:4px;border:1px solid #D9C9A8;pointer-events:none}\n    .res img{display:block;max-width:100%;max-height:300px;object-fit:contain;margin:0 auto}\n    .mgname{display:block;width:100%;margin-top:11px;padding:10px 12px;border:1px solid #E0D6C4;border-radius:3px;font:inherit;font-size:13px;text-align:center;color:#1A1A1A;outline:none}\n    .mgname:focus{border-color:#B08D57}\n    .addlib{margin-top:10px;background:#1A1A1A;color:#fff;border:none;padding:11px 18px;font:inherit;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:.15s}\n    .addlib:hover{background:#B08D57}.addlib.done{background:#2E7D5B;pointer-events:none}\n    .qa{width:100%;max-width:560px;display:flex;flex-direction:column;gap:12px;animation:fd .5s ease}\n    .qah{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;text-align:center}\n    .qatag{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#B08D57;text-align:center}\n    .qasub{font-size:12px;color:#7A7060;text-align:center;max-width:420px;margin:0 auto}\n    .qacmp{display:flex;gap:16px;justify-content:center;align-items:stretch;margin-top:4px}\n    .qacol{flex:1;min-width:0;display:flex;flex-direction:column}\n    .qacap{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#9B8E7E;text-align:center;margin-bottom:6px}\n    .qafig{flex:1;background:#fff;padding:8px;box-shadow:0 12px 30px rgba(120,95,50,.18);border-radius:2px;display:flex;align-items:center;justify-content:center}\n    .qafig.new{box-shadow:0 0 0 2px #C9A24B,0 12px 30px rgba(120,95,50,.2)}\n    .qafig img{display:block;max-width:100%;max-height:250px;object-fit:contain}\n    .qaref{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-content:start}\n    .qaref .rimg{background:#fff;border:1px solid #EFE7DA;border-radius:2px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden}\n    .qaref .rimg img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}\n    .refine{width:100%;min-height:50px;resize:none;margin-top:2px;padding:10px 12px;border:1px solid #E0D6C4;border-radius:4px;font:inherit;font-size:12px;color:#1A1A1A;outline:none;background:#fff}\n    .refine:focus{border-color:#B08D57}\n    .qacta{display:flex;gap:10px;justify-content:center;margin-top:6px}\n    .qbtn{border:none;padding:12px 20px;font:inherit;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:.15s}\n    .qbtn.ok{background:#1A1A1A;color:#fff}.qbtn.ok:hover{background:#2E7D5B}.qbtn.ok.done{background:#2E7D5B;pointer-events:none}\n    .qbtn.ghost{background:transparent;border:1px solid #D9C9A8;color:#5A5045}.qbtn.ghost:hover{border-color:#B08D57;color:#B08D57}\n    @keyframes fd{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}\n    .load{display:flex;flex-direction:column;align-items:center;gap:16px}\n    .ring{width:66px;height:66px}.ring svg{width:100%;height:100%;animation:rot 1.4s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}\n    .step{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600}\n    .pbar{width:220px;height:2px;background:#E8E2D9;overflow:hidden;border-radius:2px}.pfill{height:100%;background:linear-gradient(90deg,#C9A24B,#B08D57);transition:width .5s}\n    .ssub{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#B08D57}\n    .gate{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#242019,#141210);display:flex;align-items:center;justify-content:center;z-index:50}\n    .gbox{display:flex;flex-direction:column;align-items:center;gap:14px;padding:52px 60px;border:1px solid #2E2A24;background:rgba(255,255,255,.02);border-radius:6px}\n    .glogo{height:30px;width:auto;filter:brightness(0) invert(1)}\n    .gsub{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#B08D57}\n    .gin{width:240px;padding:12px 14px;background:transparent;border:1px solid #4A443A;border-radius:3px;color:#E8E2D9;font:inherit;font-size:14px;text-align:center;letter-spacing:.2em;outline:none}\n    .gin:focus{border-color:#B08D57}\n    .gbtn{width:240px;padding:12px;background:#B08D57;border:none;color:#fff;font:inherit;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-radius:3px;transition:.18s}\n    .gbtn:hover{background:#C9A24B}\n    .gerr{font-size:11px;color:#C96A5A;min-height:14px}\n  `,\n  render(d2){\n    var s=d2.state;\n    var unlocked=s.unlocked===true;if(!unlocked){try{unlocked=localStorage.getItem('vivGate2020')==='1';}catch(_){}}\n    if(!unlocked){return '<div class=\"gate\"><div class=\"gbox\"><img class=\"glogo\" src=\"'+LOGO+'\"/><div class=\"gsub\">Acesso restrito</div><input class=\"gin\" data-gpw type=\"password\" placeholder=\"Senha\"/><button class=\"gbtn\" data-gunlock>Entrar</button><div class=\"gerr\">'+(s.gateErr?'Senha incorreta':'')+'</div></div></div>';}\n    var raw=(d2.data('products')&&d2.data('products').records())||[];\n    var prods=raw.map(norm).filter(function(p){return p.image&&p.cat.indexOf('/Joias/')>=0;});\n    if(!prods.length)prods=raw.map(norm).filter(function(p){return p.image;});\n    var q=(s.q||'').toLowerCase();\n    var shown=q?prods.filter(function(p){return p.name.toLowerCase().indexOf(q)>=0;}):prods;\n    var selP=s.selProductId||(prods[0]&&prods[0].id);\n    var prod=prods.filter(function(p){return p.id===selP;})[0]||prods[0];\n\n    var plist=shown.map(function(p){return '<div class=\"prow'+(prod&&p.id===prod.id?' on':'')+'\" data-prod=\"'+esc(p.id)+'\"><img loading=\"lazy\" src=\"'+esc(p.image)+'\"/><div><div class=\"pn\">'+esc(p.name)+'</div><div class=\"pp\">'+money(p.price)+'</div></div></div>';}).join('');\n    var left='<div class=\"col\"><div class=\"colh\"><img class=\"vlogo\" src=\"'+LOGO+'\"/><div class=\"s\">Performance de Produto</div></div><input class=\"srch\" data-q placeholder=\"Buscar peça...\" value=\"'+esc(s.q||'')+'\"/><div class=\"plist\">'+plist+'</div></div>';\n\n    if(!prod){return '<div class=\"vp\">'+left+'<div class=\"main\"><div class=\"empty\"><div class=\"big\">Catálogo VTEX</div><div>Carregando peças ao vivo...</div></div></div></div>';}\n\n    var lib=((d2.data('library')&&d2.data('library').records())||[]).filter(function(r){return String(r.productId)===String(prod.id);});\n    var vars=[];\n    var vlabels=['Foto oficial','Ângulo lateral','Detalhe macro','Ambientada','Editorial','Look completo'];\n    prod.images.slice(0,6).forEach(function(u,i){var m=sim(prod.id+'|'+i,prod.price);vars.push({url:u,label:vlabels[i]||('Variante '+(i+1)),m:m,ai:false,withModel:false,status:'live'});});\n    lib.forEach(function(r){var m=sim((r._id||r.imageUrl)+'|ai',prod.price);vars.push({url:r.imageUrl,label:r.label||(r.withModel?'IA · com modelo':'IA · catálogo'),m:{impressions:r.impressions||m.impressions,cvr:r.cvr||m.cvr,ctr:m.ctr,clicks:r.clicks||m.clicks,cart:m.cart,orders:r.orders||m.orders,revenue:r.revenue||m.revenue},ai:true,withModel:!!r.withModel,status:r.status||'testing'});});\n\n    var tImp=0,tOrd=0,tRev=0,tClick=0,tCart=0,best=null,worst=null;\n    vars.forEach(function(v){tImp+=v.m.impressions;tOrd+=v.m.orders;tRev+=v.m.revenue;tClick+=v.m.clicks;tCart+=v.m.cart;if(!best||v.m.cvr>best.m.cvr)best=v;if(!worst||v.m.cvr<worst.m.cvr)worst=v;});\n    var aggCvr=tImp?(tOrd/tImp*100):0;var aov=tOrd?(tRev/tOrd):0;\n    var maxCvr=best?best.m.cvr:1;\n    var deltaSku=(R(H(prod.id+'|d'))*36-6);\n\n    var kpis='<div class=\"kpis\">'+\n      '<div class=\"kpi\"><div class=\"kl\">Impressões · 30d</div><div class=\"kv\">'+kfmt(tImp)+'</div><div class=\"kd up\">▲ '+(8+Math.floor(R(H(prod.id+'|i'))*22))+'%</div></div>'+\n      '<div class=\"kpi\"><div class=\"kl\">Conversão média</div><div class=\"kv\">'+pctf(aggCvr)+'</div><div class=\"kd '+(deltaSku>=0?'up':'dn')+'\">'+(deltaSku>=0?'▲ ':'▼ ')+Math.abs(deltaSku).toFixed(1).replace('.',',')+'% vs categoria</div></div>'+\n      '<div class=\"kpi\"><div class=\"kl\">Pedidos · 30d</div><div class=\"kv\">'+kfmt(tOrd)+'</div><div class=\"kd\">'+vars.length+' imagens no teste</div></div>'+\n      '<div class=\"kpi\"><div class=\"kl\">Receita atribuída</div><div class=\"kv\">'+kfmt(tRev)+'</div><div class=\"kd up\">▲ '+(5+Math.floor(R(H(prod.id+'|r'))*18))+'%</div></div>'+\n      '<div class=\"kpi\"><div class=\"kl\">Ticket médio</div><div class=\"kv\">'+kfmt(aov)+'</div><div class=\"kd\">por pedido</div></div>'+\n      '</div>';\n\n    var ser=series(prod.id+'|cvr30',30,aggCvr,0.5,0.012);\n    var ap=areaPath(ser,420,120,10);\n    var trend='<div class=\"panel\"><div class=\"ph3\"><div class=\"t\">Conversão · 30 dias</div><div class=\"v\">agora '+pctf(ser[ser.length-1])+'</div></div>'+\n      '<svg class=\"chart\" viewBox=\"0 0 420 120\" preserveAspectRatio=\"none\"><defs><linearGradient id=\"g'+esc(prod.id)+'\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#C9A24B\" stop-opacity=\"0.28\"/><stop offset=\"1\" stop-color=\"#C9A24B\" stop-opacity=\"0\"/></linearGradient></defs>'+\n      '<path d=\"'+ap.area+'\" fill=\"url(#g'+esc(prod.id)+')\"/><path d=\"'+ap.line+'\" fill=\"none\" stroke=\"#B08D57\" stroke-width=\"2\" stroke-linejoin=\"round\"/>'+\n      '<circle cx=\"'+ap.last[0].toFixed(1)+'\" cy=\"'+ap.last[1].toFixed(1)+'\" r=\"3.5\" fill=\"#1A1A1A\"/></svg></div>';\n\n    var fstages=[['Impressões',tImp,1],['Cliques',tClick,tImp?tClick/tImp:0],['Adições ao carrinho',tCart,tClick?tCart/tClick:0],['Pedidos',tOrd,tCart?tOrd/tCart:0]];\n    var funnel='<div class=\"panel\"><div class=\"ph3\"><div class=\"t\">Funil de conversão</div><div class=\"v\">30 dias</div></div><div class=\"fun\">'+\n      fstages.map(function(f,i){var w=Math.max(6,Math.round(f[1]/(tImp||1)*100));return '<div><div class=\"fstop\"><span class=\"fn\">'+f[0]+'</span><span class=\"fv\">'+kfmt(f[1])+'</span></div><div class=\"ftrack\"><div class=\"ffill\" style=\"width:'+w+'%\"></div></div>'+(i>0?'<div class=\"frate\">'+(f[2]*100).toFixed(1).replace('.',',')+'% da etapa anterior</div>':'')+'</div>';}).join('')+\n      '</div></div>';\n    var row2='<div class=\"row2\">'+trend+funnel+'</div>';\n\n    var lift=worst&&worst.m.cvr>0?((best.m.cvr/worst.m.cvr-1)*100):0;\n    var withM=vars.filter(function(v){return v.withModel;});var noM=vars.filter(function(v){return !v.withModel;});\n    var avgWM=withM.length?withM.reduce(function(a,v){return a+v.m.cvr;},0)/withM.length:0;\n    var avgNM=noM.length?noM.reduce(function(a,v){return a+v.m.cvr;},0)/noM.length:0;\n    var modelIns=withM.length?('Imagens <b>com modelo</b> convertem <b>'+pctf(avgWM)+'</b> vs <b>'+pctf(avgNM)+'</b> sem modelo — '+(avgWM>=avgNM?'+':'')+((avgNM?(avgWM/avgNM-1)*100:0)).toFixed(0)+'% de diferença.'):'Nenhuma imagem <b>com modelo</b> ainda. Gere uma no estúdio para comparar o efeito do try-on na conversão.';\n    var trendDir=ser[ser.length-1]>=ser[0];\n    var ins='<div class=\"ins\">'+\n      '<div class=\"icard\"><div class=\"ik\">♛ Imagem campeã</div><div class=\"iv\"><b>'+esc(best.label)+'</b> lidera com <b>'+pctf(best.m.cvr)+'</b> de conversão — <b>+'+lift.toFixed(0)+'%</b> acima da pior variante. Vale promover como imagem principal.</div></div>'+\n      '<div class=\"icard\"><div class=\"ik\">✦ Efeito do modelo</div><div class=\"iv\">'+modelIns+'</div></div>'+\n      '<div class=\"icard\"><div class=\"ik\">'+(trendDir?'▲ Tendência':'▼ Tendência')+'</div><div class=\"iv\">Conversão '+(trendDir?'<b>subindo</b>':'<b>caindo</b>')+' nos últimos 30 dias ('+pctf(ser[0])+' → <b>'+pctf(ser[ser.length-1])+'</b>). '+(trendDir?'Momento bom para escalar mídia.':'Teste uma nova imagem para reagir.')+'</div></div>'+\n      '</div>';\n\n    var cards=vars.map(function(v){\n      var win=v===best;var pct=Math.max(8,Math.round(v.m.cvr/maxCvr*100));\n      var hilo=v.m.cvr>=aggCvr?'hi':'lo';\n      return '<div class=\"card'+(win?' win':'')+'\">'+\n        (win?'<div class=\"crown\">♛ Campeã</div>':'')+\n        (v.ai?'<div class=\"tag\">'+(v.withModel?'IA · modelo':(v.status==='testing'?'IA · testando':'IA'))+'</div>':'')+\n        '<div class=\"ph\"><img loading=\"lazy\" src=\"'+esc(v.url)+'\"/></div>'+\n        '<div class=\"cbody\"><div class=\"clabel\">'+esc(v.label)+'</div>'+\n        '<div class=\"cvrrow\"><div><div class=\"cvr '+hilo+'\">'+pctf(v.m.cvr)+'</div><div class=\"cvrl\">conversão</div></div>'+\n        '<div class=\"imp\">'+kfmt(v.m.impressions)+' impr.<br>'+kfmt(v.m.orders)+' pedidos</div></div>'+\n        '<div class=\"bar\"><div class=\"bfill\" style=\"width:'+pct+'%\"></div></div>'+\n        '<div class=\"mrow\"><div><b>'+v.m.ctr.toFixed(1).replace('.',',')+'%</b>CTR</div><div><b>'+kfmt(v.m.cart)+'</b>carrinho</div><div><b>'+kfmt(v.m.revenue)+'</b>receita</div></div>'+\n        '</div></div>';\n    }).join('');\n    var newcard='<div class=\"newc\" data-open><div class=\"pl\">+</div><div class=\"nt\">Criar nova imagem</div></div>';\n\n    var hero='<div class=\"hero\"><div class=\"fig\"><img src=\"'+esc(prod.image)+'\"/></div><div class=\"meta\"><div class=\"cat\">'+esc((prod.cat.split('/').filter(Boolean).pop())||'Joias')+'</div><h1>'+esc(prod.name)+'</h1><div class=\"price\">'+money(prod.price)+'</div><div class=\"sku\">SKU '+esc(prod.id)+' · '+esc(prod.brand)+'</div></div><button class=\"cta\" data-open>+ Criar nova imagem</button></div>';\n    var gallery='<div class=\"sect\"><div class=\"sh\"><h2>Imagens em teste</h2><div class=\"sub\">comparando conversão foto a foto · '+vars.length+' variantes</div></div><div class=\"grid\">'+cards+newcard+'</div></div>';\n\n    var modal='';\n    if(s.studioOpen)modal=MOD.studio(d2,prod,s);\n\n    return '<div class=\"vp\">'+left+'<div class=\"main\">'+hero+kpis+row2+ins+gallery+'</div>'+modal+'</div>';\n  },\n  studio:function(d2,prod,s){\n    if(s.modelGen)return MOD.modelStudio(d2,s);\n    var withModel=!!s.withModel;\n    var models=((d2.data('models')&&d2.data('models').records())||[]).concat(s.newModels||[]);\n    var scene=s.scene||'Mármore',light=s.light||'Joalheria',style=s.style||'Hero',ratio=s.ratio||'Quadrado';\n    var stage;\n    if(s.busy){var st=Math.min(4,s.loadStep||0);stage='<div class=\"load\"><div class=\"ring\"><svg viewBox=\"0 0 50 50\"><circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke=\"#E8E2D9\" stroke-width=\"3\"/><circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke=\"#B08D57\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-dasharray=\"90 126\"/></svg></div><div class=\"step\">'+esc(STEPS[st])+'…</div><div class=\"pbar\"><div class=\"pfill\" style=\"width:'+((st+1)/5*100)+'%\"></div></div><div class=\"ssub\">estúdio IA · ~30s</div></div>';}\n    else if(s.genUrl){\n      var refThumbs=prod.images.slice(0,4).map(function(u){return '<div class=\"rimg\"><img src=\"'+esc(u)+'\"/></div>';}).join('');\n      stage='<div class=\"qa\"><div class=\"qatag\">Aprovação de qualidade</div><div class=\"qah\">A peça continua fiel?</div><div class=\"qasub\">Avalie lado a lado com as fotos oficiais. Só entra na biblioteca se não descaracterizar o produto.</div>'+\n        '<div class=\"qacmp\"><div class=\"qacol\"><div class=\"qacap\">Gerada · IA</div><div class=\"qafig new\"><img src=\"'+esc(s.genUrl)+'\"/></div></div>'+\n        '<div class=\"qacol\"><div class=\"qacap\">Fotos oficiais</div><div class=\"qaref\">'+refThumbs+'</div></div></div>'+\n        '<textarea class=\"refine\" data-refine placeholder=\"Orientação livre (opcional): ex. menos reflexo, aproxime da pulseira, fundo mais claro…\">'+esc(s.refineNote||'')+'</textarea>'+\n        '<div class=\"qacta\"><button class=\"qbtn ghost\" data-regen>↺ Gerar outra</button><button class=\"qbtn ok'+(s.added?' done':'')+'\" data-add>'+(s.added?'✓ Aprovada · na biblioteca':'✓ Aprovar e adicionar')+'</button></div></div>';\n    }\n    else if(s.error){stage='<div class=\"shint\"><div class=\"bg\">Ops</div><div>'+esc(s.error)+'</div></div>';}\n    else{stage='<div class=\"shint\"><div class=\"bg\">'+esc(prod.name)+'</div><div>Peça já selecionada. Escolha com ou sem modelo, componha o set e gere.</div></div>';}\n\n    var modelPick=withModel?'<div class=\"sec\"><div class=\"sl\"><span>Modelo</span><span class=\"add\" data-newmodel>＋ Novo modelo</span></div><div class=\"models\"><div class=\"mc newm\" data-newmodel><div class=\"p\">+</div><div class=\"l\">Criar</div></div>'+models.map(function(m){var mid=m._id||m.imageUrl;var u=m.imageUrl||'';var on=String(s.selModelId)===String(mid);return '<div class=\"mc'+(on?' on':'')+(u?'':' noimg')+'\" data-model=\"'+esc(mid)+'\" data-ini=\"'+esc(initials(m.name||m.kind))+'\"><span class=\"mdel\" data-delmodel=\"'+esc(mid)+'\" data-delid=\"'+esc(m._id||'')+'\">×</span>'+(u?'<img class=\"mi\" src=\"'+esc(u)+'\" onerror=\"this.parentNode.classList.add(\\'noimg\\');this.remove();\"/>':'')+'<div class=\"mn\">'+esc(m.name||m.kind||'Modelo')+'</div></div>';}).join('')+'</div></div>':'';\n\n    var canGo=!s.busy&&(!withModel||s.selModelId);\n    return '<div class=\"ov\" data-ovcancel><div class=\"studio\" data-stop>'+\n      '<div class=\"scfg\"><div class=\"sch\"><div><div class=\"st\">Novo ensaio</div><div class=\"ss\">'+esc(jtype(prod.cat).l)+' · '+esc(prod.name)+'</div></div></div>'+\n      '<div class=\"sbody\">'+\n      '<div class=\"seg\"><div class=\"segb'+(!withModel?' on':'')+'\" data-mode=\"0\">Sem modelo</div><div class=\"segb'+(withModel?' on':'')+'\" data-mode=\"1\">Com modelo</div></div>'+\n      modelPick+\n      chips('Cenário',SCENE,'scene',scene)+chips('Iluminação',LIGHT,'light',light)+chips('Estilo',STYLE,'style',style)+chips('Proporção',RATIO,'ratio',ratio)+\n      '</div>'+\n      '<button class=\"sgo\" data-gen '+(canGo?'':'disabled')+'><span class=\"sheen\"></span>'+(withModel?'Gerar com modelo':'Gerar imagem')+'</button>'+\n      '</div>'+\n      '<div class=\"sstage\"><span class=\"sx\" data-close>×</span>'+stage+'</div>'+\n      '</div></div>';\n  },\n  modelStudio:function(d2,s){\n    var mtype=s.mgType||'Mão',skin=s.mgSkin||'Média',mood=s.mgMood||'Suave';\n    var stage;\n    if(s.mgBusy){var st=Math.min(3,s.mgStep||0);stage='<div class=\"load\"><div class=\"ring\"><svg viewBox=\"0 0 50 50\"><circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke=\"#E8E2D9\" stroke-width=\"3\"/><circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke=\"#B08D57\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-dasharray=\"90 126\"/></svg></div><div class=\"step\">'+esc(MSTEPS[st])+'…</div><div class=\"pbar\"><div class=\"pfill\" style=\"width:'+((st+1)/4*100)+'%\"></div></div><div class=\"ssub\">casting IA · ~25s</div></div>';}\n    else if(s.mgUrl){var sugg=((s.mgType||'Modelo')+' '+(s.mgSkin||'')).trim();stage='<div class=\"res\"><img src=\"'+esc(s.mgUrl)+'\"/><input class=\"mgname\" data-mgname placeholder=\"Nome do modelo\" value=\"'+esc(sugg)+'\"/><button class=\"addlib'+(s.mgAdded?' done':'')+'\" data-usemodel>'+(s.mgAdded?'✓ Modelo salvo':'Salvar modelo')+'</button></div>';}\n    else if(s.mgError){stage='<div class=\"shint\"><div class=\"bg\">Ops</div><div>'+esc(s.mgError)+'</div></div>';}\n    else{stage='<div class=\"shint\"><div class=\"bg\">Casting de modelo</div><div>Gera um close-up cropped da parte do corpo (mão, colo, orelha, pescoço, pulso) ou um retrato (rosto). Ele entra na sua biblioteca de modelos.</div></div>';}\n    var canGo=!s.mgBusy;\n    return '<div class=\"ov\" data-ovcancel><div class=\"studio\" data-stop>'+\n      '<div class=\"scfg\"><div class=\"sch\"><span class=\"sbk\" data-backmodel>‹</span><div><div class=\"st\">Novo modelo</div><div class=\"ss\">gerar pessoa / parte do corpo</div></div></div>'+\n      '<div class=\"sbody\">'+\n      chips('Tipo',MTYPE,'mgType',mtype)+chips('Tom de pele',SKIN,'mgSkin',skin)+chips('Clima',MOOD,'mgMood',mood)+\n      '</div>'+\n      '<button class=\"sgo\" data-genmodel '+(canGo?'':'disabled')+'><span class=\"sheen\"></span>Gerar modelo</button>'+\n      '</div>'+\n      '<div class=\"sstage\"><span class=\"sx\" data-close>×</span>'+stage+'</div>'+\n      '</div></div>';\n  },\n  mounted(d2){\n    function tryUnlock(){var el=d2.$('[data-gpw]');var v=el?el.value:'';if(v==='VivaraData22020'){try{localStorage.setItem('vivGate2020','1');}catch(_){}d2.setState({unlocked:true,gateErr:false});}else{d2.setState({gateErr:true});}}\n    d2.on('[data-gunlock]','click',tryUnlock);\n    d2.on('[data-gpw]','keydown',function(e){if(e.key==='Enter')tryUnlock();});\n    var loadStart=null,lastStep=-1,mLoadStart=null,mLastStep=-1;\n    d2.on('[data-prod]','click',function(e,el){d2.setState({selProductId:el.getAttribute('data-prod')});});\n    d2.on('[data-q]','input',function(e,el){d2.state.q=el.value;});\n    d2.on('[data-open]','click',function(){d2.setState({studioOpen:true,modelGen:false,genUrl:null,error:null,added:false,busy:false});});\n    d2.on('[data-close]','click',function(){d2.setState({studioOpen:false,modelGen:false});});\n    d2.on('[data-ovcancel]','click',function(e,el){if(e.target===el)d2.setState({studioOpen:false,modelGen:false});});\n    d2.on('[data-stop]','click',function(e){e.stopPropagation();});\n    d2.on('[data-mode]','click',function(e,el){d2.setState({withModel:el.getAttribute('data-mode')==='1'});});\n    d2.on('[data-model]','click',function(e,el){if(e.target&&e.target.getAttribute&&e.target.getAttribute('data-delmodel')!=null)return;d2.setState({selModelId:el.getAttribute('data-model'),error:null});});\n    d2.on('[data-delmodel]','click',function(e,el){e.stopPropagation();var mid=el.getAttribute('data-delmodel');var delid=el.getAttribute('data-delid');d2.dialog.confirm('Apagar este modelo da biblioteca?').then(function(ok){if(!ok)return;if(delid){try{d2.data('models').remove(delid);}catch(_){}}var nm=(d2.state.newModels||[]).filter(function(x){return String(x.imageUrl)!==String(mid);});var st={newModels:nm};if(String(d2.state.selModelId)===String(mid))st.selModelId=null;d2.setState(st);});});\n    d2.on('[data-newmodel]','click',function(){d2.setState({modelGen:true,mgUrl:null,mgError:null,mgAdded:false,mgBusy:false});});\n    d2.on('[data-backmodel]','click',function(){d2.setState({modelGen:false});});\n    d2.on('[data-sk]','click',function(e,el){var o={};o[el.getAttribute('data-sk')]=el.getAttribute('data-sv');d2.setState(o);});\n    d2.raf(function(t){\n      if(d2.state.busy){if(loadStart==null){loadStart=t;}var stp=Math.min(4,Math.floor((t-loadStart)/5200));if(stp!==lastStep){lastStep=stp;d2.setState({loadStep:stp});}}else{loadStart=null;lastStep=-1;}\n      if(d2.state.mgBusy){if(mLoadStart==null){mLoadStart=t;}var ms=Math.min(3,Math.floor((t-mLoadStart)/6000));if(ms!==mLastStep){mLastStep=ms;d2.setState({mgStep:ms});}}else{mLoadStart=null;mLastStep=-1;}\n    });\n    function runGen(note){\n      var s=d2.state;if(s.busy)return;\n      var raw=(d2.data('products')&&d2.data('products').records())||[];\n      var prod=raw.map(norm).filter(function(p){return p.id===s.selProductId;})[0];\n      if(!prod){var pl=raw.map(norm).filter(function(p){return p.image;});prod=pl[0];}\n      if(!prod){d2.setState({error:'Selecione uma peça.'});return;}\n      var withModel=!!s.withModel;var refs=prod.images.slice(0,2);if(!refs.length&&prod.image)refs=[prod.image];var modelDesc='';\n      if(withModel){var models=((d2.data('models')&&d2.data('models').records())||[]).concat(s.newModels||[]);var mm=models.filter(function(m){return String(m._id||m.imageUrl)===String(s.selModelId);})[0];if(mm){refs=refs.concat([mm.imageUrl]);modelDesc=' The elegant model from the FINAL reference image naturally showcases the jewel — tasteful pose, realistic anatomy and proportions, keep the model consistent with that reference. This is a model shot — do NOT add any surface reflection, mirrored tabletop, or reflected duplicate of the subject.';}}\n      var extra=(note&&note.trim())?(' Additional guidance from the art director, follow it precisely: '+note.trim()+'.'):'';\n      var jt=jtype(prod.cat);\n      var typeClause=' This product is a '+jt.t+' and MUST be rendered as a '+jt.t+', '+jt.p+', at true-to-life scale and correct anatomical proportion — never distort its form, size or placement.';\n      var refClause=withModel?'The product reference images all show the SAME jewel from different angles; the final reference image is the model.':'The reference images all show the SAME jewel from different angles.';\n      var noModelClause=withModel?'':' This is a PRODUCT-ONLY still life: absolutely no person, no model and no body part (hand, fingers, wrist, arm, neck, ear) may appear in the frame — even if a reference image shows the jewel being worn, render the jewel ALONE.';\n      var frameClause=' Full-bleed composition: the new scene fills the ENTIRE frame edge to edge — never render a smaller picture floating inside white margins or a border, and do NOT copy the plain white catalog background from the references; build a completely new scene as directed.';\n      var prompt='Professional luxury jewelry photograph for Vivara catalog. '+refClause+' Reproduce the jewel EXACTLY as in the references — identical shape, gemstones, metal color and finish, faithful from every angle.'+typeClause+noModelClause+modelDesc+frameClause+' Scene: '+frag(SCENE,s.scene||'Mármore')+'. Lighting: '+frag(LIGHT,s.light||'Joalheria')+'. Style: '+frag(STYLE,s.style||'Hero')+'.'+extra+' Photorealistic professional photography: full-frame camera with macro lens, natural realistic skin texture, physically accurate light, reflections and shadows, true-to-life color. Never an illustration, CGI or 3D-render look. Premium high-end commercial aesthetic, no text, no watermark. Product: '+prod.name+' ('+jt.t+').';\n      d2.setState({busy:true,genUrl:null,error:null,added:false,loadStep:0,refineNote:(note||'')});\n      drawRetry([prompt],refs,frag(RATIO,s.ratio||'Quadrado'),0).then(function(u){if(u){d2.setState({busy:false,genUrl:u});}else{d2.setState({busy:false,error:'Não recebi a imagem da IA (tentei algumas vezes). Ajuste o set e tente de novo.'});}}).catch(function(){d2.setState({busy:false,error:'Falha ao gerar. Tente de novo.'});});\n    }\n    d2.on('[data-gen]','click',function(){runGen('');});\n    d2.on('[data-regen]','click',function(){var el=d2.$('[data-refine]');runGen(el?el.value:'');});\n    d2.on('[data-add]','click',function(){\n      var s=d2.state;if(!s.genUrl||s.added)return;\n      var raw=(d2.data('products')&&d2.data('products').records())||[];\n      var prod=raw.map(norm).filter(function(p){return p.id===s.selProductId;})[0];if(!prod)prod=raw.map(norm)[0];\n      var withModel=!!s.withModel;var models=((d2.data('models')&&d2.data('models').records())||[]).concat(s.newModels||[]);var mm=models.filter(function(m){return String(m._id||m.imageUrl)===String(s.selModelId);})[0];\n      var m=sim(s.genUrl,prod?prod.price:1200);\n      try{d2.data('library').create({productId:prod?prod.id:'',productName:prod?prod.name:'',imageUrl:s.genUrl,label:(withModel?'IA · '+((mm&&mm.name)||'com modelo'):'IA · '+(s.style||'Hero')),withModel:withModel,modelName:(mm&&mm.name)||'',source:'ai',status:'testing',impressions:m.impressions,clicks:m.clicks,orders:m.orders,revenue:m.revenue,cvr:m.cvr,createdAt:new Date().toISOString()});}catch(_){}\n      d2.setState({added:true});\n    });\n    d2.on('[data-genmodel]','click',function(){\n      var s=d2.state;if(s.mgBusy)return;\n      var typ=mdesc(s.mgType||'Mão'),sk=frag(SKIN,s.mgSkin||'Média'),mo=frag(MOOD,s.mgMood||'Suave');\n      var prompts=modelPrompts(typ,sk,mo);\n      d2.setState({mgBusy:true,mgUrl:null,mgError:null,mgAdded:false,mgStep:0});\n      drawRetry(prompts,[],'896x1152',0).then(function(u){if(u){d2.setState({mgBusy:false,mgUrl:u});}else{d2.setState({mgBusy:false,mgError:'A IA recusou o pedido mesmo após novas tentativas. Troque o tipo ou o clima e tente novamente.'});}}).catch(function(){d2.setState({mgBusy:false,mgError:'Falha ao gerar o modelo. Tente de novo.'});});\n    });\n    d2.on('[data-usemodel]','click',function(){\n      var s=d2.state;if(!s.mgUrl||s.mgAdded)return;\n      var nel=d2.$('[data-mgname]');var name=(nel&&nel.value&&nel.value.trim())||((s.mgType||'Modelo')+' '+(s.mgSkin||'')).trim();\n      var typ=mdesc(s.mgType||'Mão'),sk=frag(SKIN,s.mgSkin||'Média'),mo=frag(MOOD,s.mgMood||'Suave');\n      var prompt='Tightly cropped close-up of '+typ+', '+sk+' complexion, '+mo+', tasteful and refined, ready to showcase fine jewelry.';\n      var rec={name:name,kind:mkind(s.mgType||'Mão'),prompt:prompt,imageUrl:s.mgUrl,createdAt:new Date().toISOString()};\n      try{d2.data('models').create(rec);}catch(_){}\n      var nm=(d2.state.newModels||[]).slice();nm.push(rec);\n      d2.setState({newModels:nm,selModelId:s.mgUrl,mgAdded:true,modelGen:false,withModel:true});\n    });\n  }\n};\nexport default MOD;"}},"products":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"products"}}}},"models":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"models"}}}},"library":{"component":"data2-core-types@Reference","params":{"reference":{"component":"data2-core-primitives@String","params":{"content":"library"}}}}}}}}}},{"_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}}}}},{"_id":"614df5ca33fad3ebebb9879b","component":"data2-core-types@Component","params":{"package":"http","component":"CustomHTTPDataSource","extends":"data2-core@DataSource","definition":{"params":{},"component":"data2-core-types@Definition"},"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}}},"reference":"Data2BuilderAuthentication","updatedAt":"2025-10-28T02:48:49.233Z"},{"_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":"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":"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"},{"_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":"6a2e0d2561efae759d5da3f6","component":"data2-core-connect@HttpRequest","reference":"vivaraSearchReq","system":"6a11aec3b70f2dc40823369a","params":{"parent":{"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpClient","reference":"vivara"}},"method":{"component":"data2-core-primitives@String","params":{"content":"GET"}},"requestParameters":[],"useProxy":true}},{"_id":"6a2e0ce51b1e52cefa12aac6","component":"data2-core-connect@HttpClient","reference":"vivara","system":"6a11aec3b70f2dc40823369a","params":{"baseURL":"https://www.vivara.com.br","headers":{}}}]}},{"reference":"ComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a455ecdb95d9a763fc49b91","component":"data2-core-primitives@Artboard","system":"6a11aec3b70f2dc40823369a","displayName":"💎 Vivara · Produto","params":{"title":{"component":"data2-core-primitives@String","params":{"content":"💎 Vivara · Produto"}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}},"position":{"component":"data2-core-types@Position","params":{"x":-957,"y":2266,"exactX":-957.49,"exactY":2265.79}}},"reference":"OBA2NRRzHDlhFsnRF4tBk"},{"_id":"24c7e367ac70f54762233fd1","parent":"6a455ecdb95d9a763fc49b91","component":"ai-playground@kVivProduct","system":"6a11aec3b70f2dc40823369a","displayName":"Viv Product Panel","params":{"products":{"component":"data2-core-types@DataSetReference","params":{"reference":"vivaraProductsDataSet"}},"models":{"component":"data2-core-types@DataSetReference","params":{"reference":"9_7GWgCZIZHlKnHFteBFHDataSet"}},"library":{"component":"data2-core-types@DataSetReference","params":{"reference":"32qFMbWLUAzD_QOgxXlCDDataSet"}},"super":{"position":{"component":"data2-core-types@Position","params":{"x":0,"y":0,"freeTransform":true,"left":true,"right":false,"top":true,"bottom":false,"growH":true,"growV":true}},"dimensions":{"component":"data2-core-types@Dimensions","params":{"width":1440,"height":900}}}},"reference":"LNbvHEwVBp844f3JotKmc"}]}},{"_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":"6a467b9c20611373d1fb4622","displayName":"Vivara · Performance de Produto","reference":"M7DfcbVFrtCrbYfKKzHpA","params":{"name":{"component":"data2-core-primitives@String","params":{"content":"Vivara Studio — Performance"}},"shortName":{"component":"data2-core-primitives@String","params":{"content":"Vivara Demo"}},"domain":{"component":"data2-core-primitives@String","params":{"content":"vivara"}},"serverSideRendering":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"entryPoint":{"component":"data2-core-types@ComponentInstanceReference","params":{"component":"data2-core-primitives@Artboard","reference":"OBA2NRRzHDlhFsnRF4tBk"}},"responseHeaders":{"X-Frame-Options":{"component":"data2-core-primitives@String","params":{"content":""}},"Content-Security-Policy":{"component":"data2-core-primitives@String","params":{"content":""}},"X-XSS-Protection":{"component":"data2-core-primitives@String","params":{"content":""}}}},"system":"6a11aec3b70f2dc40823369a","component":"data2-core-primitives@Application"}]}},{"reference":"DataComponentInstancesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[{"_id":"6a455e2be03c48ad27d0452b","component":"data2-core@DataSet","system":"6a11aec3b70f2dc40823369a","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"32qFMbWLUAzD_QOgxXlCD"}}},"reference":"32qFMbWLUAzD_QOgxXlCDDataSet"},{"_id":"6a2e0e6458bb101c9095144e","component":"data2-core@DataSet","system":"6a11aec3b70f2dc40823369a","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"9_7GWgCZIZHlKnHFteBFH"}}},"reference":"9_7GWgCZIZHlKnHFteBFHDataSet"},{"_id":"6a2e0d30baacaeb32629dc6c","component":"data2-core@DataSet","system":"6a11aec3b70f2dc40823369a","params":{"datasource":{"component":"data2-core-types@DataSourceReference","params":{"reference":"vivaraProducts"}},"autoSelect":{"component":"data2-core-primitives@Boolean","params":{"content":true}},"pagination":{"size":40}},"reference":"vivaraProductsDataSet"},{"_id":"6a455e2ab996a38498ae1c6a","component":"data2-core@Data2TableDataSource","system":"6a11aec3b70f2dc40823369a","params":{"table":"32qFMbWLUAzD_QOgxXlCD","schema":[{"component":"data2-core-types@Field","params":{"key":"productId","title":"SKU","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"productName","title":"Produto","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"imageUrl","title":"Imagem","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"label","title":"Variante","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"withModel","title":"Com modelo","component":"data2-core-primitives@Boolean"}},{"component":"data2-core-types@Field","params":{"key":"modelName","title":"Modelo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"source","title":"Origem","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":"impressions","title":"Impressões","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"clicks","title":"Cliques","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"orders","title":"Pedidos","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"revenue","title":"Receita","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"cvr","title":"Conversão %","component":"data2-core-primitives@Number"}},{"component":"data2-core-types@Field","params":{"key":"createdAt","title":"Criado em","component":"data2-core-primitives@Date"}}]},"reference":"32qFMbWLUAzD_QOgxXlCD"},{"_id":"6a2e0e649b58f90d1c23aea7","component":"data2-core@Data2TableDataSource","system":"6a11aec3b70f2dc40823369a","params":{"table":"9_7GWgCZIZHlKnHFteBFH","schema":[{"component":"data2-core-types@Field","params":{"key":"name","title":"Modelo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"kind","title":"Tipo","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"prompt","title":"Prompt","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"imageUrl","title":"Imagem","component":"data2-core-primitives@String"}},{"component":"data2-core-types@Field","params":{"key":"createdAt","title":"Criado","component":"data2-core-primitives@Date"}}]},"reference":"9_7GWgCZIZHlKnHFteBFH"},{"_id":"6a2e0d30baacaeb32629dc67","component":"http@CustomHTTPDataSource","system":"6a11aec3b70f2dc40823369a","params":{"super":{},"find":{"component":"data2-core-flow@Series","params":{"actions":[{"component":"data2-core-types@Interaction","params":{"module":{"component":"data2-core-types@InteractiveModuleReference","params":{"reference":"vivara"}},"prop":"sendRequest","args":[{"request":{"disabled":false,"component":"data2-core-types@InstanceReference","params":{"component":"data2-core-connect@HttpRequest","reference":"vivaraSearchReq"}}}]}}]}},"countKey":{"component":"data2-core-primitives@String","params":{"content":"count"}},"recordsKey":{"component":"data2-core-primitives@String","params":{"content":"products"}}},"reference":"vivaraProducts"}]}},{"reference":"BundlesTableDataSource","component":"data2-core@MemoryDataSource","params":{"initialData":[]}}],"processesParams":{}}}}